个人从网上收集了一些比较实用的vim插件,在此做一个笔记,方便自己下次查看,同时也给需要的人提供一些帮助。
插件的有些设置可自行查看github官网,在这里我只列出一些我用的设置。
CSDN不再更新,关于vim新增插件,详见:https://www.cnblogs.com/wybliw/p/10237197.html
来自chxuan
https://github.com/chxuan/vimplus
请仔细阅读chxuan大神的文档,YouCompleteMe自动补全插件只支持Linux 64位系统。
Airline等插件有乱码,
需设置终端字体为Nerd Font。
字体下载地址:
https://github.com/ryanoasis/nerd-fonts#font-installation
(1),Ubuntu Nerd Font字体,等宽,代码字体,
字母和数字很方便区分。
(2),Droid Sans Mono Nerd Font字体,等宽,代码字体,
(1)脚本添加一些功能,根据个人需要:
set foldmethod=marker "开启代码折叠,并保存折叠信息
" 分屏窗口大小调整
nnoremap
- nnoremap
+ nnoremap
< nnoremap
>
(2)添加插件:
(A)显示vim文档哪些行被修改的插件
Github网址:
https://github.com/chrisbra/changesPlugin
Plug 'chrisbra/changesPlugin'
效果如下图(红色:删除, 蓝色:修改, 绿色:新增):
脚本配置:
let g:changes_autocmd=1
let g:changes_use_icons = 1
let g:changes_linehi_diff = 0
(B)vim-man插件
在vim中查看相关函数等的man手册,支持水平窗口和垂直窗口打开。
Github网址:
https://github.com/vim-utils/vim-man
Plug 'vim-utils/vim-man'
支持
水平窗口打开:
垂直窗口打开:
脚本配置:
"vim-man
map
m (Man) map
v (Vman)
(C)显示 缩进线 插件
Github网址:
https://github.com/nathanaelkane/vim-indent-guides
Plug 'nathanaelkane/vim-indent-guides'
效果如下图:
脚本配置:
"vim-indent-guides
let g:indent_guides_enable_on_vim_startup = 1
let g:indent_guides_auto_colors = 0
let g:indent_guides_guide_size = 1
let g:indent_guides_start_level = 1
let g:indent_guides_space_guides = 1
let g:indent_guides_tab_guides = 0
hi IndentGuidesOdd guibg=red ctermbg=0
hi IndentGuidesEven guibg=green ctermbg=8
(D)Tab键快速插入断码片段
Github网址:
https://github.com/sirver/ultisnips
Plug 'honza/vim-snippets'
Plug 'sirver/ultisnips'
效果图(引用原网址图片):
脚本配置:
" ultisnips
let g:UltiSnipsExpandTrigger="
" let g:UltiSnipsJumpForwardTrigger="
" let g:UltiSnipsJumpBackwardTrigger="
" let g:UltiSnipsEditSplit="vertical"
(E)YouCompleteMe的一些配置
很多设置请参考github官方文档:
https://github.com/Valloric/YouCompleteMe#linux-64-bit
脚本配置:
let g:ycm_key_list_stop_completion = ['
'] let g:ycm_key_list_select_completion = ['
'] let g:ycm_key_list_previous_completion = ['
']
(F) vim代码格式化插件 :vim-autoformat
Github网址:
https://github.com/chiel92/vim-autoformat
Plug 'chiel92/vim-autoformat'
vim-autoformat 插件添加完成后,需要再安装 astyle 格式化工具。
格式化工具有很多种:
(1)astyle(支持C, C++, C++/CLI, Objective‑C, C#和Java);
(2)clang-format(支持C, C++,和Objective-C );
(3)python-pep8,python3-pep8,python-autopep8;
(4)yapf(Google开发的Python格式化工具)
在这里,我只安装了第1种。
ubuntu系统:
sudo apt-get install astyle
astyle 支持的格式化风格:
--style=allman / --style=bsd / --style=break / -A1
Allman style uses broken braces.int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; }
--style=java / --style=attach / -A2
Java style uses attached braces.int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; }
--style=kr / --style=k&r / --style=k/r / -A3
Kernighan & Ritchie style uses linux braces. Opening braces are broken from namespaces, classes, and function definitions. The braces are attached to everything else, including arrays, structs, enums, and statements within a function.Using the k&r option may cause problems because of the &. This can be resolved by enclosing the k&r in quotes (e.g. ‑‑style="k&r") or by using one of the alternates ‑‑style=kr or ‑‑style=k/r.
int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; }
以上列举了3种常用的代码风格,其他请参见官网:
http://astyle.sourceforge.net/astyle.html#_break-one-line-headers
vim-autoformat脚本配置:
" vim-autoformat
let g:formatdef_my_custom_c = '"astyle --mode=c --style=allman"'
let g:formatters_c = ['my_custom_c']
"au BufWrite * :Autoformat
let g:autoformat_autoindent = 0
let g:autoformat_retab = 0
let g:autoformat_remove_trailing_spaces = 0
noremap:Autoformat
(Z)关于脚本的其他配置
注意F5按键和YouCompleteMe的查错按键映射有冲突,需要修改。
" ======= C,C++ 按F5编译运行 =========
map:call CompileRunGcc()
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!gcc % -o %<"
exec "!time ./%<"
elseif &filetype == 'cpp'
exec "!g++ % -o %<"
exec "!time ./%<"
elseif &filetype == 'java'
exec "!javac %"
exec "!time java %<"
endif
endfunc
" ====== C,C++的调试 =========
map:call Rungdb()
func! Rungdb()
exec "w"
if &filetype == 'c'
exec "!gcc % -g -o %<"
exec "!gdb ./%<"
elseif &filetype == 'cpp'
exec "!g++ % -g -o %<"
exec "!gdb ./%<"
endif
endfunc
"F12 格式化代码 , 如果添加了vim-autoformat插件,此映射请注释掉,防止冲突
mapgg=G
后期会不定期更新,添加更多强大的插件。