转载:简书 vim环境配置 做者 fromradio 留做备忘 如侵权请联系删除

为Python建立Vim环境

144
做者 fromradio
2016.08.04 11:36* 字数 1766 阅读 504评论 0

大部分Python使用者可能习惯使用Sublime Text 3等笔记本式的编辑器。然而实际工做环境中有可能遇到须要在无GUI环境下工做的状况,好比须要登陆到虚机上进行调试等。此时vim成为了经常使用的编辑器选择,因此如何使得vim变驾轻就熟成为一个重要的问题。javascript

第一个问题是vim版本的问题,笔者工做环境中的red hat 6版本的默认vim为7.2,不能支持后面须要用到的YouCompleMe插件。所以,咱们须要安装vim7.4版本。首先卸载当前vimphp

yum erase vim-common

这会连同相关的vim-enhance一同卸载,而后前往下载vim7.4的相关rpm:css

上载到服务器后使用html

yum install -y

指令分别安装三个包便可,此时vim的版本为7.4了。java


vim界面.png

如今开始配置所须要的vim插件,检查vim是否支持Python,在vim环境下输入python

:echo has('python') || has('python3')

若是结果为1则代表支持,不然须要检查当前Python是否正确安装。linux

vim拥有很强的可扩展性,所以不少开发者为方便本身的代码编写开发了不少小工具,使得vim像一个现代ide同样工做。因此,首先咱们须要一个插件管理器。git

Vundle

vim有一些插件管理器,这里推荐使用Vundle做为插件管理器。能够将其想象成Python中间的pip包管理器,让包的安装和更新更加简单。程序员

使用以下命令安装:github

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

这个命令将Vundle插件管理器下载到vim的bundles目录下,如今能够经过编辑~/.vimrc配置文件来扩展vim了。(通常使用用户的配置文件便可,整个vim的配置文件在目录/etc/vimrc里面)

首先建立这个文件

touch ~/.vimrc

而后编辑进行配置,如下是一些必须的配置项

" 必须项(因为简书不支持vim环境,会在注释末添加一个双引号,真实环境只需句首便可)" set nocompatible filetype off " 在运行目录中添加Vundle " set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " 首先让Vundle管理Vundle,必须 " Plugin 'gmarik/Vundle.vim' " 在这里添加你须要的插件 " call vundle#end() filetype plugin indent on

而后保存关闭配置文件,随便用vim打开一个文件,输入指令

:PluginInstall

这是Vundle会自动下载,安装,更新全部配置文件里面的插件。

丰富vim功能

学习vim的组合件

vim最重要的一个特性就是彻底抛弃了鼠标,因此有不少快捷键帮助程序员快速编写代码,因此第一步是去熟悉组合键

分割当前窗口

使用指令:sv <filename>会水平分割当前窗口,并将新文件打开在当前文件的下方,相似的,使用指令:vs <filename>会竖直分割窗口并在右侧打开新文件。

快捷键默认为Ctrl-w+Ctrl-j,k,l,h,我将其remap到没有Ctrl-w的情形

nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>

快捷键变为:

  • Ctrl-j 跳到下方窗口
  • Ctrl-k 跳到上方窗口
  • Ctrl-l 跳到右方窗口
  • Ctrl-h 跳到左方窗口

代码折叠

大多数IDE支持用户折叠函数或者类定义,首先开启这个功能

" 开启折叠功能 "
set foldmethod=indent
set foldlevel=99

折叠的快捷键为za,若是以为不方便,能够将其对应到其余键位。

注意vim自带的折叠功能是根据缩进来的,有时候不那么好使,推荐使用插件SimpylFold

Plugin 'tmhedberg/SimpylFold'

Python缩进

在实现部分咱们但愿有两点,一是听从PEP8标准,二是更好地自动缩进。在vimrc中添加:

au BufNewFile,BufRead *.py
        \ set tabstop=4 | \ set tabstop=4 | \ set softtabstop=4 | \ set shiftwidth=4 | \ set textwidth=79 | \ set expandtab | \ set autoindent | \ set fileformat=unix

这让*.py文件的缩进为标准的四个空格,单行不会超过80个字符,文件储存为unix格式,不会产生转换的问题。

针对其余文件,咱们能够定义其格式,好比javascript中习惯两个空格为缩进,所以有

au BufNewFile,BufRead *.js, *.html, *.css
        \ set tabstop=2 |
        \ set softtabstop=2 |
        \ set shiftwidth=2

自动缩进功能咱们使用插件indentpython.vim

Plugin 'vim-scripts/indentpython`

标记没必要要的空格

有时候咱们须要避免一些额外的空格,但愿编辑器能对其有一些显示,首先安装插件vim-bad-whitespace

Plugin 'bitc/vim-bad-whitespace'

将被认为是坏空格的地方标记出来

au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/

UTF8支持

这个中文编辑的时候比较重要,添加

set encoding=utf-8

语法检查和高亮

安装语法检测插件和PEP8检查工具

Plugin 'scrooloose/syntastic' Plugin 'nvie/vim-flake8'

开启Python的代码高亮策略

let python_highlight_all=1 syntax on

颜色方案

这里我使用的是solarizedZenburn

Plugin 'jnurmine/Zenburn' Plugin 'altercation/vim-colors-solarized'

超级搜索

ctrlP工具能够帮助用户在vim环境里面搜索几乎全部东西

Plugin 'kien/ctrlp.vim'

如今能够经过快捷键Ctrl-p来开启搜索,会把和你输入最类似的返回给你,其次这个工具还会搜索标记。

Git集成

插件vim-fugitive帮助用户能够在vim环境里面执行git命令,具体参见VIMcasts

总结

笔者这几天为了之后有个更好用的线上代码编辑环境测试了很久,当前的这套流程是如今使用的一套,比较好用,可是因为线上机的各类问题,最好的一个插件YouCompletMe没有安装成功,暂时放弃了,有兴趣的读者在本身的机器上面必定要安装这个插件,至关好用。

资源集合

  1. VIM Tutor
  2. VIMcasts
  3. Official Vim docs
  4. Open Vim
  5. Learn Vimscript the Hard Way
相关文章
相关标签/搜索