Gvim入门
0 参考文档
官方文档:http://vimcdoc.sourceforge.net/
- 较为好用:user_manual-2.3.0.pdf
1 常见用法
命令模式/基础操作
移动
G移动到文件末尾
gg移动到文件首
num+g移动到第num行
c-f向前翻页,c-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 当前行首插入
底行模式
- :X文件加密
- :set key=或者:X为空,文件解密
- :sp (文件名),横着新开一个页内窗口打开文件
- :vsp (文件名),竖着新开一个页内窗口打开文件
- :tabnew (文件名),新开一个页外窗口打开文件
- :ctrl+w切换窗口
- :set nu在每一行前显示行号,有助于查看:set nonu去除行号
- :set ic不区分大小写:set noic
- :set wrap分行显示:set nowrap
- :ab自动添加缩写
- :!sort行排序(行可以选中后输入:,也可以直接:num1,num2,%是选中全部行)
- :E查看父目录内容
- :e刷新
- :num1,num2从num1行到num2行
- :11,20s/output/input/g把11行到20行所有的input替换为output
- :/s替换
- :/g全部执行
- :行可以选中后输入:,也可以直接:num1,num2,%是选中全部行
常用格式化指令
/搜索的意思
:%s/旧/新/g
全局替换:g/^$/d
删除所有空行
2 vimrc
1.如何找到vimrc(在系统终端内键入):
1 |
|
3 插件
Nerdtree文件浏览F2开/关
Ale异步语法检测需搭配verilator
- ctrl+j跳到下一个警告点
- ctrl+k跳到上一个警告点
Vim-airline状态栏美化
Ultisnippets代码段调用
Vim-snippets代码段库
- 需搭配Ultisnippets
- Vim-easy-align 代码对齐
- ga进入代码对齐模式
- vip选中一段内容
- vip ga*
依据空格对齐* - vip ga*,依据逗号对齐
- vip ga%=依据等号对齐
- 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
- 该插件需要nodejs的支持所以需要先安装nodejs:
4 其他问题
- 如何在搜索完结束高亮,两种方法:
- :noh
- 搜索不存在的一个字串
- Vim如何跳转到光标的上次位置
- Ctrl + O
- Ctrl + I
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!