工欲善其事必先利其器之vim-插件
介绍
为什么要安装插件
[[尽管vim本身已经十分强大,但是还是有很多不足的地方,这些就可以通过插件来进行补充,安装自己喜欢的插件并配置成自己习惯的方式]]
怎么找vim插件
- 按照需求在网上搜索
- vimawesome
- 参考别人的开源配置
- 推荐一个开源项目spacevim
推荐的插件
注意:插件的配置请参考项目地址的文档
plugged manage tool:VIM下的插件管理工具
display tool:有关界面美化的插件
[Link:vim-startify:欢迎界面](https://github.com/mhinz/vim-startify)
- 在
vimrc
中添加设置:color snazzy
- airline自动生效,会在不同的Model下显示不同的颜色,以及一些文件相关的信息(文件路径、文件名、所在git分支、当前行、列数、编码等)
- startify会显示一个启动效果(最近打开的文件列表,提供通过文件前的数字编号快速跳转)
- 如果startify没有自动打开,可以执行
:startify
- 如果startify没有自动打开,可以执行
- 在
vimrc
中添加设置
1 |
|
快捷键
- ff : 打开/关闭目录树
- r : 刷新目录树(需在nertree下执行)
- I : 打开/关闭显示隐藏文件
- [LEADER]v : 在目录树中查找当前文件
配合上面提到的startify可以有如下效果
Taglist:函数、变量列表
- 说明
- 为了更好的支持,需要安装ctags
- Link
- 在
vimrc
添加配置noremap <silent>F :TagbarToggle<CR>
- 快捷键
- F
Error checking:代码错误检测
- 在
vimrc
中添加配置
1 | let b:ale_linters = ['pylint'] |
- 快捷键
- [LEADER]s
Auto Complete:代码自动补全
- 说明 : 需要额外安装,详见项目地址
- 在
vimrc
中添加配置1
2
3
4
5
6
7
8
9nnoremap gd :YcmCompleter GoToDefinitionElseDeclaration<CR>
nnoremap g/ :YcmCompleter GetDoc<CR>
nnoremap gt :YcmCompleter GetType<CR>
nnoremap gr :YcmCompleter GoToReferences<CR>
let g:ycm_autoclose_preview_window_after_completion=0
let g:ycm_autoclose_preview_window_after_insertion=1
let g:ycm_use_clangd = 0
let g:ycm_python_interpreter_path = "/usr/bin/python3"
let g:ycm_python_binary_path = "/usr/bin/python3" - 快捷键
- gd : Goto Definition
- g/ : Get Doc
- gt : Get Type
- gr : Goto References
Undo Tree:文件修改历史树
- 在
vimrc
中添加配置1
2let g:undotree_DiffAutoOpen = 0
map <LEADER>al :UndotreeToggle<CR> - 快捷键
- [LEADER]al
Other visual enhancement
- 快捷键
- cs”‘ : [change surround]将单词的”改为’,同理也可以操作’’ “” {} () [] 等
- cs’” : 将单词的’改为”,同理也可以操作’’ “” {} () [] 等
- ds’ : [delete surround]删除单词的’,同理也可以操作’’ “” {} () [] 等
- ds” : 删除单词的”,同理也可以操作’’ “” {} () [] 等
- ysiw” : [you add a surround]给光标所在的单词添加”” ,同理也可以添加’’ “” {} () [] 等
Link:indentline:代码缩进线
Link:vim-interestingwords:高亮单词
- 快捷键
- [LEADER]k : 对光标下的单词高亮
- n : 跳转到下一个
- N : 跳转到上一个
- [LEADER]K : 清除高亮
Git:git相关
Link:vim-gitgutter 实时显示文件的修改情况
- 在
vimrc
中添加set updatetime=100
- 命令
:GV
HTML, CSS, JavaScript, PHP, JSON, etc.
Python
Markdown
- 在
.vimrc
文件中添加下面配置
1 | let g:mkdp_path_to_chrome = "google-chrome" |
- :MarkdownPreview : 可以在浏览器中进行markdown文件的预览
Bookmarks:书签
- 快捷键
- mx : Toggle mark ‘x’ and display it in the leftmost column
- ‘x : Jump to mark x
- dmx : Remove mark ‘x’ where x is a-zA-Z
- m
: Delete all marks from the current buffer - ]` : Jump to next mark
- [` : Jump to prev mark
- m[0-9] : Toggle the corresponding marker !@#$%^&*()
Other useful utilities
- 在
.vimrc
文件中添加配置
1 | map <LEADER>gy :Goyo<CR> |
- 快捷键:
- [LEADER]gy : 开启focus model
- [LEADER]gy : 开启focus model
- 快捷键:
- cs”‘ : [change surround]将单词的”改为’,同理也可以操作’’ “” {} () [] 等
- cs’” : 将单词的’改为”,同理也可以操作’’ “” {} () [] 等
- ds’ : [delete surround]删除单词的’,同理也可以操作’’ “” {} () [] 等
- ds” : 删除单词的”,同理也可以操作’’ “” {} () [] 等
- ysiw” : [you add a surround]给光标所在的单词添加”” ,同理也可以添加’’ “” {} () [] 等
Link:vim-multiple-cursors 多光标操作,快捷编辑
Dependencies
[Link:[[vim-addon-mw-utils]]](https://github.com/MarcWeber/vim-addon-mw-utils)
Tool
- 用法参见github主页
- 在
vimrc
文件中添加配置
1 | let g:calendar_frame = 'default' |
- 快捷键:
- [LEADER]ac : 打开日历
- [LEADER]acc : 打开日历时钟模式
- [LEADER]acy : 打开日历年模式
- [LEADER]acm : 打开日历月模式
- [LEADER]acw : 打开日历周模式
- <、> : 在日历中前进后退
- T : 进入TASK
- i c a : 进行修改
- D : 标记为完成
- L : 清除完成的任务
- E : 进入EVENT
- ? : 进入帮助文档