为Ubuntu打造vim-Python IDE

2023-05-16

PS:以下VIM官网是要翻墙才能进的哦。


1.安装完整的vim

sudo apt-get install vim-gnome

2.文法高亮

  为了能在Vim中支持Python文法需要用到插件python.vim,该插件默认位于<Vim安装目录>/<$VIMRUNTIME>/syntax/下,如果你在该路径下没有找到这个插件,需要到python.vim : Enhanced version of the python syntax highlighting script下载(CSDN链接下载)。然后为了能让Vim识别Python文法需要在vimrc中添加:


  
  
set filetype = python au BufNewFile,BufRead * .py, * .pyw setf python

3.缩进

  在vimrc中添加如下缩进相关的代码:


  
  
set autoindent " same level indent set smartindent " next level indent set expandtab set tabstop = 4 set shiftwidth = 4 set softtabstop = 4

4.项目视图

  像Visual Studio或Eclipse之类的IDE都会提供项目视图(位于左侧或右侧),程序员利用该视图在文件间或类间跳转。利用Ctags和插件Tasklist可以在vim中实现此功能。

  • 首先下载Exuberant Ctags(CSDN连接下载)
  • 然后解压Ctags,并进入解压后的目录,利用如下命令编译安装Ctags:

  
  
. / configure && sudo make install
  • 通过这种方式,Ctags被安装在/usr/local/bin下。
 至此,ctags的安装已经完成,可以使用ctags命令来检测时候完成安装。
    which ctags
        //确认ctags是否安装成功,如果安装好该指令的执行结果为:/usr/local/bin/ctags
  • 安装taglist
sudo apt-get install vim-scripts
sudo apt-get install vim-addon-manager // 貌似我在安装vim-scripts的时候,已经附带安装了vim-addon-manager
sudo vim-addons install taglist

下面介绍常用的taglist配置选项,你可以根据自己的习惯进行配置: 

- Tlist_Ctags_Cmd选项用于指定你的Exuberant ctags程序的位置,如果它没在你PATH变量所定义的路径中,需要使用此选项设置一下;

- 如果你不想同时显示多个文件中的tag,设置Tlist_Show_One_File为1。缺省为显示多个文件中的tag;

- 设置Tlist_Sort_Type为”name”可以使taglist以tag名字进行排序,缺省是按tag在文件中出现的顺序进行排序。按tag出现的范围(即所属的namespace或class)排序,已经加入taglist的TODO List,但尚未支持;

- 如果你在想taglist窗口是最后一个窗口时退出VIM,设置Tlist_Exit_OnlyWindow为1;

- 如果你想taglist窗口出现在右侧,设置Tlist_Use_Right_Window为1。缺省显示在左侧。

- 在gvim中,如果你想显示taglist菜单,设置Tlist_Show_Menu为1。你可以使用Tlist_Max_Submenu_Items和Tlist_Max_Tag_Length来控制菜单条目数和所显示tag名字的长度;

- 缺省情况下,在双击一个tag时,才会跳到该tag定义的位置,如果你想单击tag就跳转,设置Tlist_Use_SingleClick为1;

- 如果你想在启动VIM后,自动打开taglist窗口,设置Tlist_Auto_Open为1;

- 如果你希望在选择了tag后自动关闭taglist窗口,设置Tlist_Close_On_Select为1;

- 当同时显示多个文件中的tag时,设置Tlist_File_Fold_Auto_Close为1,可使taglist只显示当前文件tag,其它文件的tag都被折叠起来。

- 在使用:TlistToggle打开taglist窗口时,如果希望输入焦点在taglist窗口中,设置Tlist_GainFocus_On_ToggleOpen为1;

- 如果希望taglist始终解析文件中的tag,不管taglist窗口有没有打开,设置Tlist_Process_File_Always为1;

- Tlist_WinHeight和Tlist_WinWidth可以设置taglist窗口的高度和宽度。Tlist_Use_Horiz_Window为1设置taglist窗口横向显示;

配置

使用sudo vim /etc/vim/vimrc 编辑vim的配置文档,在其中加入如下命令:
"""""""""""""""""Taglist设置"""""""""""""""""
""let Tlist_Auto_Open = 1
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
let Tlist_Show_One_File = 1
let Tlist_Exit_OnlyWindow = 1
nnoremap
 <silent> <F8> :TlistToggle<CR>   “设定F8为taglist开关

使用

    在Vim中加载代码文件后,可以使用以下命令控制taglist

