基础配置:
1、第一,需要linux上的vim版本是8 及以上
2、第二,在每个linux的主目录下进行,也就是/home/用户名 路径下,需要有 .vimrc 文件(注意有个点),没有的话自行创建该文件。
3、第三,在 .vimrc文件上进行一些基础配置,如下
set nocompatible "关闭与vi的兼容模式
set number "显示行号
set nowrap "不自动折行
set showmatch "显示匹配的括号
set scrolloff=3 "距离顶部和底部3行"
set encoding=utf-8 "编码
set fenc=utf-8 "编码
set mouse=a "启用鼠标
set hlsearch "搜索高亮
syntax on "语法高亮
"为py文件添加下支持pep8风格的配置"
au BufNewFile,BufRead *.py
\ set tabstop=4 "tab宽度
\ set softtabstop=4
\ set shiftwidth=4
\ set textwidth=79 "行最大宽度
\ set expandtab "tab替换为空格键
\ set autoindent "自动缩进
\ set fileformat=unix "保存文件格式
"代码折叠"
set foldmethod=indent
set foldlevel=99
"一键执行python代码,按F5执行"
map <F5> :call RunPython()<CR>
func! RunPython()
exec "W"
if &filetype == 'python'
exec "!time python2.7 %"
endif
endfunc
插件配置:
1、接着进行需要的插件配置,首先安装vundle,vim bundle的简称,使用git来管理vim插件。
先执行以下shell命令:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
如果~/.vim/bundle目录不存在,则手动新建。
然后将以下配置放在 .vimrc文件的开头:
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
接着将所需要的插件的命令,放在call vundle#begin()和call vundle#end()之间,例如将自动缩进indentpython.vim插件放在它们中间,然后保存配置,再在vim中执行 :PluginInstall 命令,进行安装。如果安装成功,那么结果会是以下这样:
进行完上述操作后,接下来就是根据需要,进行各种插件的安装配置
1、自动补全插件,在 .vimrc 文件中加入并安装:Plugin '
vim-scripts/indentpython.vim'
2、自动补全插件YouCompleteMe,在ubuntu中使用,先准备一些工具,执行以下命令: sudo apt
-
get install build
-essential cmake
sudo apt-
get install python
-
dev python3
-dev
在 .vimrc 文件中加入并安装:
Plugin
'Valloric/YouCompleteMe'
在shell中进行编译并将配置文件复制到主目录:
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer
cp third_party/ycmd/examples/.ycm_extra_conf.py ~/
YCM一些常用的选项,在 .vimrc 中配置:
let g:ycm_min_num_of_chars_for_completion = 2 "开始补全的字符数"
let g:ycm_python_binary_path = 'python' "jedi模块所在python解释器路径"
let g:ycm_seed_identifiers_with_syntax = 1 "开启使用语言的一些关键字查询"
let g:ycm_autoclose_preview_window_after_completion=1 "补全后自动关闭预览窗口"
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR> "代码跳转"
"开关YCM"
let g:ycm_auto_trigger = 0 "turn off
let g:ycm_auto_trigger = 1 "turn on
3、自动缩进插件,在 .vimrc 文件中加入并安装:Plugin 'vim-scripts/indentpython.vim'
在 .vimrc 文件中加入并安装:
4、语法检查插件,Plugin 'vim-syntastic/syntastic'
在 .vimrc 文件中加入并安装,运行F7就可以进行flake8检查了:
5、flake8 代码风格检查,Plugin 'nvie/vim-flake8'
在 .vimrc 文件中加入并安装
6、配色方案,:Plugin 'altercation/vim-colors-solarized' 或者
Plugin 'jnurmine/Zenburn'
然后可以进行配色方案设置,在.vimrc文件找那个加入:
"solarized有dark和light两种配色,配置"
syntax enable
set background=light or dark
colorscheme solarized
"或者,也可以根据gui模式和终端模式进行切换"
if has('gui_running')
set background=light
else
set background=dark
endif
"或者,两种配色切换"
if has('gui_running')
set background=dark
colorscheme solarized
else
colorscheme Zenburn
endif
7、给vim添加树形目录,在 .vimrc 文件中加入并安装:Plugin 'scrooloose/nerdtree'
map <C-n> :NERDTreeToggle<CR>
在 .vimrc 文件中添加:
按ctrl+n就可以显示和取消
还可以附加其他配置:
设置忽略.pyc文件,在 .vimrc 文件中加入:let
NERDTreeIgnore=[
'\~$'
,
'\.pyc$'
,
'\.swp$']
在 .vimrc 文件中加入并安装:
为nerdtree添加git支持,Plugin 'Xuyuanp/nerdtree-git-plugin'
在 .vimrc 文件中加入并安装:
在nerdtree中想用tab键,Plugin
'jistr/vim-nerdtree-tabs'
8、美化状态栏,可以显示当前的虚拟环境、Git分支、正在编辑的文件等信息,在 .vimrc 文件中加入并安装:
Plugin
'Lokaltog/vim-powerline'
在 .vimrc 文件中加入:
""""""""""power-line""""""""""""""
set laststatus=2
let g:Powerline_symbols='unicode'
9、缩进指示线,在 .vimrc 文件中加入并安装:Plugin 'Yggdroot/indentLine'
autopep8:
10、自动化格式工具,先安装pip
install
autopep8
在 .vimrc 文件中加入并安装:
再Plugin
'tell-k/vim-autopep8'
设置快捷键F8代替该功能,在 .vimrc 文件中加入:
autocmd FileType python noremap <buffer> <F8> :call Autopep8()<CR>
11、自动补全括号和引号等,在 .vimrc 文件中加入并安装:Plugin 'jiangmiao/auto-pairs'
在vim normal模式下,按下ctrl+p,然后输入你要寻找的文件就行了,在 .vimrc 文件中加入并安装:
12、搜索插件,
Plugin 'kien/ctrlp.vim'
搜索引擎使用了the_silver_searcher,先在shell中安装:
13、apt-
get
install silversearcher-ag
在 .vimrc 文件中加入并安装:
再Plugin 'rking/ag.vim'
:Ag [options] {pattern} [{directory}] (注意最前面有个冒号)
使用姿势:
14、git集成插件,可以在vim中运行git命令,在 .vimrc 文件中加入并安装:Plugin
'tpope/vim-fugitive'
到此即安装了一些个性化的插件,让vim成为一个比较理想的python开发工具,还可以有其他插件,自行查找并安装。
以上安装过程中,遇到的问题及解决方式:
1、在vim中出现鼠标右键不能黏贴的问题,解决方法:
在 .vimrc 文件中加入以下代码:
if has('mouse') set mouse-=a endif
2、编译过程中,出现以下报错:
c++: internal compiler error: Killed (program cc1plus)
原因是内存不足,解决方法,在shell中依次执行以下命令:
#1. 创建分区文件,大小 2G
dd if=/dev/zero of=/swapfile bs=1k count=2048000
#2. 生成 swap 文件系统
mkswap /swapfile
#3. 激活 swap 文件
swapon /swapfile
#4. 修改 /etc/fstab 文件,新增如下内容:
/swapfile swap swap defaults 0 0
3、vim版本升级,在shell中执行以下命令:
sudo add-apt-repository ppa:jonathonf/vim
sudo apt update
sudo apt install vim
sudo apt-get update
sudo apt-get upgrade
4、解决出现: YouCompleteMe/third_party/ycmd/third_party/cregex" does not appear to contain CMakeLists.txt
执行:
rm -rf YouCompleteMe/third_party/ycmd/third_party/cregex
git submodule update --init --recursive(在YouCompleteMe/third_party/ycmd/third_party目录下)
5、YouCompleteMe出现问题:The ycmd server SHUT DOWN (restart with ':YcmRestartServer').
可能是因为本地没有重新编译YCM,在bundle下的YouCompleteMe目录下,执行 install.py --clang-completer