GVIM 使用技巧

本文参考《GVIM 教程基于明德扬课程》哔哩哔哩_bilibili

1. GVIM三种模式

GVIM 有三个操作模式,分别是命令模式、编辑模式和列操作模式。

  • 默认 GVIM 是命令模式。
  • 在命令模式下,输入 i 进入编辑模式。
  • 在任何模式下,按 Esc 进入命令模式。
  • 在命令模式下,按 ctrl+q 进入列操作模式。

2. GVIM常用指令

  • 补全命令
    ctrl+p:编辑模式,输入开头字母,按下ctrl+p,会出现下拉菜单,此时按上下键寻找需要的代码,按回车选择。
  • 跳转命令
    gg:命令模式,跳转至第一行
    G:命令模式,跳转至最后一行
    :nu:命令模式,输入:加行号,跳到指定行号
    ~:命令模式,返回之前所在行
  • 搜索命令
    *:命令模式,光标位于所在代码上,按下*便可高亮所有该代码,按下n和N便可上下寻找
    n:向下寻找
    N:向上寻找
    /:按下”/+搜索内容“,也可以高亮所有搜索内容
  • 删除行命令
    dd:删除光标所在行
    2dd或d2d:删除光标所在后两行(算上光标所在行)
  • 复制粘贴全选行命令
    yy:复制光标所在行
    2yy或y2y:复制光标所在后两行(算上光标所在行)
    ggvG: 全选
    ggyG: 全选复制
    "+y: 跨文件复制命令
    p:粘贴
    "+p: 跨文件粘贴命令
  • 文件指令
    :w 保存文件但不退出vi 
    :w file 将修改另外保存到file中,不退出vi 
    :w! 强制保存,不推出vi 
    :wq 保存文件并退出vi 
    :wq! 强制保存文件,并退出vi 
    :q 不保存文件,退出vi 
    :q! 不保存文件,强制退出vi 
    :e! 放弃所有修改,从上次保存文件开始再编辑命令历史

  • 撤回指令
    u:(:undo)撤回
    crtl+r:redo 重做

3. GVIM高级技巧

  • 替换命令
    在命令模式下,输入:%s/xx/yy/gc,然后输入y点回车。%s表示作用与整个文档,xx表示文档中需要替换的内容;yy表示替换后的内容;
    “g” 标记表示替换行中的所有匹配点。
    “%” 范围前缀表示在所有行中执行替换,如果仅仅对当前行进行操作,那么只要去掉%即可。
    “c” 标记表示Vim 会在每次替换前提示你
  • 如果需要在某个代码块中替换信号,比如将cnt替换为cnt0,这个代码块位于第10到第15行,则需要在命令模式下输入 :10:15s/cnt/cnt0/gc
  • 列删除方法:常用于删除连续几列中的某些字符

     比如现在要删除43到49行中的put
    step1:在编辑模式下选择43行的第3个字符到49行的第5个字符,如上图
    step2:按下Ctrl+q
    step3:按下Delete键

  • 列插入方法
    step1:按下Ctrl+q进入列操作模式
    step2:通过h、j、k、l选择要插入的范围 or 通过鼠标选择
    step3:选好范围后,按下大写的"I(i)",输入要插入的内容
    step4:按esc退出
  • 列复制方法
    step1:在编辑模式下选择
    step2:按下Ctrl+q
    step3:y+p

4. GVIM替换与正则表达式

  替换命令格式“ :%s/正则表达式/要替换的字符串/选项”

  https://blog.csdn.net/Andy_ICer/article/details/111538979

  正则表达式

  

  

  

  

  替换实例

  • 把所有的help或者Help都替换为大写的HELP;
    :%s/[Hh]elp/HELP/g
  • 删除每行后面多余的空格,可以执行如下命令:

    :%s/\s\+$//

    “\s\+$”表示行末($)前的一个或者多个(\+)空格(\s)。替换命令的部分是空的:"//”。这样就会删除那些匹配的空白字符。

  •  在第15到16末尾加分号;

    :%s/.$/\;/g;
    ”.“表示匹配到的是非空行的最后一个字符

  •  例化技巧

    :24,30s/\(\s*\)\(\w*\)\(\s*\):.*/\1\2\3=> \2_s,/g
    \(\s*\)匹配一堆空白字符 分组1
    \(\w*\)匹配一堆单词字母下划线字符 分组2
    \(\s*\)匹配一堆空白字符 分组3
    .*表示任意多个任意字符,:.*表示":"连同后面任意字符
    该命令表示将:.*表示":"连同后面任意字符替换为=> \2_s,

5. GVIM对齐

  • 自动对齐上一行

    选中16到17,ctrl+v进入visual模式
    按下"="(默认自动对齐上一行)
posted @ 2023-07-30 16:17  Kazu-ki  阅读(3533)  评论(0编辑  收藏  举报