首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

配备vim基于python的编程环境

2012-09-01 
配置vim基于python的编程环境以前不管在window还是linux下都是在eclipse中编码,在IDE中编码的一个好处就是

配置vim基于python的编程环境

以前不管在window还是linux下都是在eclipse中编码,在IDE中编码的一个好处就是IDE集成了很多会插件,提供了很多好用的功能,比如自动补全,比如拼写、引用错误检查等等,使用这些功能,可以避免很多由于拼写或引用带来的低级错误,且这些插件安装配置简单,但是现在的公司要求在服务器的个人账号下直接使用vim编码,如果此时想要在vim下使用这些检查功能,就需要对vim进行“个性化”设置了,之前我并不十分熟悉使用vim的编码,在配置vim基于python的编码环境时,做了以下总结,希望对初次使用vim编程的朋友有所帮助

配置自己“个性化”的vim,只需修改自己帐号根目录下的.vimrc文件即可(如果没有这个文件,可以自己创建一个)。

1,配置自动缩进并设置tab为4个空格

" 自动检测文件类型并加载相应的设置filetype plugin indent onautocmd FileType python setlocal et sta sw=4 sts=4

?
2,配置python文件的代码检查功能
??? 使用vim实现python的代码检查功能,需要安装插件pyflakes实现,步骤如下:

a,访问:pyflakes网站,下载pyflakeb,在Vim目录下的的Vimvimfilesftplugin目录下新建一个python目录c,将pyflakes解压缩后把pyflakes.vim文件和pyflakes目录拷贝套ftpluginpython目录中。d,打开一个有问题的python源代码文件,执行命令:cc,即可进行代码检查。


3,代码折叠
?? python的代码可以只以代码的缩进为依据

"按照语法高亮元素折叠代码set foldmethod=syntax"python按照缩进折叠代码autocmd FileType python setlocal foldmethod=indent"默认展开所有代码set indentlevel=99"随后即可使用z系列命令管理代码折叠。如za会翻转当前位置的折叠状态,"zA会递归翻转当前层所有代码的折叠状态等。当然也可以把功能键映射到za:map <F3> za

?

4,自动补全
vim7中开发的插件pythoncomplete,python的补全已经非常先进,按照vim的自动补全操纵即可

关键字补全

简单的补全文档中已有的词,快捷键为ctrl-N或ctrl-P

智能补全

vim7中可以引入Omni complete,可以根据语义补全,快捷键为crtl-X或crtl-O

vim的补全菜单操作与IDE的方式不同,可做一下设置:

?

"让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)set completeopt+=longest "离开插入模式后自动关闭预览窗口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>"

?

如需要自动补全,可再安装AutoComplete插件,安装后如需在补全时显示文档(预览),可设置:

let g:acp_completeoptPreview = 1
?

5,注释管理

常见的注视管理插件为 The NERD Commenter,默认支持多种语言,使用方法:

在可视模式(V)下选择一段代码,使用\cc添加逐行注释;\cu取消注释;\cm添加块注释

?

6,代码的浏览与跳转(与IDE中的crtl-点击的功能相同)

简单跳转

在命令模式下直接使用一下命令

跳转到定义:gd跳转到局部变量的定义,gD跳转到全局变量的定义

搜索:*/#可对光标处的词向前/向后做全词搜索,g*/g#对光标处的次做向前/向后的非全词匹配搜索

代码块首尾:[[/]]可跳到当前代码块的开始/结束的位置;%可在配对的代码括号或代码块的首尾之间跳转

历时位置:crtl-O在历史记录中后退;crtl-I在历史记录中前进

基于代码理解的跳转

需要依赖ctafs插件

安装插件后,在代码的目录下运行

ctags -R

即可获得描述代码结构的tag文件

并设置

set tags=tags:/

设置好后,可在vim中使用如下功能:

?

Ctrl-]转至最佳匹配的相应TagCtrl-T返回上一个匹配g Ctrl-]可显示所有备选的tags

?

?7,查看代码框架

如想查阅代码的大体结构,如类,函数变量等,可使用插件taglist,配置如下

?

" F4: 使用F4开关taglistnnoremap <silent> <F4> :TlistToggle<CR>"let Tlist_Show_One_File = 1 " Displaying tags for only one file~let Tlist_Exist_OnlyWindow = 1 " if you are the last, kill yourself"let Tlist_Use_Right_Window = 1 " split to the right side of the screenlet Tlist_Sort_Type = "order" " sort by order or namelet Tlist_Display_Prototype = 0 " do not show prototypes and not tags in the taglist window.let Tlist_Compart_Format = 1 " Remove extra information and blank lines from the taglist window.let Tlist_GainFocus_On_ToggleOpen = 1 " Jump to taglist window on open.let Tlist_Display_Tag_Scope = 1 " Show tag scope next to the tag name."let Tlist_Close_On_Select = 1 " Close the taglist window when a file or tag is selected.let Tlist_Enable_Fold_Column = 0 " Don't Show the fold indicator column in the taglist window.let Tlist_WinWidth = 40" let Tlist_Ctags_Cmd = 'ctags --c++-kinds=+p --fields=+iaS --extra=+q --languages=c++'" very slow, so I disable this" let Tlist_Process_File_Always = 1 " To use the :TlistShowTag and the :TlistShowPrototype commands without the taglist window and the taglist menu, you should set this variable to 1.":TlistShowPrototype [filename] [linenumber]

?

?

?

?

?

?


热点排行