vim配置python 开发环境

源文转自:http://blog.csdn.net/codingpy/article/details/49700069


本文由编程派-EarlGrey翻译,首发于编程派。原文出自realpython,是Vim的爱好者专门针对利用Sublime Text 3设置Python IDE一文所写。译者本人也是依照Sublime Text那篇文章配置的开发环境,但一直对Vim作为神器的美名非常仰慕,又看到了一篇这么全面的配置文章,觉得有必要翻译过来与大家分享,想必可以省却很多自己研究如何配置的时间。

我注意到,有人在realpython.com宣扬Sublime Text 3。作为公司的资深开发人员(呃,也就是老古董),我觉得有义务介绍一个真正Python开发环境给大家――我要推荐的当然就是Vim了。不错,Vim编辑器无处不在,速度快,从来不会崩溃。并且,它能做任何事情!

不过,不利之处也有,就是Vim配置起来很让人头疼。但是,别担心,本文将告诉你如何配置一个强大的Vim环境,专门用于天天捣鼓python开发。

下面是最终效果预览。

Vim as Python IDE

如果想充分地利用好本文,你应该对如何使用Vim和它的命令模式至少有一个基本的了解。如果你是初学者,你可以通过vim-adventure或者openvim网站学习。在继续阅读本文之前,请花点时间浏览那两个网站的内容。

安装

因为许多Unix衍生系统已经预装了Vim,我们首先要确认编辑器是否成功安装:

vim--version

如果已经安装了,你应该看到类似下面的文字:

VIM-ViIMproved7.3(2010Aug15,compiledNov5201421:00:28)
Compiledbyroot@apple.com
NormalversionwithoutGUI.Featuresincluded(+)ornot(-):
-arabic+autocmd-balloon_eval-browse+builtin_terms+byte_offset+cindent
-clientserver-clipboard+cmdline_compl+cmdline_hist+cmdline_info+comments
-conceal+cryptv+cscope+cursorbind+cursorshape+dialog_con+diff+digraphs
-dnd-ebcdic-emacs_tags+eval+ex_extra+extra_search-farsi+file_in_path
+find_in_path+float+folding-footer+fork()-gettext-hangul_input+iconv
+insert_expand+jumplist-keymap-langmap+libcall+linebreak+lispindent
+listcmds+localmap-lua+menu+mksession+modify_fname+mouse-mouseshape
-mouse_dec-mouse_gpm-mouse_jsbterm-mouse_netterm-mouse_sysmouse
+mouse_xterm+multi_byte+multi_lang-mzscheme+netbeans_intg-osfiletype
+path_extra-perl+persistent_undo+postscript+printer-profile+python/dyn
-python3+quickfix+reltime-rightleft+ruby/dyn+scrollbind+signs
+smartindent-sniff+startuptime+statusline-sun_workshop+syntax+tag_binary
+tag_old_static-tag_any_white-tcl+terminfo+termresponse+textobjects+title
-toolbar+user_commands+vertsplit+virtualedit+visual+visualextra+viminfo
+vreplace+wildignore+wildmenu+windows+writebackup-X11-xfontset-xim-xsmp
-xterm_clipboard-xterm_save
systemvimrcfile:"$VIM/vimrc"
uservimrcfile:"$HOME/.vimrc"
userexrcfile:"$HOME/.exrc"
fall-backfor$VIM:"/usr/share/vim"
Compilation:gcc-c-I.-D_FORTIFY_SOURCE=0-Iproto-DHAVE_CONFIG_H-archi386-archx86_64-g-Os-pipe
Linking:gcc-archi386-archx86_64-ovim-lncurses

在这一步,你要确保已经满足以下两点要求:

  1. Vim编辑版本应该大于7.3。

  2. 支持Python语言。在所选编辑器的功能中,确保你看到了+python

如果满足上述要求,接下来可以安装Vim扩展了。如果不满足,则需要安装/升级

OS X

如果没有Homebrew,建议马上安装,并运行:

brewupdate
brewinstallvim

Unix衍生系统

Debian或Ubuntu系统,可以使用下面的代码:

