[转] 把vim配置成顺手的python轻量级IDE

nice~html

from https://www.jianshu.com/p/f0513d18742apython

1、配置文件

  • 基础配置

vim的全部配置都是在 ~/.vimrc 这个文件中完成。默认是没有的须要本身新建:git

cd ~
touch .vimrc
vim .vimrc

如下是我我的的.vimrc文件的基础配置部分,双引号内为注释内容:github

"去掉vi的一致性" set nocompatible "显示行号" set number " 隐藏滚动条" set guioptions-=r set guioptions-=L set guioptions-=b "隐藏顶部标签栏" set showtabline=0 "设置字体" set guifont=Monaco:h13 syntax on "开启语法高亮" let g:solarized_termcolors=256 "solarized主题设置在终端下的设置" set background=dark "设置背景色" colorscheme solarized set nowrap "设置不折行" set fileformat=unix "设置以unix的格式保存文件" set cindent "设置C样式的缩进格式" set tabstop=4 "设置table长度" set shiftwidth=4 "同上" set showmatch "显示匹配的括号" set scrolloff=5 "距离顶部和底部5行" set laststatus=2 "命令行为两行" set fenc=utf-8 "文件编码" set backspace=2 set mouse=a "启用鼠标" set selection=exclusive set selectmode=mouse,key set matchtime=5 set ignorecase "忽略大小写" set incsearch set hlsearch "高亮搜索项" set noexpandtab "不容许扩展table" set whichwrap+=<,>,h,l set autoread set cursorline "突出显示当前行" set cursorcolumn "突出显示当前列" 
  • 一键执行python代码

其余经常使用的编辑器都有很方便的一键执行的功能或插件,例如Sublime Text的command+b、Atom的script插件。vim实现这个功能只须要在.vimrc中添加以下代码就能够实现F5一键执行python代码,并且因为是调用了vim的quickfix功能,所以还支持若是出现错误,跳转到错误行。web

"按F5运行python" map <F5> :Autopep8<CR> :w<CR> :call RunPython()<CR> function RunPython() let mp = &makeprg let ef = &errorformat let exeFile = expand("%:t") setlocal makeprg=python\ -u set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m silent make % copen let &makeprg = mp let &errorformat = ef endfunction 
 
执行代码

可是这个一键执行有一个小问题,因为quickfix的缘由,不支持标准输入input()和raw_input(),只要代码中有这两个函数,100%卡死,目前这个问题貌似还无解。若是不用quickfix就能够支持输入,可是在终端中使用的话就是跳回终端输入和输出;使用macvim的话又会出现输出数据不少时就没法查看所有。因为我在写python是标准输入用的较少,就决定放使用quickfix来保证明用和美观。vim

2、插件

先上个人插件目录,本文只着重介绍Vundle和YouCompleteMe两个插件由于这两个插件的安装过程比较复杂一些,而其余插件的安装几乎能够算是傻瓜式的:缓存

Plugin 'VundleVim/Vundle.vim' Plugin 'Valloric/YouCompleteMe' Plugin 'Lokaltog/vim-powerline' Plugin 'scrooloose/nerdtree' Plugin 'Yggdroot/indentLine' Plugin 'jiangmiao/auto-pairs' Plugin 'tell-k/vim-autopep8' Plugin 'scrooloose/nerdcommenter' 

Vundle

杀手级插件。这是惟一一个须要手动安装的插件。有了这个,安装其余插件就方便不少。ruby

  • 一、安装
    首先须要从github上获得项目的源码,在终端下的命令以下(请自备git):
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

若提醒目录不存在请先自行新建目录:bash

cd ~
mkdir .vim
cd .vim
mkdir bundle

而后须要在.vimrc文件中添加一些配置才能生效:编辑器

filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin() Plugin 'VundleVim/Vundle.vim' Plugin '你的插件' call vundle#end() filetype plugin indent on 
  • 二、使用
    Vundle安装插件的方法很是简单,只须要两步。先在.vimrc文件中添加Plugin命令:
“这是安装Github上的插件”
Plugin 'Lokaltog/vim-powerline' 

 

 
引号的内容

下面是安装在 vim-script上的插件的方法,引号里为插件名称,其余插件安装方法请自行查看 项目主页:

 

Plugin 'L9' 

在添加完.vimrc的的配置后,:wq保存并退出vim,重启vim并输入下面的命令后,vim就会自动下载并安装插件了

:PluginInstall 

当看到命令行出现Done!就表明全部插件安装完成啦!


 
插件安装界面

YouCompleteMe

杀手级插件。vim上的自动补全神器,可以提供相似IDE的自动补全体验,还能和Syntastic配合提供实时语法检查。YouCompleteMe与其余插件不一样的地方在于不只须要安装,还须要本身手动编译,并且还须要在.vimrc中配置。

 
盗一张官网的效果图

