Vim Plus的搭建,并完善相关插件,打造最强vim编辑器

 

个人从网上收集了一些比较实用的vim插件,在此做一个笔记,方便自己下次查看,同时也给需要的人提供一些帮助。

插件的有些设置可自行查看github官网,在这里我只列出一些我用的设置。

 

CSDN不再更新,关于vim新增插件,详见:https://www.cnblogs.com/wybliw/p/10237197.html

 


1.下载安装vimplus,里面包含了安装方法。

来自chxuan

https://github.com/chxuan/vimplus

请仔细阅读chxuan大神的文档,YouCompleteMe自动补全插件只支持Linux 64位系统。

 


2.安装完成后,执行vim  -v,会看到如下图(引用chxuan)。

Vim Plus的搭建,并完善相关插件,打造最强vim编辑器_第1张图片


3.安装完成后,若有乱码,Airline等插件有乱码,需设置终端字体为Nerd Font。

字体下载地址:

https://github.com/ryanoasis/nerd-fonts#font-installation

(1),Ubuntu Nerd Font字体,等宽,代码字体,

Vim Plus的搭建,并完善相关插件,打造最强vim编辑器_第2张图片

字母和数字很方便区分。

 

(2),Droid Sans Mono Nerd Font字体,等宽,代码字体,

Vim Plus的搭建,并完善相关插件,打造最强vim编辑器_第3张图片


4.完善vim插件

(1)脚本添加一些功能,根据个人需要:

set foldmethod=marker    "开启代码折叠,并保存折叠信息

 

" 分屏窗口大小调整

nnoremap -

nnoremap +

nnoremap <

nnoremap >

 


(2)添加插件:

(A)显示vim文档哪些行被修改的插件

Github网址:

https://github.com/chrisbra/changesPlugin

Plug 'chrisbra/changesPlugin'

效果如下图(红色:删除,   蓝色:修改,    绿色:新增):

Vim Plus的搭建,并完善相关插件,打造最强vim编辑器_第4张图片

脚本配置:

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官方是说明,效果如下图:

Vim Plus的搭建,并完善相关插件,打造最强vim编辑器_第5张图片

水平窗口打开:

Vim Plus的搭建,并完善相关插件,打造最强vim编辑器_第6张图片

垂直窗口打开:

Vim Plus的搭建,并完善相关插件,打造最强vim编辑器_第7张图片

脚本配置:

"vim-man

map m (Man)

map v (Vman)

 


(C)显示 缩进线 插件

Github网址:

https://github.com/nathanaelkane/vim-indent-guides

Plug 'nathanaelkane/vim-indent-guides'

效果如下图:

Vim Plus的搭建,并完善相关插件,打造最强vim编辑器_第8张图片

 

脚本配置:

"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插件,此映射请注释掉,防止冲突
  map gg=G

 

 

后期会不定期更新,添加更多强大的插件。

 

 

 

你可能感兴趣的:(linux)