sudoapt-getremovevim-tiny
apt-getupdate
apt-getinstallvim

如果是其他版本的Linux系统,请查阅相应版本包管理器的文档。不清楚的话,可以先阅读这篇文章:安装Vim

Windows

Windows系统下安装Vim有很多种方法。请查阅官方文档

验证安装

确保你已经安装了7.3版本以上、支持Python的Vim编辑器。你可以再次运行vim --version进行确认。如果你想知道Vim中使用的Python版本,你可以在编辑器中运行:python import sys; print(sys.version)

2.7.6(default,Sep92014,15:04:36)
[GCC4.2.1CompatibleAppleLLVM6.0(clang-600.0.39)]

这行命令会输出你的编辑器当前的Python版本。如果报错,那么你的编辑器就不支持Python语言,需要重装或重新编译。

Vim编辑器安装完成后,我们来看看如何将其设置为Python开发的强大环境。

Vim扩展

Vim本身能够满足开发人员的很多需求,但是它的可扩展性也极强,并且已经有一些杀手级的扩展,可以让Vim拥有“现代”集成开发环境的特性。所以,你所需要的第一件东西就是一个好用的扩展管理器。

Vim的扩展通常也被成为bundle或插件

Vundle

Vim有多个扩展管理器,但是我们强烈推荐Vundle。你可以把它想象成Vim的pip。有了Vundle,安装和更新包这种事情不费吹灰之力。

我们现在来安装Vundle:

gitclonehttps://github.com/gmarik/Vundle.vim.git~/.vim/bundle/Vundle.vim

该命令将下载Vundle插件管理器,并将它放置在你的Vim编辑器bundles文件夹中。现在,你可以通过.vimrc配置文件来管理所有扩展了。

将配置文件添加到你的用户的home文件夹中:

touch~/.vimrc

接下来,把下来的Vundle配置添加到配置文件的顶部:

setnocompatible"required
filetypeoff"required

"settheruntimepathtoincludeVundleandinitialize
setrtp+=~/.vim/bundle/Vundle.vim
callvundle#begin()

"alternatively,passapathwhereVundleshouldinstallplugins
"callvundle#begin('~/some/path/here')

"letVundlemanageVundle,required
Plugin'gmarik/Vundle.vim'

"Addallyourpluginshere(noteolderversionsofVundleusedBundleinsteadofPlugin)


"AllofyourPluginsmustbeaddedbeforethefollowingline
callvundle#end()"required
filetypepluginindenton"required

这样,你就完成了使用Vundle前的设置。之后,你就可以在配置文件中添加希望安装的插件,然后打开Vim编辑器,运行下面的命令:

:PluginInstall

这个命令告诉Vundle施展它的魔法――自动下载所有的插件,并为你进行安装和更新。

vim PluginInstall image

对于Windows用户,请查阅Windows安装指南

开始打造IDE吧

本文不可能列举Vim的全部功能,只能快速介绍一些Vim自带的强大功能,它们对于Python开发来说是非常有用的。

扔掉鼠标

或许,Vim编辑器最重要的功能就是它不要求使用鼠标(除了GUI版本外)。一开始,你可能会觉得这是个非常糟糕的做法,但是只要你投入时间――是的,这很花时间――学习快捷组合键,就可以大幅提升工作流的速度。

分割布局(Split Layouts)

Split layout of vim

使用:sv <filename>命令打开一个文件,你可以纵向分割布局(新文件会在当前文件下方界面打开),使用相反的命令:vs <filename>, 你可以得到横向分割布局(新文件会在当前文件右侧界面打开)。

你还可以嵌套分割布局,所以你可以在分割布局内容再进行分割,纵向或横向都可以,直到你满意为止。众所周知,我们开发时经常需要同时查看多个文件。

专业贴士:记得在输入完:sv后,利用tab补全功能,快速查找文件。

专业贴士:你还可以指定屏幕上可以进行分割布局的区域,只要在.vimrc文件中添加下面的代码即可:

setsplitbelow
setsplitright

专业贴士:想要不使用鼠标就切换分割布局吗?只要将下面的代码添加到.vimrc文件中,你就可以通过快捷组合键进行切换。

"splitnavigations
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切换到左侧的分割窗口

换句话说,按Ctrl+Vim的标准移动键,就可以切换到指定窗口。

等等,nnoremap是什么意思?――简单来说,nnoremap将一个组合快捷键映射为另一个快捷键。no部分,指的是在Vim的正常模式(Normal Mode)下,而不是可视模式下重新映射。基本上,nnoremap <C-J> <C-W><C-j>就是说,当我在正常模式按下时,进行操作。更多信息请看这里

缓冲区(Buffers)

虽然Vim支持tab操作,仍有很多人更喜欢缓冲区和分割布局。你可以把缓冲区想象成最近打开的一个文件。Vim提供了方便访问近期缓冲区的方式,只需要输入:b <buffer name or number>,就可以切换到一个已经开启的缓冲区(此处也可使用自动补全功能)。你还可以通过ls命令查看所有的缓冲区。

专业贴士: 在:ls命令输出的最后,Vim会提示“敲击Enter继续查看”,这时你可以直接输入:b <buffer name>,立即选择缓冲区。这样可以省掉一个按键操作,也不必去记忆缓冲区的名字。

代码折叠(Code Folding)

大多数“现代”集成开发环境(IDE)都提供对方法(methods)或类(classes)进行折叠的手段,只显示类或方法的定义部分,而不是全部的代码。

你可以在.vimrc中添加下面的代码开启该功能:

"Enablefolding
setfoldmethod=indent
setfoldlevel=99

这样就可以实现,但是你必须手动输入za来折叠(和取消折叠)。使用空格键会是更好的选择。所以在你的配置文件中加上这一行命令吧:

"Enablefoldingwiththespacebar
nnoremap<space>za

现在你可以轻松地隐藏掉那些当前工作时不需要关注的代码了。

第一个命令,set foldmethod=ident会根据每行的缩进开启折叠。但是这样做会出现超过你所希望的折叠数目。但是别怕,有几个扩展就是专门解决这个问题的。在这里,我们推荐SimplyFold。在.vimrc中加入下面这行代码,通过Vundle进行安装:

Plugin'tmhedberg/SimpylFold'

不要忘记执行安装命令::PluginInstall

专业贴士: 希望看到折叠代码的文档字符串?

letg:SimpylFold_docstring_preview=1

Python代码缩进

当然,想要代码折叠功能根据缩进情况正常工作,那么你就会希望自己的缩进是正确的。这里,Vim的自带功能无法满足,因为它实现不了定义函数之后的自动缩进。我们希望Vim中的缩进能做到以下两点:

  • 首先,缩进要符合PEP8标准。

  • 其次,更好地处理自动缩进。

PEP8

要支持PEP8风格的缩进,请在.vimrc文件中添加下面的代码:

auBufNewFile,BufRead*.py
\settabstop=4
\setsofttabstop=4
\setshiftwidth=4
\settextwidth=79
\setexpandtab
\setautoindent
\setfileformat=unix

这些设置将让Vim中的Tab键就相当于4个标准的空格符,确保每行代码长度不超过80个字符,并且会以unix格式储存文件,避免在推送到Github或分享给其他用户时出现文件转换问题。

另外,对于全栈开发,你可以设置针对每种文件类型设置au命令:

自动缩进

自动缩进有用,但是在某些情况下(比如函数定义有多行的时候),并不总是会达到你想要的效果,尤其是在符合PEP8标准方面。我们可以利用indentpython.vim插件,来解决这个问题:

Plugin'vim-scripts/indentpython.vim'

标示不必要的空白字符

我们希望避免出现多余的空白字符。可以让Vim帮我们标示出来,使其很容易发现并删除。

auBufRead,BufNewFile*.py,*.pyw,*.c,*.hmatchBadWhitespace/\s\+$/

这会将多余的空白字符标示出来,很可能会将它们变成红色突出。

支持UTF-8编码

大部分情况下,进行Python开发时你应该使用UTF-8编码,尤其是使用Python 3的时候。确保Vim设置文件中有下面的命令:

setencoding=utf-8

For the most part,you should be using UTF8 when working with Python,especially if you’re working with Python 3. Make sure VIM knows that with the following line:

自动补全

支持Python自动补全的最好插件是YouCompleteMe。我们再次使用Vundle安装:

Bundle'Valloric/YouCompleteMe'

YouCompleteMe插件其实底层使用了一些不同的自动补全组件(包括针对Python开发的Jedi),另外要安装一些C库才能正常工作。插件官方文档提供了很好的安装指南,我就不在这里重复了。切记跟随文档的步骤进行安装。

安装完成后,插件自带的设置效果就很好,但是我们还可以进行一些小的调整:

letg:ycm_autoclose_preview_window_after_completion=1
map<leader>g:YcmCompleterGoToDefinitionElseDeclaration<CR>

上面的第一行确保了在你完成操作之后,自动补全窗口不会消失,第二行则定义了“转到定义”的快捷方式。

支持Virtualenv虚拟环境

上面“转到定义”功能的一个问题,就是默认情况下Vim不知道virtualenv虚拟环境的情况,所以你必须在配置文件中添加下面的代码,使得Vim和YouCompleteMe能够发现你的虚拟环境:

"pythonwithvirtualenvsupport
py<<EOF
importos
importsys
if'VIRTUAL_ENV'inos.environ:
project_base_dir=os.environ['VIRTUAL_ENV']
activate_this=os.path.join(project_base_dir,'bin/activate_this.py')
execfile(activate_this,dict(__file__=activate_this))
EOF

这段代码会判断你目前是否在虚拟环境中编辑,然后切换到相应的虚拟环境,并设置好你的系统路径,确保YouCompleteMe能够找到相应的site packages文件夹。

语法检查/高亮

通过安装syntastic插件,每次保存文件时Vim都会检查代码的语法:

Plugin'scrooloose/syntastic'

还可以通过这个小巧的插件,添加PEP8代码风格检查:

Plugin'nvie/vim-flake8'

最后,让你的代码变得更漂亮:

letpython_highlight_all=1
syntaxon

配色方案

配色方案可以和你正在使用的基础配色共同使用。GUI模式可以尝试solarized方案,终端模式可以尝试Zenburn方案

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

接下来,只需要添加一点逻辑判断,确定什么模式下使用何种方案就可以了:

ifhas('gui_running')
setbackground=dark
colorschemesolarized
else
colorschemeZenburn
endif

Solarized方案同时提供了暗色调和轻色调两种主题。要支持切换主题功能(按F5)也非常简单,只需添加:

calltogglebg#map("<F5>")

文件浏览

如果你想要一个不错的文件树形结构,那么NERDTree是不二之选。

Plugin'scrooloose/nerdtree'

如果你想用tab键,可以利用vim-nerdtree-tabs插件实现:

Plugin'jistr/vim-nerdtree-tabs'

还想隐藏.pyc文件?那么再添加下面这行代码吧:

letNERDTreeIgnore=['\.pyc$','\~$']"ignorefilesinNERDTree

超级搜索

想要在Vim中搜索任何文件?试试ctrlP插件吧:

Plugin'kien/ctrlp.vim'

正如插件名,按Ctrl+P就可以进行搜索。如果你的检索词与想要查找的文件相匹配的话,这个插件就会帮你找到它。哦,对了――它不仅仅可以搜索文件,还能检索标签!更多信息,可以观看这个Youtube视频。
As expected,press Ctrl-P to enable the search and then just start typing. If your search matches anything close to the file you’re looking for,it will find it. Oh �C and it’s not just files; it will find tags as well! For more,check out thisYouTube video.

显示行号

开启显示行号:

setnu

Git集成

想要在Vim中执行基本的Git命令?vim-fugitive插件则是不二之选。

Plugin'tpope/vim-fugitive'

git integration in vim

请看Vimcasts的这部视频,了解更多情况。

Powerline状态栏

Powerline是一个状态栏插件,可以显示当前的虚拟环境、git分支、正在编辑的文件等信息。

这个插件是用Python编写的,支持诸如zsh、bash、tmux和IPython等多种环境。