YouCompleteMe支持的语言有:

 

C、Objectiv-c、C#、C++、Objectiv-C++、Php、Javascript、Typescript、python、Go、Rust

  • 安装只须要一条命令:
Plugin 'Valloric/YouCompleteMe' 
  • 编译的命令:
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer

参数 --clang-completer是为了加上C系列语言的自动补全,若是不须要能够不加,它同时还支持其余语言的补全,详细请看官方文档

  • YouCompleteMe涉及到的配置选项有不少,笔者也没有彻底了解,此外,我的以为Syntactic的提示略丑陋,所以没有安装。此处指列出笔者在使用的,详细请查看官方文档
"默认配置文件路径" let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py' "打开vim时再也不询问是否加载ycm_extra_conf.py配置" let g:ycm_confirm_extra_conf=0 set completeopt=longest,menu "python解释器路径" let g:ycm_path_to_python_interpreter='/usr/local/bin/python' "是否开启语义补全" let g:ycm_seed_identifiers_with_syntax=1 "是否在注释中也开启补全" let g:ycm_complete_in_comments=1 let g:ycm_collect_identifiers_from_comments_and_strings = 0 "开始补全的字符数" let g:ycm_min_num_of_chars_for_completion=2 "补全后自动关机预览窗口" let g:ycm_autoclose_preview_window_after_completion=1 " 禁止缓存匹配项,每次都从新生成匹配项" let g:ycm_cache_omnifunc=0 "字符串中也开启补全" let g:ycm_complete_in_strings = 1 "离开插入模式后自动关闭预览窗口" autocmd InsertLeave * if pumvisible() == 0|pclose|endif "回车即选中当前项" inoremap <expr> <CR> pumvisible() ? '<C-y>' : '\<CR>' "上下左右键行为" inoremap <expr> <Down> pumvisible() ? '\<C-n>' : '\<Down>' inoremap <expr> <Up> pumvisible() ? '\<C-p>' : '\<Up>' inoremap <expr> <PageDown> pumvisible() ? '\<PageDown>\<C-p>\<C-n>' : '\<PageDown>' inoremap <expr> <PageUp> pumvisible() ? '\<PageUp>\<C-p>\<C-n>' : '\<PageUp>' 

vim-powerline

用于美化状态栏,原生的状态栏略丑并且显示的信息不多,所以这款好看又实用的状态栏就派上用场啦。开箱即用,方便快捷。

 
Normal模式

 
Insert模式

至于官网上的三角形效果须要安装额外的字体,笔者表示折腾好久没配置成功,而就这样不影响使用,视觉效果也还不错,所以就懒得折腾了。

NERDTree

给vim添加一个树形目录,更方便的查看和切换文件。

 
NERDTree
  • .vimrc中的配置:
"F2开启和关闭树" map <F2> :NERDTreeToggle<CR> let NERDTreeChDirMode=1 "显示书签" let NERDTreeShowBookmarks=1 "设置忽略文件类型" let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$'] "窗口大小" let NERDTreeWinSize=25 

indentLinevim-autopep8

indentLine是一款缩进指示线,由纯字符实现,效果比较完美。因为python是靠代码缩进来判断代码块的,所以缩进指示的功能有多方便就不言而喻了。indentLine默认是关闭的,所以须要在.vimrc中配置才能看到效果。


 
indentLine

autopep8是一款自动格式化工具,安装后在Normal模式输入:Autopep8或按F8就能够自动依照pep8的标准自动格式化代码。
如下是我的针对它们的配置,其余配置请参考项目主页:

"缩进指示线" let g:indentLine_char='┆' let g:indentLine_enabled = 1 "autopep8设置" let g:autopep8_disable_show_diff=1 

auto-pairsnerdcommenter

这两款插件让写代码更方便。auto-pairs主要功能是括号和引号自动补全,输入左引号和左括号自动补全另一半。
nerdcommenter和上面的NERDTree是同一做者,主要功能是方便的写注释具体用法请参考项目主页。须要注意的是nerdcommenter的leader默认为”\“,通常能够用下面的命令更改:

let mapleader=',' 

通常IDE和不少编辑器都提供command+/快速添加(取消)注释,可是vim添加注释和取消注释须要不一样的快捷键,并且多行注释就是泪啊,各类折腾后发现了nerdcommenter的ci命令,只须要在.vimrc文件中添加一条设置就能够一键注释和反注释:

map <F4> <leader>ci <CR> 

多行注释只须要在normal模式下按v并移动光标选择须要注释的行,再按F4就能够为全部选中的行添加注释。

结语

至此,全部配置结束,就能够用vim愉快的和python玩耍啦。

做者:yiekue 连接:https://www.jianshu.com/p/f0513d18742a 来源:简书 简书著做权归做者全部,任何形式的转载都请联系做者得到受权并注明出处。
相关文章
相关标签/搜索