Hi,每一个准备认真观看我知乎专栏的乎友们。寒假就这样不知不觉地过去,而踏上工作旅程的你们,是否给自己设定了新的工作目标了呢?

今天,给大家share一个利用vi方便地进行python程序编写的技能~欢迎热情的你们来踢馆哦!

tips:如果你是Vim用户,也许你会觉得这很有趣。 如果你是Vim的新手,嘿嘿,建议您在安装任何插件之前花一些时间。 这样你就习惯了Vim如何开箱即用。

现在,让我动动手吧😊!

首先你需要安装Vundle。 Vundle使得我们安装和更新所有其他工具变得更easy。 它基本上是病原体,具有很多很好的附加功能,例如从Github回购站(和其他来源)安装捆绑软件本身。 按照下面的说明进行安装:

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

完成以后,我们可以在“.vimrc”文件添加如下内容:

set nocompatible filetype off set rtp+=~/.vim/bundle/vundle/ call vundle#rc " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' " The bundles you install will be listed here filetype plugin indent on " The rest of your config follows here

现在,启动Vim并运行:BundleList这个命令

你的vi编辑器左侧会出现一个新的列表,会显示Vundle的包。如果出现我说的这种情况的话,恭喜,已经迈出了第一步!

Ok,让我们再来配置其他的东西吧。

突出显示超出行长的代码

我们要为python文件设置一个限制线宽。80个字符通常是标准的,但现代显示器可以让我们自己做更多,但可以随意调整。 要启用这个多余的突出显示,可以下面几行添加到`.vimrc`中。

augroup vimrc_autocmds autocmd! " highlight characters past column 80 autocmd FileType python highlight Excess ctermbg=DarkGrey guibg=Black autocmd FileType python match Excess /\%80v.*/ autocmd FileType python set nowrap augroup END

任何超过线条长度的部分都会以黑色突出显示,随意更改此颜色以适合您的彩色图案。 注意这样也关闭了python文件的换行。

Powerline 是一个极棒的 Vim 编辑器的状态行插件,这个插件是使用 Python 开发的,主要用于显示状态行和提示信息,适用于很多软件,比如 bash、zsh、tmux 等等。

它向您显示您当前的模式,Git中的当前分支,您正在编辑的文件以及一些其他有用的信息。

简单地将下面的命令添加到你的“.vimrc”,注意应该在你的之前添加的" The bundles you install will be listed here.的后面。重新启动Vim并再次运行:BundleList。此时,你可以看到Powerline包在Bundle的列表中,注意,此时我们并没有安装Powerline,因此我们需要继续vim :BundleInstall这个命令,你会看到Vundle处理列表并报告安装状态。希望一切顺利!

tips:Powerline需要更多的东西,特别是补丁字体来显示它使用的特殊字符。您可以从powerline-fonts回购中获得预先打补丁的字体。 如果你的字体没有列出,那么powerline repo确实提供了一个字体修补器,你可以使用它来尝试修补你的字体。至于怎么做(偏离主题),再此就赘述了。确保始终显示Powerline,您还需要将这两行添加到.vimrc中

" Powerline setup set guifont=DejaVu\ Sans\ Mono\ for\ Powerline\ 9 set laststatus=2

tips:laststatus确保Powerline即使没有任何分割也能显示出来。 重新启动vim,希望你会看到它出现在你的窗口底部。 请注意,此版本的Powerline是基于Python的版本,因此需要在启用Python的情况下构建Vim。 要检查它是否运行:

$> vim --version | grep -i python

如果你看到+ python,那么一切都ok。

Fugitive

它是一个Git插件。 它基本上包装了大部分Git命令,以便您可以从Vim内部调用它们。它们的前缀为G,例如Gcommit,它允许您直接从Vim中创建文件并进行提交。它还利用VimDiff执行冲突的解决等。

要安装Fugitive,请将其软件包添加到Vundle:Bundle'tpope / vim-fugitive'再次运行:BundleInstall以进行安装。

NerdTree

NerdTree是一个文件浏览器,当你需要它时会弹出一个分割文件,并且以文件浏览器(因此名称中的树部分)为特征。 它看起来有点像这样:

同样只需将其包装添加到Vundle中即可:

Bundle 'scrooloose/nerdtree'

设置打开其的快捷键:F2,将以下内容添加到.vimrc中:

在vim中按F2,它会带你到当前的工作目录。 按 ? 查看NerdTree的命令列表。

tips:mac的朋友们,F2在Mac中默认是窗口切换的快捷键,我们此时需要fn+f2哦。

Python mode

它基本上增加了Vim所需的所有Python功能。 像Lint,codecompletion,文档查找,跳转到类,重构工具等等。您可以在Python模式下找到它。

它的捆绑包是:

再次运行:BundleInstall来安装它。你可能想要配置一些项目。如果想要深入了解Python mode,可以从Vim内部运行:help pymode。

下面关于pythonmode的设置仅供参考:

" Python-mode " Activate rope " Keys: " K Show python docs " Rope autocomplete " g Rope goto definition " d Rope show documentation " f Rope find occurrences " b Set, unset breakpoint (g:pymode_breakpoint enabled) " [[ Jump on previous class or function (normal, visual, operator modes) " ]] Jump on next class or function (normal, visual, operator modes) " [M Jump on previous class or method (normal, visual, operator modes) " ]M Jump on next class or method (normal, visual, operator modes) let g:pymode_rope = 1 " Documentation let g:pymode_doc = 1 let g:pymode_doc_key = 'K' "Linting let g:pymode_lint = 1 let g:pymode_lint_checker = "pyflakes,pep8" " Auto check on save let g:pymode_lint_write = 1 " Support virtualenv let g:pymode_virtualenv = 1 " Enable breakpoints plugin let g:pymode_breakpoint = 1 let g:pymode_breakpoint_bind = 'b' " syntax highlighting let g:pymode_syntax = 1 let g:pymode_syntax_all = 1 let g:pymode_syntax_indent_errors = g:pymode_syntax_all let g:pymode_syntax_space_errors = g:pymode_syntax_all " Don't autofold code let g:pymode_folding = 0

正如我所说的,请阅读完整的文档,并根据需要调整设置。

Jedi vim

也可以使用Jedi-vim,作为自动完成工具,而不是Python模式附带的rope插件。需将插件添加到vundle列表中,并通过将let g:pymode_rope = 1替换为let g:pymode_rope = 0来关闭Rope。它比Rope更快捷,更强大。