• 【vim】vim常用命令


    移动:

      h 或 向左箭头键(←)    #光标向左移劢一个字符
      j 或 下箭头键(↓)      #光标向下移劢一个字符
      k 或 向上箭头键(↑)      #光标向上移劢一个字符
      l 或 向右箭头键(→)      #光标向右移劢一个字符

      0  #数字0,移动到本行最开始一个字符处

      $  #移动到本行最后一个字符处

      gg  #移动到第一行

      G  #移动到最后一行

      NG或:N  #移动到第N行

      w  #到下一个单词的开头

      W  #移动到下一个单词的开头,但会跳过某些标点

      e  #到下一个单词的结尾,第一次操作到当前单词结尾

      b  #到前一个单词的开头,第一次操作到当前单词开头

      *      #向前(文件结尾)搜索光标所在的单词

      #      #向后(文件开头)搜索光标所在单词

      %  #向前(文件结尾)搜索光标所在的符号,包括(,{,[。需要先把光标移动到括号上

      fc  #移动光标到同一行的下一个c字符处,c可以为其他字母、数字或者标点符号

      Fc  #移动光标到同一行的上一个c字符处,c可以是其他字母、数字或标点符号

      tc  #移动光标到同一行的下一个c字符前,c可以是其他字母、数字或标点符号

      Tc  #移动光标到同一行的上一个c字符前,c可以是其他字母、数字或标点符号

      Ctrl+f  #屏幕向下移动一页,相当于[page down]

      Ctrl+b  #屏幕向下移动一页,相当于[page up]

      

     

    搜索与替换:

      /word   #向光标乊下寻找一个名称为 word 癿字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!


      ?word   #向光标之上寻找一个字符串名称为 word 的字符串。


      n   #这个 n 是英文按键。代表『重复前一个搜寻的动作』。丼例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!


      N   #这个 N 是英文按键。与n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。


      :n1,n2s/word1/word2/g   #n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则: 『:100,200s/vbird/VBIRD/g』。


      :1,$s/word1/word2/gc  # 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在区代前显示提示字符给用户确认(confirm) 是否需要取代。

      :%s/word1/word2/g  #将整篇文章的word1取代为word2。%代表整篇文章

      r  #替换光标所在的字符

      R  #替换直到按esc退出

    插入:

      i  #在光标前插入

      I  #在当前行第一个非空字符前插入;

      a  #在光标后插入;

      A  #在当前行最后一个非空字符后插入;

      o  #在下面新建一行插入;

      O  #在上面新建一行插入;

      s  #删除光标所在字符并进入插入模式

      S  #删除光标所在行并进入插入模式

     

    删除(剪切)动作 d:

      dd  #删除(剪切)光标所在的那一整行,并将内容复制到剪贴板。

      d1G或dgg #删除(剪切)光标所在行到第一行的所有数据

      dNG  #删除(剪切)光标所在行到第N行的所有数据

      dG  #删除(剪切)光标所在行到最后一行的所有数据

      d$或D  #删除(剪切)光标所在处到该行最后一个字符的所有数据

      d0  #删除(剪切)光标所在处到该行第一个字符的所有数据

      dw  #删除(剪切)光标所在处到当前单词的最后一个字符的所有数据

      dtc  #删除所有的内容,直到遇到字符c。c可以是字母、数字或标点符号

       x,X  #在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键)

    复制动作 y:

      yy或Y  #复制光标所在的那一整行,并将内容复制到剪贴板。

      yNG  #复制光标所在行到第N行的所有数据

      yG  #复制光标所在行到最后一行的所有数据

      y$  #复制光标所在处到该行最后一个字符的所有数据

      y0  #复制光标所在处到该行第一个字符的所有数据

      yw  #复制光标所在字母到该字母所在单词结尾的部分

      yiw  #复制光标所在单词,即使光标不在单词的第一个字母

      

     

    改写动作 c:

      cw  #改写光标处到当前单词末尾的所有字符

      c$或C  #改写光标处到当前行末尾的所有字符

      cb  #改写光标处到当前单词开头的所有字符

    下述几个标签换成对应的结束符号也可以,比如'('换成')','['换成']'

      ci', di', yi' #修改、剪切或复制'之间的内容。

      ca', da', ya'  #修改、剪切或复制'之间的内容,包含'。

      ci", di", yi"  #修改、剪切或复制"之间的内容。

      ca", da", ya"  #修改、剪切或复制"之间的内容,包含"。

      ci(, di(, yi(  #修改、剪切或复制()之间的内容,。

      ca(, da(, ya(  #修改、剪切或复制()之间的内容,包含()。

      ci[, di[, yi[  #修改、剪切或复制[]之间的内容。

      ca[, da[, ya[  #修改、剪切或复制[]之间的内容,包含[]。

      ci{, di{, yi{  #修改、剪切或复制{}之间的内容。

      ca{, da{, ya{  #修改、剪切或复制{}之间的内容,包含{}。

      ci<, di<, yi<  #修改、剪切或复制<>之间的内容。

      ca<, da<, ya<  #修改、剪切或复制<>之间的内容,包含<>。

    粘贴:

      p,P  #P在光标之前粘贴,P在光标之后粘贴, 如果寄存器中是一行,则p在光标所在行下插入寄存器的行,P在光标所在行上方插入寄存器中的行

    缩进:

      << 向左缩进一个shiftwidth

      >> 向右缩进一个shiftwidth

      ==:  #两个==,自动缩进光标所在行。其实是=+任意字符。

      [V]+[=]:  #先用V选中要缩进的行(其实用ctrl+v或v也可以),然后按=就可以自动给缩进。所以[V]+[=]和==是等价的。

     

      [gg]+[V]+[G]+[=]:  #gg到第一行,V选中第一行,G到最后一行(即选中全文),=自动给缩进。这几个命令是全文自动缩进

     

    排版:

      J  #拼接当前行和下一行

     

    命令行模式:

      :setnu  #显示行号,设置之后,会在第一行的前缀显示改行的行号

      :set nonu  #与set nu相反,为取消行号

      :w  #将编辑的数据写入硬盘文件中

      :w!  #将编辑的数据写入硬盘文件中

      :q  #离开vi

      :wq  #保存后离开,若为“:wq!"则为强制保存后离开

      ZZ  #这是大写的Z。若文件没有改动,则不保存离开,若文件已经被改动过,则保存后离开。

     

    块选择:

      v:  #字符选择,会将光标经过的地方反白选择

      V:  #行选择,会将光标经过的行反白选择

      [Ctrl]+v:  #块选择,可以用长方形的方式选择数据

      y  #将反白的地方复制起来

      d  #将反白的地方删除

     

    自动补全:

      [Ctrl]+p或者[Ctrl]+n  

     

    批量操作:

      批量注释:

      首先定位到要注释的行首并按Ctrl + V(windows:Ctrl + P)进入块模式。然后按J或者K选中要注释的所有行。最后按大写I进入行首插入模式输入注释符号"//"或者"#",按ESC键退出。这样选中的所有行的行首就都被插入了注释符。

      批量取消注释:

      Ctrl + V进入块选择模式,选中你要删除的行首的注释符号,注意// 要选中两个,选好之后按d即可删除注释

     

    参考资料:

      1.《鸟哥的linux私房菜》

      2. http://blog.csdn.net/donahue_ldz/article/details/17139361

      3. http://coolshell.cn/articles/5426.html

      4. http://blog.csdn.net/xiajun07061225/article/details/8488210

      5.https://www.ibm.com/developerworks/cn/linux/l-cn-tip-vim/

  • 相关阅读:
    通过jQuery修改ui的顺序
    iOS用模型取代字典的好处
    iOS开发NSBundle、UIImageView和UIButton总结
    php数组中关于某个元素进行排序
    VMware 11安装Mac OS X 10.10
    js中的in_array
    localStorage中js数组的存储和读取
    google地图通过js计算当前位置与其余多个点之间的最近距离
    通过js修改图片的css样式,实现简单的图片旋转
    Javac不是内部或外部指令
  • 原文地址:https://www.cnblogs.com/vincently/p/4641661.html
Copyright © 2020-2023  润新知