Vim 详解

简介

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,对应400种以上文本文件的语法高亮;
官网:www.vim.org


使用方法

1.打开文件

vim [options] [file..]
    +NUM:打开文件后让光标直接处于第NUM行首;
    +/PATTERNR:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;
    file1 -o file2:将file1和file2上下分屏显示; ctrl+ww:上下文件切换
    file1 -O file2:将file1和file2左右分屏显示; ctrl+ww:左右文件切换

2.编辑模式
( 默认模式 ) ( 输入模式–>编辑模式:”Esc” ) ( 末行模式–>编辑模式:”:” )
常用技能:

h:左    j:下    k:上    l:右
    0:跳转至行首;
    ^:跳转至行首的第一个空白字符;
    $:跳转至行尾;
    i:当前光标处插入;                        I:行首插入;
    a:光标后插入;                           A:行尾插入;
    o:后一行插入;                           O:前一行插入;
gg,1G:跳转至第一行;
    G:最后一行;                            #G:跳转至#行;   
   ZZ:保存退出;
   xp:交换光标所在处的字符与其后面字符的位置;
   sp:在同一编辑窗打开第二个文件;在多个编辑文件之间切换,用Ctrl+w
    r:替换光标所在处单个字符;                R:向后替换;
    v:光标走过的字符;                       V:光标走过的行;
    p:向后粘贴                              P:向前粘贴
   yy:复制当前行                           #yy:复制光标所在行向下#行
   cc:删除光标做在行,并转换为输出模式;
    x:删除光标所在处的字符;
   dd:删除光标所在行;                      #dd:从光标所在处向后删除#行;
   dw:向后删除光标所在处单词;               d#w:向后删除#个单词;
   db:向前删除光标所在处单词;                
   d^:从光标所在处删除到当前行首;
 d$,D:从光标所在处删除到当前行尾;
    u:撤销;     ctrl+r:撤销此前的撤销操作;
                                             #COMMAND:#你懂得~
                                              更多详情:
                                                 man vim or vimtutor

3.输入模式
编辑模式 –> 输入模式:

i:insert, 在光标所在处输入;
I:在光标所在行的行首输入;
a: append,在光标在处后方输入;
A:在光标所在行的行尾输入;
o:在光标所在处的下方打开一个新行;
O:在光标所在处的上方打开一个新行;

4.末行模式
( 输入模式按”Esc”切换到末行模式 ) ( 编辑模式按 “:” 切换到末行模式 )

:w  保存
:q  退出
:qa 全部退出
:q! 强制退出
:wq or x 保存退出
:r /path/form/somefile  读取/PATH/TO/SOMEFILE到光标后;
:w /path/to/somefile  另存为 /PATH/TO/SOMEFILE

文本搜索,替换,移动,删除,复制

常用姿势:

:g         搜索
    :g/text    全局搜索"text"    :g!/text    查看没有"text"的行;

:s         替换
    :%s/\r//g        末行去掉^M;
    :m,n s/old text/new text/    将m-n行中匹配到的第一个"old text"替换为"new text"; 
    :%s/old text/new text/gc     全局替换;将文本中所有的"old text"替换为"new text";
        note1:( %表示每一行;    g:所有匹配到的;    c:每个替换需要用户确认; )
        note2:( .表示当前行; $表示最后一行; +-表示该行的上下n行; 例 "-2" 表示当前行上面第二行. )

:m        移动
    :m    :i,jmk    表示从"i-j"行移动至"k"行后;
              例:10,20m100    将10-20行移动到100行后;

:co       复制
    :i,jcok    表示从"i-j"行复制至"k"行后;

:d        删除
    :m,nd    删除m-n行;
    :g/text/d    全局搜索text并删除;
    :g/^$/d      删除空行;
    :g/^[[:space:]]*$/d    删除带有空格的空行;

5.组合快捷键

翻屏:                       模式切换:
  Ctrl+f:向文件尾翻一屏             输入模式 --> 编辑模式
  Ctrl+b:向文件首部翻一屏            Esc
  Ctrl+d:向文件尾部翻半屏            编辑模式 --> 末行模式
  Ctrl+u:向文件首部翻半屏            :
  Enter:按行向后翻                  末行模式 --> 编辑模式
                               Esc

本文由马哥教育技术支持,转载请注明出处。Mr.Chen