Gvim入门

0 参考文档

官方文档:http://vimcdoc.sourceforge.net/

  • 较为好用:user_manual-2.3.0.pdf

1 常见用法

命令模式/基础操作

  • 移动

    • G移动到文件末尾

    • gg移动到文件首

    • num+g移动到第num行

    • c-f向前翻页,c-b向后翻页

    • w跳转到下一个单词头部,b跳转到上一个单词头部

    • 0/^跳转到行首,$跳转到行末

    • :行号跳转到第n行

    • j/k行号跳转相对n行行号

    • w下个单词首部,e下个单词尾部

    • b上个单词首部

  • ctrl+v块操作->shift+i输入文字->esc (shift i意思是大写I,意思是在选中前的地方插入)

  • v和c-v的区别

    • v可以完全删除

    • c-v删除后还留着空行

  • 删除与插入

    • cl删除并插入

    • cc删除行并插入

    • c$删除到行末并插入

    • cw删除一个单词

  • 查找

    • shift+*:往前查找当前的word,前提是光标移动到要查找的word

    • shift+#:往后查找当前的word,前提是光标移动到要查找的word

  • ctrl+r回退 u撤销

  • 大小写

    • U选中的小写全换为大写

    • u选中的大写全换为小写

  • c替换(删除并进入编辑模式)

    • cw替换一个单词
    • ci{或ci},删除相邻大括号内部文字,并进入编辑模式(小括号中括号也一样)
  • r替换

  • gf跳转到文件

  • ctrl+o回去文件

  • gvimdiff file1 file2比较两和文件相同

  • 窗口操作系列

    • ctrl+w w光标切换窗口

    • ctrl+w hjkl光标切换窗口(带位置)

    • ctrl+W HJKL窗口位置切换(带位置)

    • :q/wall 关闭/写入所有窗口

  • shift

    • shift + o 新增上一行(o下一行)

    • shift + i 当前行首插入

底行模式

  1. :X文件加密
  2. :set key=或者:X为空,文件解密
  3. :sp (文件名),横着新开一个页内窗口打开文件
  4. :vsp (文件名),竖着新开一个页内窗口打开文件
  5. :tabnew (文件名),新开一个页外窗口打开文件
  6. :ctrl+w切换窗口
  7. :set nu在每一行前显示行号,有助于查看:set nonu去除行号
  8. :set ic不区分大小写:set noic
  9. :set wrap分行显示:set nowrap
  10. :ab自动添加缩写
  11. :!sort行排序(行可以选中后输入:,也可以直接:num1,num2,%是选中全部行)
  12. :E查看父目录内容
  13. :e刷新
  14. :num1,num2从num1行到num2行
  15. :11,20s/output/input/g把11行到20行所有的input替换为output
  16. :/s替换
  17. :/g全部执行
  18. :行可以选中后输入:,也可以直接:num1,num2,%是选中全部行

常用格式化指令

/搜索的意思

  • :%s/旧/新/g全局替换
  • :g/^$/d删除所有空行

2 vimrc

1.如何找到vimrc(在系统终端内键入):

1
vim --version

3 插件

  1. Nerdtree文件浏览F2开/关

  2. Ale异步语法检测需搭配verilator

    • ctrl+j跳到下一个警告点
    • ctrl+k跳到上一个警告点
  3. Vim-airline状态栏美化

  4. Ultisnippets代码段调用

  5. Vim-snippets代码段库

  • 需搭配Ultisnippets
  1. Vim-easy-align 代码对齐
  • ga进入代码对齐模式
  • vip选中一段内容
  • vip ga*依据空格对齐*
  • vip ga*,依据逗号对齐
  • vip ga%=依据等号对齐
  1. Neocomplcache 代码补全
  • dcommenter 注释工具
  • ,cc注释当前行
  • ,cs注释选中多行
  • ,cu 取消注释
  • CA行未添加冲程

Vtag 模块追踪

  • vtags生成路径下所有文件的数据库(含子目录)
  • +V显示侧栏导航(需先使用
  • +追信号源,或宏定义
  • +追信号目的
  • +回退
  • +向前
  • gi 进入子模块
  • gu 返回上层模块

vlog_inst_gen 模块例化

  • ,ig对当前文件生成例化并存入剪贴板

coc.nvme

  • 安装:
    • 该插件需要nodejs的支持所以需要先安装nodejs:curl -sL install-node.now.sh/lts | bash
    • vimrc添加Plug 'neoclide/coc.nvim', {'branch': 'release'}
    • 安装完后可以再安装snippets:CocInstall coc-snippets

4 其他问题

  1. 如何在搜索完结束高亮,两种方法:
    • :noh
    • 搜索不存在的一个字串
  2. Vim如何跳转到光标的上次位置
    • Ctrl + O
    • Ctrl + I

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!