Vim常见使用命令总结完整分享

vim是linux下命令行一款经典编辑器,操作简单、功能强大,这是很多unix上元老级程序员的挚爱。这是我总结整理的vim最常用的命令集合,没事常阅读,最重要的是有问题了,尝试用这些东西去解决问题,不一定是高效快捷的,但起码是有效的。
 
打开vim的方式
 

vim filename #打开文件filename,并将光标置于第一行首
vim +n filename #打开文件filename,并将光标置于第 n 行首
vim + filename #打开文件filename,并将光标置于最后一行
vim + /pattern file #打开文件file,并将光标置于其中第一个于pattern 匹配的字符串处
vim –r filename #在上次正用vi编辑filefame发生系统崩溃后,恢复filename
vim file1 … filen #打开多个文件,依次对之进行编辑
vim -o file1 … filen #用水平分隔的方式打开多个文件然后进行编辑
vimdiff filename1 filename2 #用垂直分割的方式打开两个文件filename1,filename2并显示不同比较
 

插入数据操作

行操作:
I #在光标所在行首插入文本
A #在光标所在行尾添加文本
o(open) #在光标所在行下面添加一行
O #在光标所在行上面添加一行
nS #从当前行开始,删除向下 n 行并进入编辑模式,若无 n 删除当前所在行,并进入编辑模式
:r filename #在编辑数据中读入一个文件内容数据,并把这些数据添加到光标所在行后面

字符操作:
i(insert) #在光标前插入文本
a(append) #在光标后插入文本
r(Replace) #替换光标所在处字符,结束替换
R #替换多个字符,以按下 [Esc] 键标志替换结束
ns #从当前光标位置处开始,删除 n 个字符并进入编辑模式,若无 n 删除一个字符,并进入编辑模式

改变某区域:
可以重复的:
[c]+[num]+[ h / j / k / l / w / b / e / ( / ) / { / } / $ / G / /word / ?word / tc / Tc / fc / Fc / `c ]
c: #表示改变操作
重复操作次数: #num 表示操作重复次数
操作区域选择:
    h #改变光标前一个字符
    l #改变光标所在处的字符
    j #改变本行与下一行
    k #改变本行与上一行
    w #改变光标开始到下一个单词词首处
    b #改变光标开始到上一个单词词首处
    e #改变光标开始到这个单词的结尾处
    ( #改变光标开始到句子结束处
    ) #改变光标开始到句子开始处
    { #改变光标开始到段落开始处
    } #改变光标开始到段落结束处
    $ #改变从光标开始处到行尾处
    G #改变从光标所在行到行尾处
    /word #改变从光标开始处到下个word字符串,不含word ( word 指代任意字符串,正则表达式 )
    ?word #改变从光标开始处到上个word 字符串,不含word ( word 指代任意字符串,正则表达式 )
    tc #改变从光标开始处到下个 c 字符处,不含 c ( c 指代任意字符 )
    Tc #改变从光标开始处到上个 c 字符处,不含 c ( c 指代任意字符 )
    fc #改变从光标开始处到下个 c 字符处,含 c ( c 指代任意字符 )
    Fc #改变从光标开始处到上个 c 字符处,含 c ( c 指代任意字符 )
    `c #改变从光标开始到标记 c 这个位置
不可重复的:
[c]+[ 0 / ^ / H / L]
c: #表示改变操作
操作区域选择:
    0 #改变从光标所在处到某一行的开始位置
    ^ #改变到某一行的第一个字符位置(不包括空格或TAB字符)
    L #改变直到屏幕上最后一行的内容
    H #改变直到屏幕上第一行的内容
[c]+[i]+[ { / } / ( / ) / " / ' ]
c: #表示改变操作
i: #表示 in 即在里面的意思
操作区域选择:
    { #改变在 {} 中内容( 要求光标在 {} 内 )
    } #改变在 {} 中内容( 要求光标在 {} 内 )
    [ #改变在 [] 中内容( 要求光标在 [] 内 )
    ] #改变在 [] 中内容( 要求光标在 [] 内 )
    ( #改变在 () 中内容( 要求光标在 {} 内 )
    ) #改变在 () 中内容( 要求光标在 () 内 )
    " #改变在 "" 中内容( 要求光标在 "" 内 )
    ' #改变在 '' 中内容( 要求光标在 '' 内 )
 

保存/退出

:q #退出vim 返回到shell,若有修改未被保存,vi 在末行给出提示信息并不退出vim到 shell
:q! #退出 vim 返回到 shell,放弃未保存的修改
:wq #保存后退出,无论文件是否有修改,都更新文件的修改时间
:x #保存后退出,若文件没有修改的话,不更新文件的修改时间
:w #将编辑的数据写入硬盘中
:w! #若文件属性为"只读"时,强制写入该文件
:w filename #写入当前文件到 filename 文件
ZZ #若文件没有更动,则不保存离开,若文件被更动过,则保存后离开
:n1,n2 w filename #将 n1 到 n2 的内容保存到 filename 这个文件中
 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/20563.html