TlistOpen(直接Tlist也可)打开并将输入焦点至于标签列表窗口,效果如上图所示
TlistClose关闭标签列表窗口
TlistToggle切换标签列表窗口状态(打开←→关闭),标签列表窗口是否获得焦点取决于其他配置
ctl-w+w或ctl-w+ 方向键窗口切换(taglist本质上是一个vim分隔窗口,因此可以使用ctl-w系列快捷键对窗口进行切换操作)在Taglist窗口主要有以下操作
按F1:打开帮助回车键:跳到光标所在的标记的定义处(如将光标移到main函数,按回车键)
o:新建一个窗口,跳到标记定义处
p:预览标记定义(仍然在taglist窗口)
空格:显示标记的原型(如函数原型)
u:更新标记列表(比如源文件新增了一个函数,并在保存后,可在taglist窗口按u)
s:选择排序字段(暂时我也不知道什么意思)
d:删除光标所在的taglist文件(如用vi打开了两个文件f1.c,f2.c可以删除f1.c的标记)
x:n放大/缩小taglist窗口
+:展开(指标记)
-:折叠
*:全部展开
=:全部折叠
[[:将光标移到前一个文件的起点
]]:将光标移到后一个文件的起点
q:退出taglist窗口
F1:关闭帮助

5.安装pydiction(实现代码补全)


pydiction下载:http://vim.sourceforge.net/scripts/script.php?script_id=850(CSDN下载页)
sudo unzip pydiction-1.2.zip
// ~/.vim/after/ftplugin和~/.vim/tools/pydiction/目录默认不存在,需要自行创建
sudo cp pydiction-1.2/python_pydiction.vim ~/.vim/after/ftplugin
sudo cp pydiction-1.2/complete-dict ~/.vim/tools/pydiction/complete-dict

6.安装NERD_TREE 目录树

1.下载插件文件
http://www.vim.org/scripts/script.php?script_id=1658

解压文件到~/.vim/目录下,如果没有此目录,则要自己创建。

2.添加配置文件
在~/.vimrc 文件里添加如下配置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" F7 NERDTree
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
map <F7> :NERDTreeToggle<CR>
imap <F7> <ESC>:NERDTreeToggle<CR>

7.MiniBufExplorer

  在Visual Studio或Eclipse中你打开的缓存会以tab的形式列在窗口的顶端或底部,在Vim中插件MiniBufExplorer来实现此功能。下载 minibufexpl.vim并将其放在plugin目录下。接着在vimrc中添加如下命令:


   
   
let g:miniBufExplMapWindowNavVim = 1 let g:miniBufExplMapWindowNavArrows = 1 let g:miniBufExplMapCTabSwitchBufs = 1 let g:miniBufExplModSelTarget = 1

  下图展示了MiniBufExplorer的使用效果:



我的配置文件:
set nu

"MiniBufExplorer 缓存已tab的形式列在窗口顶部或底部
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1



let Tlist_Auto_Highlight_Tag=1  
let Tlist_Auto_Open=1  
let Tlist_Auto_Update=1  
let Tlist_Display_Tag_Scope=1  
let Tlist_Exit_OnlyWindow=1  
let Tlist_Enable_Dold_Column=1  
let Tlist_File_Fold_Auto_Close=1  
let Tlist_Show_One_File=1  
let Tlist_Use_Right_Window=1  
let Tlist_Use_SingleClick=1  
nnoremap <silent> <F8> :TlistToggle<CR> 
"设定F8为taglist开关

filetype plugin on  
autocmd FileType python set omnifunc=pythoncomplete#Complete  
autocmd FileType javascrīpt set omnifunc=javascriptcomplete#CompleteJS  
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags  
autocmd FileType css set omnifunc=csscomplete#CompleteCSS  
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags  
autocmd FileType php set omnifunc=phpcomplete#CompletePHP  
autocmd FileType c set omnifunc=ccomplete#Complete  
   
      
      let g:pydiction_location='~/.vim/tools/pydiction/complete-dict' "code补全需要  
      set autoindent " same level indent
      set smartindent " next level indent
      set expandtab
      set tabstop=4
      set shiftwidth=4
      set softtabstop=4


      set filetype=python
      au BufNewFile,BufRead *.py,*.pyw setf python
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" F7 NERDTree
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 map <F7> :NERDTreeToggle<CR>
 imap <F7> <ESC>:NERDTreeToggle<CR>


最后秀一下我的vim
参考文章: Ubuntu下将vim配置为Python IDE
                    Vim初探(五)——打造Python IDE
                    Vim+Taglist+Ctags
                     VIM按键说明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为Ubuntu打造vim-Python IDE 的相关文章

随机推荐