Plugin'Lokaltog/powerline',{'rtp':'powerline/bindings/vim/'}

请查阅插件的官方文档,了解配置选项。

系统剪贴板

通常Vim会忽视系统剪贴板,而使用自带的剪贴板。但是有时候你想从Vim之外的程序中剪切、复制、粘贴文本。在OS X平台上,你可以通过这行代码访问你的系统剪贴板:

setclipboard=unnamed

Shell开启Vim编辑模式

最后,当你熟练掌握了Vim和它的键盘快捷方式之后,你会发现自己经常因为shell中缺乏相同的快捷键而懊恼。没关系,大部分的shell程序都有Vi模式。在当前shell中开启Vi模式,你只需要在~/.inputrc文件中添加这行代码:

setediting-modevi

现在,你不仅可以在shell中使用Vim组合快捷键,还可以在Python解释器以及任何利用GNU Readline程序的工具(例如,大多数的数据库shell)中使用。现在,你在什么地方都可以使用Vim啦!

结语

Vim的设置到这里就差不多了(至少对于Python开发来说是这样的)。当然,开源世界里还有大量你可以使用的其他扩展,以及本文中所提到插件的替代品。你最喜爱的扩展是什么?你又是如何将Vim设置符合你喜好的?

这是我本人的Vim配置文件链接。你有没有自己的设置代码?请与我们分享!

谢谢!

资源

  1. Vim Tutor是Vim自带的程序,安装结束之后,只要在命令行输入vimtutor即可,程序将会用Vim编辑器教你如何使用Vim。

  2. Vimcasts是一系列的高阶视频教程,内容涉及许多Vim的功能。

  3. Vim官方文档

  4. Open Vim

  5. 笨办法学Vimscript是学习vimscript的极好材料。

全文结束

网友评论精选

译者也按照本文的步骤,在Vagrant虚拟机上尝试了Vim设置,但是可惜在YouCompleteMe插件那遇到了些问题,没有继续配置下去。在原文页,我也发现一些网友留言,说根据本文的建议进行了设置,但是碰到了问题。最后,译者从中摘取了部分,供大家参考。

Wei-Hao Lin

The commands in “Python Indentation” keep throwing “e518: unknown option: set”,so i altered it and it works fine as following:

Konstantin Gagarin

change powerline to airlineand add powerline fonts.

Ruslan Kiianchuk

It seems like the hack with Python virtualenv can be solved with plugin without the need to pollute vimrc with Python code:https://github.com/jmcantrell/vim-virtualenv

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


解决方案:解决linux下vim乱码的情况:(修改vimrc的内容)全局的情况下:即所有用户都能用这个配置文件地址:/etc/vimrc在文件中添加:setfileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936settermencoding=utf-8setencoding=utf-8如果只修改个人的vim配置情况:需要把/etc/
Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是vim编辑器。vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。相关文章:史上最全Vim快捷键键位图—入门到进阶什么是vim
      vim正则匹配:空行:/^$/  /^[\t]*$/注释行:/^#/ /^[\t]*#/:1,$s/\([Rr]\)oot/\1ename/:1,$s/\(square\)and\(fair\)/\2and\1/ 
