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  分水平两屏显示两个文件;
  • 相关阅读:
    English 2
    速算24点
    心理学1
    从微服务到函数式编程
    034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述
    033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结
    032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题
    031 01 Android 零基础入门 01 Java基础语法 03 Java运算符 11 运算符的优先级
    030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符
    029 01 Android 零基础入门 01 Java基础语法 03 Java运算符 09 逻辑“非”运算符
  • 原文地址:https://www.cnblogs.com/aipiaoborensheng/p/8315355.html
Copyright © 2011-2022 走看看