Vim

插件清单

  • nerdtree。文件目录树形插件

  • nerdtree-git-plugin。nerdtree git插件

  • vim-go。golang插件

  • tagbar。标签插件,显示文件中的缩略信息

  • molokai。molokai颜色主题插件

快速配置

下载配置脚本

git clone git@github.com:wujie1993/dev-env.git $GOPATH/src/github.com/wujie1993/dev-env

执行配置脚本

cd $GOPATH/src/github.com/wujie1993/dev-env/centos7 && sh ./setup.sh

打开vim编辑器,安装vim插件

:PluginInstall

安装golang插件

:GoInstallBinaries

重新打开vim编辑器,完成插件加载

手动配置

1、安装依赖包

yum install -y epel-release
yum install -y gcc git ncurses-devel ctags ruby ruby-devel lua lua-devel luajit luajit-devel ctags git python python-devel tcl-devel perl perl-devel perl-ExtUtils-ParseXS perl perl-devel perl-ExtUtils-ParseXS perl-ExtUtils-Embed

2、下载vim代码

git clone https://github.com/vim/vim.git $GOPATH/src/github.com/vim/vim

3、编译安装vim

cd $GOPATH/src/github.com/vim/vim && git checkout v8.1.2424
// 如果不需要vim桌面版UI,可以关闭CONF_OPT_GUI配置项,提示vim性能
sed -i 's/^# CONF_OPT_GUI.*/CONF_OPT_GUI = --disable-gui/' ./src/Makefile
// 编译配置
./configure --with-features=huge \
            --enable-multibyte \
            --enable-rubyinterp=yes \
            --enable-pythoninterp=yes \
            --with-python-config-dir=/lib64/python2.7/config \
            --enable-perlinterp=yes \
            --enable-luainterp=yes \
            --enable-gui=gtk2 \
            --enable-cscope \
            --prefix=/usr/local
// 编译与安装
make VIMRUNTIMEDIR=/usr/local/share/vim/vim81 && make install

4、在~/.vimrc路径上创建vim配置文件

~/.vimrc
set number
syntax on
"set softtabstop=2
"set tabstop=2
set expandtab
set backspace=2
set incsearch
set hlsearch
set autowrite
set nobackup
set noswapfile
" code fold by indent
set fdm=indent
set pastetoggle=<F9>

" This enables us to undo files even if you exit Vim.
if has('persistent_undo')
  set undofile
  set undodir=~/.config/vim/tmp/undo//
endif

" Use space to close and open code fold
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'VundleVim/Vundle.vim'
Plugin 'scrooloose/nerdtree'
Plugin 'Xuyuanp/nerdtree-git-plugin'
Plugin 'fatih/vim-go'
" Plugin 'Valloric/YouCompleteMe' 
" Plugin 'vim-syntastic/syntastic'
" Plugin 'rjohnsondev/vim-compiler-go'
Plugin 'majutsushi/tagbar'
Plugin 'fatih/molokai'
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'tpope/vim-fugitive'
" Plugin 'Shougo/neocomplete.vim'

call vundle#end()
filetype plugin indent on
filetype plugin on

" nerdtree conf
let NERDTreeShowHidden=1
silent! autocmd VimEnter * NERDTree
autocmd StdinReadPre * let s:std_in=1
silent! autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
silent! autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
nmap <F7> :NERDTree<CR>

" molokai
syntax enable
set t_Co=256
let g:rehash256 = 1
let g:molokai_original = 1
silent! colorscheme molokai

" vim-go
let g:go_list_type = "quickfix"
let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_structs = 1
let g:go_highlight_operators = 1
let g:go_highlight_build_constraints = 1
"autocmd BufWritePost,FileWritePost *.go execute 'GoMetaLinter'
"autocmd BufNewFile,BufRead *.go setlocal noet ts=2 sw=2 sts=2
"autocmd BufWritePost,FileWritePost *.go execute 'GoVet'

" tagbar
silent! autocmd VimEnter * TagbarToggle
nmap <F8> :TagbarToggle<CR>

" neocomplete
" let g:neocomplete#enable_at_startup = 1

5、安装vim插件管理工具

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

6、下载golang插件代码(有翻墙可跳过)

git clone git@github.com:golang/net.git $GOPATH/src/golang.org/x/net
git clone git@github.com:golang/sync.git $GOPATH/src/golang.org/x/sync
git clone git@github.com:golang/tools.git $GOPATH/src/golang.org/x/tools
git clone git@github.com:golang/lint.git $GOPATH/src/golang.org/x/lint

7、打开vim编辑器并加载插件

vim -c PluginInstall -c GoInstallBinaries

快捷命令

快捷键

Q&A

如何修改文件格式?

在windows下编辑过的文件传输到linux上后执行时出现类似错误

/bin/bash^M: bad interpreter: No such file or directory

可以通过:set ff=unix保存为linux所能识别的格式,可以通过:set ff=dos再重新保存回windows所能识别的格式

如何避免粘贴时自动缩进和注释?

在粘贴前使用指令set paste进入粘贴模式

在粘贴后使用指令set nopaste退出粘贴模式

也可以将该指令加入快捷键中

~/.vimrc
...
set pastetoggle=<F9>

升级git至最新版本

python代码格式化

首先安装格式化工具

pip install autopep8

在将以下内容添加至~/.vimrc

call vundle#begin()
...
Plugin 'Chiel92/vim-autoformat'
...
call vundle#end()

" python-autoformat
" 使用快捷键F6对当前代码文件进行格式化
nnoremap <F6> :Autoformat<CR>
let g:autoformat_autoindent = 0
let g:autoformat_retab = 0
let g:autoformat_remove_trailing_spaces = 0

最后更新于