zoukankan      html  css  js  c++  java
  • Vim常用的基本操作

    1. vim的三种模式

    • vim有三种模式,不同的模式对应着不同的操作,完成不同的功能;这三种模式分别是:一般模式,编辑模式和命令模式。

    • 一般模式:当我们使用vim打开文件时,就处于一般模式,一般模式是三种模式中的桥梁,也就是说可以从一般模式切换到命
      令模式或者编辑模式,但命令模式和编辑模式之间的切换必须经过一般模式,即先切换到一般模式,然后再进入另一种模式,编
      辑模式和命令模式之间是无法直接切换的。如何从另两种模式进入一般模式呢?按ESC即可。

    • 编辑模式:可以对文件的内容进行编辑操作,比如增加、删除和修改,就像使用notepad编辑文件一样;从一般模式进入编辑
      模式的命令主要有:i, I, a, A, o, O, s, S;(后面会详解)。

    • 命令模式:该模式下主要是用于文件的保存退出,从一般模式进入命令模式的方法是:冒号(:)。

    2. 一般模式下的常用操作:

    2.1 光标移动

    h, j, k, l: 向左、下、上、右移动一个字符;前面加上数字n,表示移动n个字符,如3j表示向下移动三个字符,即三行;
    
    b, B: 表示begin,从字符所在的单词开始,b表示移动到前一个短单词的第一个字符处;B表示移动到前一个长单词的第一个字符处,两个空白之间的单词为一个长单词,比如hello how're you, how,'和re分别为三个短单词,但只是一个长单词;
    e, E: 与b, B类似,从字符所在的单词开始,分别向后移动一个短单词、长单词;
    
    (, ): 从光标所在的语句块开始,(表示移动到前一个语句块,)表示移动到后一个语句块;
    {, }: 从光标所在的段落开始,{表示向前移动一个段落,}表示向后移动一个段落;可以理解为从一个空行移动到前一个或者后一个空行;
    %: 跳转到匹配的(, ), {, }, [, ]
    
    CTRL+f: 屏幕向下翻页,相当于PgUp;
    CTRL+b: 屏幕向上翻页,相当于PgDn;
    
    
    0: 移动到光标所在行的第一个字符处;
    $: 移动到光标所在行的最后一个字符处;
    ^: 移动到光标所在行的第一个非空字符处;
    
    gg: 移动到文件的第一行(且是第一个字符处);
    G: 移动到文件的最后一行(且是第一个字符处);
    数字n+G: 表示移动到第n行,如5G,表示移动到文件的第5行;
    说明:以上这些命令非常常用,熟记的同时要熟练;
    
    数字n+空格space: 表示向右移动n个字符,即n+space,等价于nl;
    数字n+回车Enter: 表示向下移动n行,等价于nj;
    

    2.2 查找替换

    /word: 从光标所在处向下搜索关键字word;
    ?word: 从光标所在处向上搜索关键字word;
    n: 向下搜索,查找下一个匹配项;
    N: 向上搜索,查找上一个匹配项;
    *:对光标所在的单词,向下查找;
    #: 对光标所在的单词,向上查找;
    说明:一般情况下,/word和n、N配合完成查找,而?word用得较少;
    
    :n1,n2s/src/dest/g: 在n1行到n2行之间(包括n1行和n2行),查找src,并将所有的src替换成dest;
    :1,$s/src/dest/g: 查查找范围为第一行到最后一行,将所有的src替换为dest,只是在替换时会有确认;
    :.,$s/src/dest/g: 查找范围为当前行到最后一行,将所有的src替换为dest;(因为在命令模式下,.表示当前行)
    

    2.3 删除、复制与粘贴

    x, X: x表示删除光标后的一个字符,X表示删除光标前的一个字符,前面可以加上数字n,表示删除n个字符, 即nx, nX;
    dd: 表示删除光标所在的行,前面带上数字n,表示删除当前行往下的n行(包括当前行);
    d$: 表示删除光标所在的位置到该行的最后一个字符;
    d0: 表示删除光标所在的位置到该行的第一个字符处;
    d^: 表示删除光标所在的位置到该行的第一个非空字符处;
    D: 删除光标所在字符到该行最后一个字符,等价于d$;
    dt+字符c: dt后接一个字符c,表示从光标所在字符开始,删除该行的字符知道遇到第一个为c的字符为止,如果在该行,光标所在字符后不存在字符c,则什么也不做;
    dG: 表示删除当前行到最后一行;
    dgg: 表示删除当前行与第一行;
    dnG: 表示删除当前行与第n行;
    
    yy: 复制光标所在那一行的内容;
    yG: 复制光标所在行与最后一行之间的内容;
    ygg: 复制光标所在行与第一行之间的内容;
    ynG: 复制光标所在行与第n行之间的内容;
    y$: 复制光标所在的字符到该行的最后一个字符;
    y0: 复制光标所在的字符到该行的第一个字符;
    y^: 复制光标所在的字符到该行的第一个非空字符;
    p, P: p表示将复制的数据粘贴在光标所在行的下一行;P表示将复制的数据粘贴在光标所在行的上一行;
    说明:如果复制的内容是以行为单位,则p和P就粘贴在当前行的下一行或上一行,如果复制的内容是以字符为单位,即针对y$, y0或者y^,p和P会粘贴在光标的后面。
    
    u: 复原上一个操作,类似于word中的还原;
    CTRL+r: 重做上一个操作;
    .: 重复前一个动作;相当于重新执行一遍前一个操作,比如前一个操作时dd,则.命令会再执行一遍dd;
    r,R: r表示替换光标所在字符,R表示替换光标所在字符及其后的字符,直到按ESC为止;
    

    2.4 块选择

    v: 字符选择,从光标所在字符开始,配合h, j, k, l进行字符的选择;
    V: 行选择,将光标经过的行选中;
    CTRL+v: 块选择,从光标所在字符开始,选中块;
    y: 复制选中的内容;
    p: 粘贴选中的内容;
    

    3. 编辑模式下的常用操作

    在编辑模式下,就是对文件的内容进行增删改,没有特殊的操作,光标的移动还是得进入到一般模式;
    从一般模式进入编辑模式的命令有:
    i, I: i表示在光标所在字符之前插入,I表示在光标所在行的第一个非空字符前插入;
    a, A: a表示在光标所在字符之后插入,A表示在光标所在行的最后一个非空字符后插入;
    
    o, O: o表示在光标所在行的下一行插入,O表示在光标所在行的上一行插入;
    s, S: s表示删除光标所在字符并进入插入模式,S表示删除光标所在行并进入插入模式;
    说明:s和S使用地稍微较少一些;
    
    CTR+n或者CTRL+p: 在编辑模式下,输入一些文字后,按CTRL+n或者CTRL+p可以出现提示文字;
    

    4. 命令行模式下的常用操作

    4.1 保存退出

    :w  保存文件内容,但不退出;
    :q  退出vim;如果文件内容没有被修改,则直接退出,如果文件内容修改了但没有保存,则会提示先保存后退出;
    :q!  强制退出vim;如果修改过文件但是没有保存,则不保存且强制退出;
    :e!  将文件恢复到最原始的状态,即上次保存的状态;
    :wq  保存后退出;
    :x  保存后退出;
    说明:其实最常用的命令当属:w, :q, :x,如果是有意的修改,则应该随时注意保存,即:w,离开时尽量使用:q,如果是有意修改,应该已经保存了,如果作了无意修改,则会提示,比较安全,只有在修改完之后,确定保存并离开,可以使用:x,不过还是尽量少用;
    

    4.2 文件读写

    :w filename 将文件的内容另存为另一个文件
    :n1,n2 w filename 将文件的n1和n2行之间的内容另存为另一个文件;
    :w>>filename  将文件内容追加到另一个文件中;
    :r filename  将另一个文件的内容读入到光标所在的下一行;
    :f  显示当前文件的文件名
    

    4.3 其它常用

    :set nu  显示行号
    :set nonu  隐藏行号
    :set hlsearch  查找时高亮显示匹配项
    :set nohlsearch  查找时不高亮显示匹配项
    说明:以上命令一般写入vim的配置文件里,这样就不需要每次都调这些命令了。
    

    5. 多文件及分屏编辑

    :r filename命令可以读入整个文件的内容,但如果指向复制或者重用另一个文件的部分内容,怎么办呢?可以使用多文件编辑或者分屏编辑;
    
    多文件:vim后接多个文件名,则可以在一个vim里打开多个文件,可以进行文件间的编辑;
    :n  显示下一个文件;
    :N  显示上一个文件;
    :f  显示当前文件的文件名;
    :files  显示所有的文件名;
    说明:这样,可以从一个文件里复制部分内容,然后切换到另一个文件,将文件内容粘贴,实现多文件的编辑;
    
    分屏:在一个屏幕上同时显示多个文件的内容,可以对照着编辑,很方便;
    分屏显示有两种方式:
    [1] 先使用vim打开一个文件,然后在命令行模式下可输入的命令有:
    :sp filename  读入另一个文件,两个文件分水平的上下两屏来显示;如果不跟文件名,则新屏里也显示当前文件的内容;
    :vsp filename 或者 :vsplit filename  读入另一个文件,两个文件分垂直的左右两屏来显示;如果不跟文件名,则新屏里也显示当前文件的内容;
    分屏之后的常用命令有:
    CTRL+w,[h,j,k,l]: 如果是横屏,则CTRL+w,j表示光标移入下方的屏,CTRL+w,k表示光标移入上方的屏;CTRL+w,h表示光标移入左侧的屏,CTRL+w,l表示光标移入右侧的屏;
    CTRL+w,w: 表示在两个屏之间来回切换;
    说明:CTRL+w,h的按键方式为:同时按下CTRL和w,放开或不放开都行,然后按下h;
    CTRL+w,=: 表示将两个屏幕的宽度调整为相等;
    [2] vim启动的时候同时打开多个文件:
    $ vim -On file01 file02  分垂直两屏显示两个文件;
    $ vim -on file01 file02  分水平两屏显示两个文件;
  • 相关阅读:
    HDU 2544 (Djikstra)
    HDU 1237(表达式求值)
    HDU1690 (Floyd)
    《大道至简》读后感
    第6周总结
    第8周总结
    第7周总结
    第四周总结
    第5周总结
    java程序
  • 原文地址:https://www.cnblogs.com/aipiaoborensheng/p/8315355.html
Copyright © 2011-2022 走看看