将Vim打造成Python开发平台
RHEL/CentOS vim安装
在RHEL/CentOS/Fedora发行版中,包含了以下软件包可以提高python开发效率
安装vim增强包和语法扩展包之后,再使用
vim
编辑Python文件可以得到较好的语法高亮作用。
快速起步
本段落是快速完成Python Vim IDE设置的步骤,具体解释见本段落后的内容。本段落目标是尽快开始
安装Vundle扩展管理器
VIM and Python - a Match Made in Heaven这篇文章提供了非常详细的配置方法,并且提供了
使用vimrc realpython或者直接从VIM and Python - a Match Made in Heaven提供的VIM config保存成
~/.vimrc
使用
vim
命令启动vim,然后执行如下命令安装插件:
如果vim版本过低或者vim编译时没有支持Python,则需要从源代码重新编译,过程比较繁杂。不成功的尝试见 vim编译YouCompleteMe失败记录。在fedora 27环境中,发行版提供的vim版本已经满足要求,可以省略这部分。
从源代码编译过程参考 Building Vim from source
编译
ycm_core
(YouCompleteMe)
YoucompleteMe
插件安装后还需要编译一个ycm_core
的库,这样可以快速语义分析补全或者函数变量快速转跳。编译需要cmake
以及python
开发的头文件
注意:我采用的是Fedora系统自带的libclang(
--system-libclang
)。完整的编译安装请参考vim编译配置"YouCompleteMe"
在
.vimrc
附加屏幕分割配置,这样就可以简化分割窗口的转跳,例如,原先使用ctrl+w ctrl+j
才能调到下面的分割窗口,现在只需要简化成ctrl+j
使用nerdtree功能(树状结构文件浏览)
增加配置
vim进阶 | 使用插件打造实用vim工作环境这篇文章是基于vundle的插件管理设置,推荐参考
取消备份
默认文件编码utf-8
设置查找
显示调整
突出显示当前行
启动 vim 时关闭折叠代码
设置NERDTree
(未启用)默认启用
NERDTree
设置切换快捷键
ctrl-n
启用最小UI
显示隐含文件(以
.
开头文件和目录)(未启用)控制台启动时启动
NETDTree
(未启用)启动
NERDTree
后将光标切换到文件
增加其他插件
VIM and Python - a Match Made in Heaven专注于Python,但是我也需要其他的插件来支持功能,所以在
call vundle#end()
行之前插入有关插件的配置
上述步骤已完成vim ide for python
,以下步骤不需要执行,仅供参考
vim ide for python
,以下步骤不需要执行,仅供参考vim环境检查
检查 vim
版本
vim
版本要求> 7.3,并且支持Python(可以看到上述输出有+python
)
验证方法是在vim
中运行命令:python import sys; print(sys.version)
可以看到输出
vim扩展
首先需要一个好的扩展管理器
vim的扩展称为bundles或者plugins
Vundle
vim有多种扩展管理器,最推荐的是Vundle,就好像VIM的pip,安装方法如下
然后在自己的用户目录添加一个文件
然后在这个.vimrc
文件开头添加
然后开启vim
程序,在命令中输入
可以看到Vundle自动下载安装插件
设置IDE
VIM不需要鼠标
分割页面
在vim
中,使用命令 :sv <filename>
则垂直分隔页面,而使用:vs <filename>
则水平分隔页面。
可以通过在
.vimrc
文件中设置屏幕的不同分隔区域
要在不同的split分区移动而不需要鼠标,则可以在.vimrc
中添加以下配置
这样就可以使用以下快捷键来移动
nnoremap
是nutshell中将一个键映射到另外一个键,例如上面的案例nnoremap <C-J> <C-W><C-J>
表示将<C-J
映射成<C-W><C-j>
键。
缓存
缓存可以理解为最近打开的文件,vim提供了方便访问最近的缓存,只要输入:b <buffer name or number>
用于切换到一个打开的缓存。可以使用:ls
来列出所有缓存。
在
:ls
输出到最后,vim提示Hit enter to continue
,你可以代之以:b <buffer number>
来选择列表中的缓存。
代码目录
很多现代的IDE提供一个方便的折叠方式展示方法或者类,你可以在.vimrc
中添加
但是这会是你必须使用za
来进入目录,可以添加以下配置到.vimrc
这样空格键就更好使用
对于初始化命令,使用 set foldmethod=indent
,创建行缩进的目录,这样可以更为方便。比较好的推荐插件是SimpylFold
,可以在 .vimrc
中添加
然后再次执行 :PluginInstall
就可以安装插件
然后在.vimrc
中添加
Python缩排
对于Python,缩排是非常重要的,需要满足如下两点来完成缩进
缩进符合PEP8标准
自动处理缩进
在 .vimrc
中添加
然后再添加以下内容
上述插件称为ftype
,也就是让你可以针对不同的文件类型区分文件
自动缩排
自动缩排对于python不是总适用,所以我们为了解决这个问题,使用 indentpython.vim
扩展
并且我们要避免不需要的空格,素以添加
UTF8支持
在.vimrc
中添加
自动完成
一个非常好的自动完成插件 Valloric/YouCompleteMe
,也就是添加
不过,需要一些C库来避免插件自身的问题,文档介绍installation instructions
此外,如果提示错误:
这个报错是正常的,因为ycm需要手工编译出库文件
支持Virtualenv
上述配置可以检查运行是否在virtualenv,并切换
语法检查和高亮
使用syntastic
扩展
添加PEP8检查
然后再添加代码较好查看的方法
颜色
使用solarized用于GUI,以及Zenburn用于终端模式
以及检查环境来设置VIM模式
Solarized携带了两种theme,一种是dark,一种是light,切换非常方便,使用F5
文件浏览
如果希望使用tabs,使用vim-nerdtree-tabs
如果需要隐藏.pyc
文件,使用
超级搜索
只要按下Ctrl-P
就可以搜索
设置行号
集成Git
Powerline
系统剪贴板
在shell中使用vim
要激活,则在~/.inputrc
添加
一份完整清单vimrc realpython
参考
Last updated