$select-editorSelectaneditor.Tochangelater,run'select-editor'.1./bin/ed2./binano<----easiest3./usr/bin/code4./usr/bin/vim.basic5./usr/bin/vim.tinyChoose1-5[2]:4
上次手贱忘了保存,这次就简单做个备忘吧,把踩过的坑记一下预览图安装工具:u盘、manjarokdeminimal20.0.3、win32DiskImager提取码:qt9f进bios、选择u盘启动、改语言、改时区、挂载分区(文件系统ext4、在200M左右的一个FAT分区上挂载/boot/efi)、安装安装很简单,按提示
Linux之文本编译器小结vim的优势所有的UNIX-LIKE习通都会内置vi文本编译器,其他的文本编译器则不一定存在很多软件的编译接口都会主动调用vivim有很强的程序编译能力,可以主动的一字体颜色辨别语法的正确性,方便程序设计因为程序简单,编译速度相当快vi的使用一般命令模
主机名字太长,怎么修改?  1.sudovim/etc/hostname 修改内容为wel,  本地主机名 2.sudovim/etc/hosts      修改主机名为wel,用于网络连接中主机名的识别 3.reboot 
目录#事故现场#事故原因#解决方法方法一:使用notepad转换方法二:使用vscode转换方法三:使用vim转换#参考#事故现场执行shell脚本文件,报错::notfound.sh:6:coreinstall.sh:查看脚本文件第6行,发现是空行;#事故原因window下的换行是回车符+换行符,也就是\r\n,而unix下是换行符\n
1、保存并退出linux下安装好了vim以及gcc后,我们开始新建一个c文件,例如:vimtest.c之后进入vim的编辑框中,点击i进入插入模式,开始编辑程序,当你编写好自己的程序之后,按Esc退出插入编辑状态,然后输入冒号加wq,点击Enter即可,完整的命令如下:wq如下图:  退出后,如果想要编译
概述使用VIM作简单字数统计背景想做一个简单的字数统计环境OSwin10shellmintty-2.9.41.需求概述需求需求统计文段内字符的数量支持自定义字符集2.方案1:vim自带统计概述vim自带方案操作定位到文段内某行vi
经典版下面这个键位图应该是大家最常看见的经典版了。对应的简体中文版其实经典版是一系列的入门教程键位图的组合结果,下面是不同编辑模式下的键位图。 
ssh是一个安全连接协议。作用两个:1.远程连接协议,2.远程文件传输协议协议默认端口为:22。 修改默认端口,再到ssh服务配置文件位置  vim/etc/ssh/ssh_config这条命令就可以修改了。按下ESC键,再输入:x 也可以退出vim。(和:q! 相同)修改注意:1.端口号在0-65535之间。2.别人
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢
在Vim中,有时需要将tab转换成space。使用ret命令(replacetab)。[range]ret[ab]![new-tabstop]举例:将第一行到文件尾的tab转换成space,每个tab用4个space替代。:setexpandtab:%ret!4如果没有给定4,则用当前的tab宽度设定替换为space。 相关配置文件命令::settabstop=4设
分屏命令记不得文件名就输入.可浏览文件命令英文功能:sp[文件名]split横向分屏:vsp[文件名]verticalsplit纵向分屏    切换分屏窗口先按Ctrlw切换窗口命令英文功能 wwindow切换下一个窗口 rreverse互换窗口 c
1查看ctags支持的语言ctags--list-languages2查看语言和扩展名的对应关系ctags--list-maps 3对当前目录下所有ctags支持的语言格式文件生成tagsctags-R*缺点很明显,tags会非常大,tags生成会非常慢,而且代码跳转会卡顿。4只对特定文件生成tagsctags`find-name"*.h"`ct
vim基本命令 $vimtutor可以查看基本的vim操作1h(left)j(down)k(up)l(right)q!wqi:insertbeforethecursor(insert)插队嘛,肯定在光标前面A:appendaftertheline(appending)2dw:删除一个单词,保留光标前面部分d$:删除光标之后的同行
~/.vimrc内容如下:setnocompatiblefiletypeoffsetrtp+=~/.vim/bundle/Vundle.vimcallvundle#begin()Plugin'VundleVim/Vundle.vim'Plugin'tpope/vim-fugitive'Plugin'tpope/vim-unimpaired'Plugin'tpope/vim-repeat'Plu
程序:硬盘静态的代码  占用磁盘空间进程:内存运行计算的代码 占用CPU运行内存父进程与子进程  树型结构进程唯一标识: PID僵尸进程找到父进程杀掉  孤儿进程疯狂要内存  危害大 pstree [选项]-a显示完整命令行   -p 查看PID [PID或用户
~/.vimrc"Configurationfileforvimsetmodelines=0 "CVE-2007-2438setnumber"setrelativenumber"显示相对行号(这个非常重要,慢慢体会)setcursorlinesetcursorcolumnsetrulersetscrollbindsetencoding=utf-8colormolokaisyntaxon"开启