`
shirley.ren
  • 浏览: 54100 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

配置vim基于python的编程环境

阅读更多

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

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

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

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

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

a,访问:pyflakes网站,下载pyflake
b,在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-]转至最佳匹配的相应Tag
Ctrl-T返回上一个匹配
g Ctrl-]可显示所有备选的tags

 

 7,查看代码框架

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

 

" F4: 使用F4开关taglist
nnoremap <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 screen
let Tlist_Sort_Type = "order" " sort by order or name
let 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]

 

 

 

 

 

 


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics