Linux文本编辑器之vim
博客荒废了好久,最近在一本书中看到这样一段话,“再普通的事件一经记录就成为历史,一成为历史就将价值连城”。虽然我正在做的课后笔记远远谈不上是历史,但于准备学以致用的我而言,这种记录必定价值连城。不记录,既放弃了绝佳的深入理解知识点的机会,同时每次学习投入的精力也很快付之东流。深知自己于记录文字信息这块的拖拉,不敢放下大话,但且从此博文开始,先做到补齐前面课程的知识点内容,加油!
这里仅就课程内容做了相应记录,未常用的高级或扩展功能,自己暂时未用到,也就没有去查阅相关书籍及做记录。
一、简介
vim(vi improved),Linux中功能十分强大的文本编辑器。
Linux下输入vim,会直接进入该程序,进行文本编辑。也可以使用# vim [options] /path/to/somefile,这种格式,直接打开指定的文本文件。
二、模式转换
打开vim,程序界面下,vim默认处于编辑模式;需要编辑文本需要转换到输入模式;退出程序、保存修改等操作需要转换到末行模式。
编辑模式——>输入模式:
i:insert,当前光标所处字符前转换为输入模式;
a:append,当前光标所处字符后转换为输入模式;
o:当前光标所在行的下方新建空白行转换为输入模式,且停留在新建行行首;
I:当前光标所在行的行首转换为输入模式;
A:当前光标所在行的行尾转换为输入模式;
O:当前光标所在行的上方新建空白行转换为输入模式,且停留在新建行行首;
输入模式——>编辑模式:
按“Esc”键;
编辑模式——>末行模式:
键入冒号“:”;
末行模式——>编辑模式:
按两次“Esc”键;
注:三种模式仅能按照以上顺序转换。
三、相关功能快捷键
光标跳转:
h:向左单个字符移动;
i:向右单个字符移动;
j:向下单个字符移动;
k:向上单个字符移动;
可以结合数字实现多个字符间跳转,例如5h,即向左跳转5个字符距离;
单词间跳转:
w:跳转至后一个单词的词首;
e:跳转至当前或下一个单词的词尾;
b:跳转至当前或下一个单词的词首;
句子间跳转:
):跳转至下一句行首;
(:跳转至下一句行首;
段落间跳转:
}:跳转至下一段行首;
{:跳转至下一段行首;
行间跳转:
1G或者gg:跳转到第一行;
G:跳转到最后一行;
#G:结合数字,跳转到指定行;
行内跳转:
^:跳转至行首的第一个非空白字符;
$:跳转至绝对行尾;
0:跳转至绝对行首;
关闭文件:
末行模式:
:w 保存;
:q 退出;
:! 强制;
:wq! 强制退出保存;
:x 保存退出;
:qall 编辑多文件时,退出所有正在编辑的文件;
编辑模式:
ZZ:保存退出;
打开文件:
vim [options] /path/to/somefile
vim +# /path/to/somefile 打开文件,光标处在第#行的行首;
打开多个文件:
vim /path/to/somefile1 /path/to/somefile2 /path/to/somefile3
next:跳转至下一个文件;
prev:跳转至上一个文件;
first:跳转至第一个文件;
last:跳转至最后一个文件;
-O:垂直分割窗口;
-o:水平分割窗口;
ctrl+w松开后,根据水平或垂直界面,按上下左右光标键或wsad键,切换编辑文件;
x:删除单个字符;
#x:删除光标所在处像右#个字符;
d:删除命令;
dw:删除光标处至后一个单词的词首的内容;
db:删除光标处至当前或下一个单词的词首的内容;
de:删除光标处至当前或下一个单词的词尾的内容;
d):删除光标至句尾的内容;
d(:删除光标至句首的内容;
d^:删除光标处至行首的内容;
d$:删除光标处至行尾的内容;
dd:删除光标所在行;
#dd:删除光标所在行及向下#行;
末行模式下亦可以使用d命令:
1,7d:删除第1到7行的内容;
末行模式支持地址定界:
格式:起始地址,结束地址,例如:
$:最后一行;
.:当前光标所在行;
%:全文;
1,$:表示第1到最后一行;
1,+6:表示第1行再往下6行;
1,$-2:表示第1行至倒数第3行;
.,+3:当前光标所在行再往下3行;
撤消操作
u:vim默认会保存最近50次的操作,u命令可以逐一撤消此前的操作;
未保存修改前,编辑操作可撤销
Ctrl+r:撤消此前撤消的操作;
粘贴:paste,put
p:最后一次删除操作可以使用p,相当于windows中的剪切;
删除的是整行:
小写p:在当前光标所在行的下方粘贴;
大写P:在当前光标所在行的上方粘贴;
删除的不是整行:
小写p:在当前光标所处字符的后方粘贴;
大写P:在当前光标所处字符的前方粘贴;
复制:yank
y:删除功能;
yy:复制光标所在行;
#yy:复制含光标所在的#行内容;
y$:复制光标处至行末的内容;
y^:复制光标处至行首的内容;
查找:
/pattern:向后搜索字符串pattern ;
?pattern: 向前搜索字符串pattern;
查找到对应字符后,使用n,N在匹配字符间跳转
n:下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个) ;
N:上一个匹配(同上);
替换:
:%s/old/new/g:搜索整个文件,将所有的old替换为new;
:%s/old/new/gc:搜索整个文件,将所有的old替换为new,每次都要你确认是否替换;
最后:linux中有一个vim教程,输入vimtutor回车即可跟着练习
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。