几个有用的vim插件

    xiaoxiao2021-08-21  72

    几个有用的vim插件

    作者: zzwworld 发布时间:2015-07-07 15:32:24

    1、自动补全new-omni-completion、OmniCppComplete

    new-omni-completion是vim自带的全能补全工具,他要依据ctags生成的tags文件。

    按下"Ctrl+X Ctrl+O"会进行自动补全;

    默认会有预览窗口,通过在~/.vimrc文件中加入set completeopt=longest,menu

    可以关掉智能补全时的预览窗口。

     

    vim自动补全——OmniCppComplete

    vim的自动补全功能可通过其插件OmniCppComplete实现。 安装OmniCppComplete mn@mn-HP:~$  vim-addons install omnicppcomplete 配置OmniCppComplete 在vim配置文件/home/user/.vimrc中加入如下的配置: View Code 1 "-- omnicppcomplete setting -- 2 " 按下F3自动补全代码,注意该映射语句后不能有其他字符,包括tab;否则按下F3会自动补全一些乱码 3 imap <F3> <C-X><C-O> 4 " 按下F2根据头文件内关键字补全 5 imap <F2> <C-X><C-I> 6 set completeopt=menu,menuone " 关掉智能补全时的预览窗口 7 let OmniCpp_MayCompleteDot = 1 " autocomplete with . 8 let OmniCpp_MayCompleteArrow = 1 " autocomplete with -> 9 let OmniCpp_MayCompleteScope = 1 " autocomplete with :: 10 let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert) 11 let OmniCpp_NamespaceSearch = 2 " search namespaces in this and included files 12 let OmniCpp_ShowPrototypeInAbbr = 1 " show function prototype in popup window 13 let OmniCpp_GlobalScopeSearch=1 " enable the global scope search 14 let OmniCpp_DisplayMode=1 " Class scope completion mode: always show all members 15 "let OmniCpp_DefaultNamespaces=["std"] 16 let OmniCpp_ShowScopeInAbbr=1 " show scope in abbreviation and remove the last column 17 let OmniCpp_ShowAccess=1

    (前几行就是提供了C++中的./->/::等操作符的提示和自动完成)。

    OmniCppComplete是基于ctags数据库即tags文件实现的(基于ctags生成的索引信息来实现自动补全的),所以在 ctags -R生成tags时还需要一些额外的选项,这样生成的tags文件才能与OmniCppComplete配合运作。 使用下列命令生成tags文件,就可以 与OmniCppComplete配合运作: ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . --c++-kinds=+p  : 为C++文件增加函数原型的标签 --fields=+iaS    : 在标签文件中加入继承信息(i)、类成员的访问控制信息(a)、以及函数的指纹(S) --extra=+q      : 为标签增加类修饰符。注意,如果没有此选项,将不能对类成员补全   # vim自动补全功能的测试 # 为了测试自动补全功能,我们先下载C++一份C++标准库的源代码。 mn@mn-HP:~$  sudo apt-get install build-essential # 然后在/usr/include/c++下就可以找到标准库的头文件了。 mn@mn-HP:~$ cd /usr/include/c++ mn@mn-HP:/usr/include/c++$ ls 4.6  4.6.3 # 在此文件夹下生成能与OmniCppComplete配合运作的tags文件 mn@mn-HP:/usr/include/c++$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . mn@mn-HP:/usr/include/c++$ ls 4.6  4.6.3  tags # 在vim的配置文件中如下内容,然后在编程的时候就可以使用自动补全功能了。 mn@mn-HP:/usr/include/c++$ vi ~/.vimrc set tags+=/usr/include/c++/tags # 用vi打开前面的Test.c文件,在printf("Hello World!\n")下一行中,输入pri,然后按下Ctrl+X Ctrl+O,此时vi会弹出一个窗口,所有以pri开头的tag都会出现在这个窗口中,printf就出现在第6行中 mn@mn-HP:~$ cd ~ mn@mn-HP:~$ vim Test.c 注意:在自动补全的点,Vim必须知道可能补全的定义。比如说,在namespace std命名空间下的变量和函数,必须要用using namespace std;暴露出来,否则是不能补全的。在.cpp文件中还可以,在.h文件中这样就不是好的做法了。暂时不知道这个问题是由于我自己配置错误还是程序没有 实现。 当自动补全下拉窗口弹出后,一些可用的快捷键: Ctrl+P  向前切换成员 Ctrl+N  向后切换成员 Ctrl+E  表示退出下拉窗口, 并退回到原来录入的文字 Ctrl+Y  表示退出下拉窗口, 并接受当前选项 其他补全方式: Ctrl+X Ctrl+L 整行补全 Ctrl+X Ctrl+N  根据当前文件里关键字补全 Ctrl+X Ctrl+K  根据字典补全 Ctrl+X Ctrl+T  根据同义词字典补全 Ctrl+X Ctrl+I  根据头文件内关键字补全 Ctrl+X Ctrl+]  根据标签补全 Ctrl+X Ctrl+F  补全文件名 Ctrl+X Ctrl+D  补全宏定义 Ctrl+X Ctrl+V  补全vim命令 Ctrl+X Ctrl+U  用户自定义补全方式 Ctrl+X Ctrl+S  拼写建议 帮助文档 :help omnicppcomplete   2、加速你的补全 -- 插件: SuperTab 下载地址http://www.vim.org/scripts/script.php?script_id=1643版本1.6安装

    下载supertab.vba,用vim打开($ vim supertab.vba),然后Source the file (:so %)

      此时,supertab.vim 已放入 ~/.vim/plugin 文件夹、supertab.txt已放入~/.vim/doc中了。

    手册supertab.txt 在你的~/.vimrc文件中加上这两句:

    " 0 - 不记录上次的补全方式 " 1 - 记住上次的补全方式,直到用其他的补全命令改变它 " 2 - 记住上次的补全方式,直到按ESC退出插入模式为止

    let g:SuperTabRetainCompletionType=2      

     

    " 设置按下<Tab>后默认的补全方式, 默认是<C-P>, " 现在改为<C-X><C-O>. 关于<C-P>的补全方式, " 还有其他的补全方式, 你可以看看下面的一些帮助: " :help ins-completion " :help compl-omni                 let g:SuperTabDefaultCompletionType="<C-X><C-O>"

    以后当你准备按"Ctrl+X Ctrl+O"的时候直接按<Tab>就好了   3、提示函数原型echofunc echofunc可以在命令行中提示当前输入函数的原型。 echofunc下载地址: http://www.vim.org/scripts/script.php?script_id=1735 下载完成后,把echofunc.vim文件放到 ~/.vim/plugin文件夹中 当 你在vim插入(insert)模式下紧接着函数名后输入一个"("的时候, 这个函数的声明就会自动显示在命令行中。如果这个函数有多个声明, 则可以通过按键"Alt+-"和"Alt+="向前和向后翻页, 这个两个键可以通过设置g:EchoFuncKeyNext和g:EchoFuncKeyPrev参数来修改。这个插件需要tags文件的支持, 并且在创建tags文件的时候要加选项"--fields=+lS"(OmniCppComplete创建的tag文件也能用), 整个创建tags文件的命令如下: $ ctags -R --fields=+lS 其他插件说明详见echofunc.vim 如果你在编译vim时加上了"+balloon_eval"特性,那么当你把鼠标放在函数名上的时候会有一个tip窗口弹出, 该窗口中也会有函数的声明。   下载地址http://www.vim.org/scripts/script.php?script_id=1643版本0.43安装把supertab.vim 文件丢到 ~/.vim/plugin 文件夹就好了手册supertab.vim 文件头部, 和命令 ":SuperTabHelp"

    4、markdown语法高亮vim-markdown

    下载markdown-1.2.2.vba.gz,用vim打开,运行命令

    :source %

     此时所有文件将会解压到~/.vim的相应文件,此时安装成功。

    转载请注明原文地址: https://ju.6miu.com/read-676825.html

    最新回复(0)