最后更新于 .

OK,上一篇文章,我们已经配置好了一个可以正常使用的VIM,那么在我们真正来到程序员的VIM世界之前,希望你能在VIM里面再多加下面几个配置。

set go= "无菜单、工具栏

对,让我真正抛弃鼠标,进入美妙的VIM之旅吧!

首先说说一个IDE应该有的几个功能:

1)源代码结构及函数列表

2)变量定义支持跳转等

3)代码自动补全 当然VIM还给了我们几个小惊喜:

4)快速批量注释与反注释

5)由注释直接生成文档

6)文件头作者信息自动添加

7).cpp和.h文件之间的快速切换

那么接下来,我们久来看看我们将会用到的插件列表。

首先介绍一下一些必备知识,我们需要下面两样东西,来辅助完成vim成为IDE的大业--ctags和cscope,这两样东西不是vim的插件而是可执行程序,linux和windows下都有。ctags主要实现了c、c++、java、c#等语言的智能分析,并声称tags文件,后面所有的包括函数列表显示,变量定义跳转,自动补全等,都要依赖于他。

有了tags文件后,只需要在变量上按下 CTRL + ]键,就可以自动跳到变量定义的位置。

而cscope据说诞生就是为了来替代ctags的,因为他有着比ctags更加强大的功能,举个例子,ctags只能分析出这个函数在哪里被定义,而cscope除了这一点之外,还能分析出这个函数再哪里被调用。

当然cscope目前还是有不少bug的,但是也不影响我们的使用。

1)taglist.vim 实现了源代码结构和函数列表的展示,功能非常强大

2)有了tags就自动支持了

3)omnicppcomplete.vim 实现写C/C++语言时自动补全

4)NERD_commenter.vim 注释插件

5)DoxygenToolkit.vim 由注释生成文档,并且能够快速生成函数标准注释

6)这段配置是本人自己写的稍后贴出。

7)a.vim 实现.cpp和.h快速切换

下面一个个的讲解配置: 注意,请先检查是否有如下配置,如果没有请添加:

if(has("win32") || has("win95") || has("win64") || has("win16"))
    let g:vimrc_iswindows=1
else
    let g:vimrc_iswindows=0
endif
autocmd BufEnter * lcd %:p:h

首先确认安装了ctags和cscope,并且确认这两个可执行程序所在的目录已经放进环境变量里面。(必须做,否则后边都无法操作) 在vimrc中配置如下:

map <F12> :call Do_CsTag()<CR>
nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR>:copen<CR>
nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>:copen<CR>
nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>:copen<CR>
function Do_CsTag()
    let dir = getcwd()
    if filereadable("tags")
        if(g:iswindows==1)
            let tagsdeleted=delete(dir."\\"."tags")
        else
            let tagsdeleted=delete("./"."tags")
        endif
        if(tagsdeleted!=0)
            echohl WarningMsg | echo "Fail to do tags! I cannot delete the tags" | echohl None
            return
        endif
    endif
    if has("cscope")
        silent! execute "cs kill -1"
    endif
    if filereadable("cscope.files")
        if(g:iswindows==1)
            let csfilesdeleted=delete(dir."\\"."cscope.files")
        else
            let csfilesdeleted=delete("./"."cscope.files")
        endif
        if(csfilesdeleted!=0)
            echohl WarningMsg | echo "Fail to do cscope! I cannot delete the cscope.files" | echohl None
            return
        endif
    endif
    if filereadable("cscope.out")
        if(g:iswindows==1)
            let csoutdeleted=delete(dir."\\"."cscope.out")
        else
            let csoutdeleted=delete("./"."cscope.out")
        endif
        if(csoutdeleted!=0)
            echohl WarningMsg | echo "Fail to do cscope! I cannot delete the cscope.out" | echohl None
            return
        endif
    endif
    if(executable('ctags'))
        "silent! execute "!ctags -R --c-types=+p --fields=+S *"
        silent! execute "!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ."
    endif
    if(executable('cscope') && has("cscope") )
        if(g:iswindows!=1)
            silent! execute "!find . -name '*.h' -o -name '*.c' -o -name '*.cpp' -o -name '*.java' -o -name '*.cs' > cscope.files"
        else
            silent! execute "!dir /s/b *.c,*.cpp,*.h,*.java,*.cs >> cscope.files"
        endif
        silent! execute "!cscope -b"
        execute "normal :"
        if filereadable("cscope.out")
            execute "cs add cscope.out"
        endif
    endif
endfunction

1)taglist.vim

先截个图给大家看下:

taglist

把taglist.vim放在plugin目录下后,在vimrc中添加如下的配置:

"进行Tlist的设置
"TlistUpdate可以更新tags
map <F3> :silent! Tlist<CR> "按下F3就可以呼出了
let Tlist_Ctags_Cmd='ctags' "因为我们放在环境变量里,所以可以直接执行
let Tlist_Use_Right_Window=1 "让窗口显示在右边,0的话就是显示在左边
let Tlist_Show_One_File=0 "让taglist可以同时展示多个文件的函数列表,如果想只有1个,设置为1
let Tlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏
let Tlist_Exit_OnlyWindow=1 "当taglist是最后一个分割窗口时,自动推出vim
let Tlist_Process_File_Always=0 "是否一直处理tags.1:处理;0:不处理。不是一直实时更新tags,因为没有必要
let Tlist_Inc_Winwidth=0

2)已经在上面解释过,所以这里不再做赘述

OK,到这里,我们已经能够成功的显示函数列表和查看函数定义了,阅读代码已经没有问题了,剩下的就是要在写代码过程中用到的插件啦,我们在把VIM打造成一个真正的IDE(3)中继续~

Pingbacks

  1. 学习vim | 学编程 on #

    [...] 把VIM打造成一个真正的IDE(2) [...]

  2. 无所不能的vim-vim到底能做什么 | 三月鸟社 on #

    [...] 3.快速查找函数定义功能及显示函数列表功能vim+tags+taglist即可轻松实现上面的功能,功能上完全可以替代si或者vs.详见:把VIM打造成一个真正的IDE(2),在Vim中使用ctags [...]

  3. Vim使用笔记-编程相关插件 &#124; sosowo&#039;s blog on #

    [...] 但是,只有这个插件暂时效果不佳,需要ctags和cscope的支持。 而我已经在vimrc当中加入了生成tags文件的函数和快捷键映射,设置详见: 把vim打造成一个真正的IDE-2。 [...]

  4. gvim安装和配置 | Xeno Joshua on #

    [...] “把VIM打造成一个真正的IDE”系列贴,感觉不错:分为篇1、篇2、篇3 [...]

  5. 无所不能的vim-vim到底能做什么 | Vim中文网 on #

    [...] vim+tags+taglist即可轻松实现上面的功能,功能上完全可以替代si或者vs.详见:把VIM打造成一个真正的IDE(2),在Vim中使用ctags [...]

  6. 【转】在Vim中使用ctags | 在路上 on #

    [...] 另外,tags必须在vim运行的当前目录,才能在vim里面正确跳转,当然也不是没有办法解决:settags=”tags的文件路径”即可,不过如果像我前面文章说的那样定义了F12来快速生成tags的话(快速连接),也不会经常用到更改路径吧,哈哈。 [...]

  7. 用VIM打造属于自己的IDE | fumin&#039;s blog on #

    [...] [1] 把VIM打造成一个真正的IDE(1) [2] 把VIM打造成一个真正的IDE(2) [3] 把VIM打造成一个真正的IDE(3). [4] Vim的快速注释插件NerdCommenter 此条目由 [...]

  8. Vim编程相关插件 | ISDEREK&#039;s Blog on #

    [...] 但是,只有这个插件暂时效果不佳,需要ctags和cscope的支持。 而我已经在vimrc当中加入了生成tags文件的函数和快捷键映射,设置详见: 把vim打造成一个真正的IDE-2。 [...]

  9. 把VIM打造成一个真正的IDE | Anntony&#039;s personal blog on #

    [...] 加用户信息,那还差的很远哦,就请期待下一篇吧 &#8212;&#8211;把 VIM打造成一个真正的IDE(2)。 [...]

  10. 把VIM打造成一个真正的IDE | Anntony&#039;s personal blog on #

    [...] if(has(&#8220;win32&#8243;) || has(&#8220;win95&#8243;) || has(&#8220;win64&#8243;) || has(&#8220;win16&#8243;)) &#8220;判定当前操作系统类型 let g:iswindows=1 else let g:iswindows=0 endif set nocompatible &#8220;不要vim模仿vi模式,建议设置,否则会有很多不兼容的问题 syntax on&#8221;打开高亮 if has(&#8220;autocmd&#8221;) filetype plugin indent on &#8220;根据文件进行缩进 augroup vimrcEx au! autocmd FileType text setlocal textwidth=78 autocmd BufReadPost * if line(&#8220;&#8217;&#8221;&quot;) &gt; 1 &amp;&amp; line(&#8220;&#8217;&#8221;&quot;) &lt;= line(&#8220;$&#8221;) | &#8220;实现打开同一文件时,vim能够自动记住上一次的位置 exe &#8220;normal! g`&#8221;&quot; | endif augroup END else set autoindent &#8221; always set autoindenting on &#8220;智能缩进,相应的有cindent,官方说autoindent可以支持各种文件的缩进,但是效果会比只支持C/C++的cindent效果会差一点, 但笔者并没有看出来 endif &#8221; has(&#8220;autocmd&#8221;) set tabstop=4 &#8220;让一个tab等于4个空格 set vb t_vb= set nowrap &#8220;不自动换行 set hlsearch &#8220;高亮显示结果 set incsearch &#8220;在输入要搜索的文字时,vim会实时匹配 set backspace=indent,eol,start whichwrap+=&lt;,&gt;,[,] &#8220;允许退格键的使用 if(g:iswindows==1) &#8220;允许鼠标的使用 &#8220;防止linux终端下无法拷贝 if has(&#8217;mouse&#8217;) set mouse=a endif au GUIEnter * simalt ~x endif &#8220;字体的设置 set guifont=Bitstream_Vera_Sans_Mono:h9:cANSI &#8220;记住空格用下划线代替哦 set gfw=幼圆:h10:cGB2312 OK,有了上面的基本设置,一个好用的vim就配置好了,但是如果想让它完美支持各种源代码文件,想让它方便的注释,方便的进行代码提示,方便的添 加用户信息,那还差的很远哦,就请期待下一篇吧 &#8212;&#8211;把 VIM打造成一个真正的IDE(2)。 把VIM打造成一个真正的IDE(2) [...]

  11. vim配置攻略-打造自己的IDE | Cherrot on #

    [...] 把VIM打造成一个真正的IDE(2) 虽然这里作者使用的ctags,但其定义的函数已经可以支持cscope,而且跨平台 [...]

  12. 关于vim的问题 - Linux/Unix - 开发者第1834485个问答 on #

    [...] 把VIM打造成一个真正的IDE(2) [...]

  13. 在vim中使用ctags | 泪痕湮灭 on #

    [...] 另外,tags必须在vim运行的当前目录,才能在vim里面正确跳转,当然也不是没有办法解决:settags=&#8221;tags的文件路径&#8221;即可,不过如果像我前面文章说的那样定义了F12来快速生成tags的话(快速连接),也不会经常用到更改路径吧,哈哈。 [...]

  14. 在vim中使用ctags | 泪痕湮灭 on #

    [&#8230;] 另外,tags必须在vim运行的当前目录,才能在vim里面正确跳转,当然也不是没有办法解决:settags=&#8221;tags的文件路径&#8221;即可,不过如果像我前面文章说的那样定义了F12来快速生成tags的话(快速连接),也不会经常用到更改路径吧,哈哈。 [&#8230;]

Pingbacks已打开。

Trackbacks

引用地址

评论

  1. isunbo

    isunbo on #

    function Do_CsTag(){}endfunction 之间少了一个endif.^_^
    taglist.vim插件的效果看到了,但是showfunc.vim放到vimfiles/plugin目录下后,不知道为什么并没有提示函数定义和匹配tags.

    Reply

    1. Dante

      Dante on #

      咦,奇怪,我试了代码没有问题哦,要按F12生成tags的~~ 然后在函数让按fd,是这样的吗?

      Reply

      1. isunbo

        isunbo on #

        按F12了,ctags和cscope也应该是正确配置的.
        "然后在函数上按fd"是什么意思?怎么按?

        Reply

        1. Dante

          Dante on #

          就是在普通模式下,直接按下fd哦

          Reply

  2. master12

    master12 on #

    请问
    把taglist.vim和 showfunc.vim插件放到plugin里
    这里的plugin是指/usr/share/vim/vim76/plugin/
    还是指什么? 还是指在当前用户主目录下建一个plugin

    Reply

    1. Dante

      Dante on #

      在用户主目录建立一个.vim/plugin 即可

      Reply

  3. master12

    master12 on #

    哦 谢谢
    楼主晒晒你vimrc呗

    Reply

    1. Dante

      Dante on #

      嗯啊,一直在酝酿着放出来呢,其实也都是些很普通的配置,不过还是先整理一下,免的放出来乱七八糟的……哈哈,等忙过这一阵就一定放出来和大家交流~~

      Reply

  4. wzdxt

    wzdxt on #

    你好!
    非常感谢能与我们分享你的经验!
    关于那个showfunc.vim,在函数上按fd显示原型能正常使用 但输入func(后没有显示函数定义原型 是什么原因呢?
    会不会跟操作系统有关?我用的是ubuntu

    Reply

    1. Dante

      Dante on #

      应该不会呀,我在linux下终端下试过的~~ 是suse10,哦,对了,你的vim版本是多少的?

      Reply

      1. wzdxt

        wzdxt on #

        ubuntu 9.10
        vim 7.2
        如果是版本问题的话那就算了 其实影响也不是很大

        Reply

        1. Dante

          Dante on #

          呃,我也使用vim 7.2哦,只是不知道是不是ubuntu的问题了……

          Reply

  5. benzi

    benzi on #

    cscope 支持PHP吗,如果可以如何生成?
    omnicppcomplete支持php吗,如果可以如何使用?

    Reply

    1. Dante

      Dante on #

      呃,对cscope是否支持php没有过研究哦,只是ctags是支持php的,之前看到过一款类似omnicppcomplete的补全php的插件,可惜忘记了,等我找到的时候告诉你吧。
      omnicppcomplete只能补全C/C++……

      Reply

      1. benzi

        benzi on #

        是的 ctags 支持PHP 谢谢

        Reply

        1. 吴叔

          吴叔 on #

          网上说因为php是类C语言,所以cscope也是支持的,但是有一点小问题.

          Reply

  6. stephenjy

    stephenjy on #

    你好,我在用:call Do_CsTag()时碰到一个很奇怪的问题,执行完这个函数之后,整个屏幕都成了空白,再执行:redr也没有用,只能c-b c-f上下翻一翻页才会被刷新,不知道是什么原因造成的。跟踪发现执行只要执行:
    execute "!xxx"
    都会出现这种现象,不管前面有没有silent,不知何故。

    P.S. 函数中删除三个文件,建议把删除文件提取出来做一个函数:

    function! DeleteFile(dir, filename)
    if filereadable(a:filename)
    if (g:iswindows)
    let ret = delete(a:dir."\\".a:filename)
    else
    let ret = delete("./".a:filename)
    endif
    if (ret != 0)
    echohl WarningMsg | echo "Failed to delete ".a:filename | echohl None
    return 1
    else
    return 0
    endif
    endif
    return 0
    endfunction

    Reply

    1. stephenjy

      stephenjy on #

      评论里面的缩进居然都没了……

      Reply

    2. stephenjy

      stephenjy on #

      Sorry,描述有点错误,是
      silent execute "!xxx"
      会导致上述现象,不知道其他人有没有碰到过。

      Reply

      1. Dante

        Dante on #

        呵呵,你是用的secureCRT的终端吧,是会出现这个问题的,不是VIM的问题,而是secureCRT本身显示问题,可以通过CTRL+L来刷新屏幕~

        Reply

        1. stephenjy

          stephenjy on #

          我试了c-l也刷新不了,后来我在那个函数中最后再增加一句执行::redr! 就行了,光是redr不行,要感叹号。

          Reply

      2. Dante

        Dante on #

        呃,从来没有遇到过哦,你vim版本是多少呢?

        Reply

        1. stephenjy

          stephenjy on #

          vim-7.2.284, Debian/Sid, gnome-terminal
          btw 这个博客不会通过邮件通知回复吗?

          Reply

      3. Dante

        Dante on #

        会的哦,可能是嵌套层数太多了……
        不过你这个版本应该完全没有问题才对呀~

        Reply

    3. Dante

      Dante on #

      嗯啊,是可以写到一起,但是为了长远看可以将ctags和cscope分开,就还是分开写了

      Reply

  7. porco_rosso

    porco_rosso on #

    晕死了,F12的效果具体是什么,我是windows,用F3可以生成Tlist,但是F12无效,在后面两个cscope的命令窗口里总是提示找不到文件,具体怎么样实在看不清两个窗口一闪而过。
    cscope我是在这里下的http://code.google.com/p/cscope-win32/。

    ctag和cscope都放到了system32目录里

    Reply

    1. Dante

      Dante on #

      咦,没道理呀,F3可以用代表是在path下呀,呃,会在当前目录生成一个tags文件,以及三个cscope相关的文件,具体名字记不清楚了~

      Reply

    2. porco_rosso

      porco_rosso on #

      搞清楚了错误在哪里,但是不能解决,
      silent! execute "!dir /s/b *.c,*.cpp,*.h,*.java,*.cs &gt;&gt; cscope.files 的时候,提示“没有找到cscope.files”

      然后执行silent! execute "!cscope -b"时,提示“cannt find source file”

      Reply

      1. Dante

        Dante on #

        你的当前目录里必须有上面那几种扩展名文件的一种哦

        Reply

        1. porco_rosso

          porco_rosso on #

          不好意思,光忙着自己折腾了,没想到博主那么晚还在。博主,帮我解答一下我的新问题,谢谢啊!

          Reply

      2. porco_rosso

        porco_rosso on #

        不是没有找到cscope.files,是没有找到*.c,*.cpp等这些文件吧,那个命令的意思应该是把这些命令文件名写入一个cscope.files命令。

        然后第二句应该是根据cscope.files生成cscope.out文件,既然前面没有找到*.c*.cpp这些文件,当然就不能生成cscope.out了

        所以现在的问题就只是没有找到*.c和*.cpp这些文件了。

        可是为什么会找不到呢?

        Reply

        1. porco_rosso

          porco_rosso on #

          好奇怪,如果我自己直接在cmd里敲这些dir和cscope命令,就可以生成cscope.files和cscope.out,但是在vim里按F12就不可以。

          我的cscope已经换成了您在《在Vim(gvim)中使用cscope》里提到的http://sourceforge.net/projects/mslk/files/这里的win32版cscope了

          Reply

  8. porco_rosso

    porco_rosso on #

    进一步找到了问题的根源,我的gvim不知道为什么总是在windows/fonts这个文件夹里面搜索,而不是在源代码当前所在文件夹。
    因为我尝试在vim里调用dir,显示的是fonts里的文件
    然后我在这句里silent! execute “!dir /s/b *.c,*.cpp,*.h,*.java,*.cs &gt;&gt; cscope.files 加上了*.ttf,然后按F12就可以在fonts里生成cscope.files了。

    为什么不再当前源代码文件夹里搜索呢???

    Reply

  9. porco_rosso

    porco_rosso on #

    我自己在vimrc里加了这么一句autocmd BufEnter * lcd %:p:h 来保证工作目录为当前目录,这样子F12可以正常工作了

    Reply

  10. porco_rosso

    porco_rosso on #

    博主啊,我把工作目录解决了,不知道您能不能给我什么更好的解释或方法。可是还有个疑惑,
    autocmd BufReadPost *
    \ if line("'\"") &gt; 1 &amp;&amp; line("'\"") &lt;= line(&quot;$&quot;) | &quot;实现打开同一文件时,vim能够自动记住上一次的位置
    \ exe &quot;normal! g`\&quot;&quot; |
    \ endif

    这个自动记住上一次的位置,真的管用吗?貌似在我这里不管用。

    Reply

    1. Dante

      Dante on #

      呃,我这里是管用的呀……
      autocmd BufReadPost *
      \ if line("'\"") > 1 && line("'\"") <= line("$") |
      \ exe "normal! g`\"" |
      \ endif

      呃,确实是一模一样的呢

      Reply

    2. Dante

      Dante on #

      呃,刚看到你说要更好的解释,汗……

      你应该不是远程登录linux,而是直接在linux里面的终端下吧,这样vim打开的时候的确不会自动cd到这个目录……

      我也觉得很怪异,但是因为我一般都是远程ssh到服务器上用,所以一直没有遇到过这个问题

      Reply

  11. hjs-1122

    hjs-1122 on #

    为什么我的总是找不到模式 该安装的我也全安装了啊 ctags 和 cscope 在命令行下敲了也是有用的 按了F12也生成了文件 我用的是linux

    Reply

    1. Dante

      Dante on #

      呃,这样啊,能把你测试omnicppcomplete.vim那段代码完整贴出来看一下不?

      Reply

      1. hjs-1122

        hjs-1122 on #

        #include
        using namespace std;
        class A{
        private:
        int a;
        int b;
        public:
        A(int a, int b){
        this-&gt;a = a;
        this-&gt;b = b;
        }
        }
        int main(int argc, char * argv[]){
        A t;
        t.(“在这我用了你说的F12 前面的插件我也装好了,CTRL+X,CTRL+O vim 说模式找不到”)
        }

        Reply

        1. Dante

          Dante on #

          额,你建立的文件名是?

          Reply

        2. Dante

          Dante on #

          汗, 你class的语法写错了。
          class A{
          private:
          int a;
          int b;
          public:
          A(int a, int b){
          this->a = a;
          this->b = b;
          }
          }

          最后要有一个分号…… (;)

          Reply

  12. hjs-1122

    hjs-1122 on #

    是在这上面忘打上了

    Reply

  13. hjs-1122

    hjs-1122 on #

    能加我QQ吗 575754703

    Reply

  14. hjs-1122

    hjs-1122 on #

    大侠 小弟搞了好长的时间也没搞好 帮帮我这个采用vim的小弟吧

    Reply

    1. Dante

      Dante on #

      啊,不好意思啊,刚才一直在搞博客,cnzz的统计又抽风了,我现在加你~

      Reply

  15. hjs-1122

    hjs-1122 on #

    // 文件名test.cpp
    class A{
    private:
    int a;
    int b;
    public:
    A(int a, int b){this-&gt;a = a ; this-&gt;b = b;}
    };

    int main(int argc, char * argv[])
    {
    A a;
    a.(之后就报全能补全(^O^N^P)找不到模式)

    }

    也建立了 tags 和cscope.file 和 cscope.out

    Reply

    1. Dante

      Dante on #

      按道理应该没问题的……,我加你QQ了,貌似你没通过?

      Reply

  16. hjs-1122

    hjs-1122 on #

    楼主 你见过我这种情况吗

    Reply

  17. hjs-1122

    hjs-1122 on #

    大侠 搞好了 原来我的tags设置少写了一个等号(=) 我有两个tags 一个是set tags = /home/hjs-wcl/C++/ 还有一个是 tags=/home/hjs-wcl/.vim/tags/cpp

    应该在写成 tags+= ……
    谢谢大侠了 你的博客 真赞!!!!

    Reply

    1. Dante

      Dante on #

      哈哈,搞定了就好呀~~
      有问题随时联系~~~

      Reply

  18. vimer新人

    vimer新人 on #

    您好:
    我看见statusline栏上能够显示文件的编码格式,请问这个参数是什么啊。

    Reply

    1. Dante

      Dante on #

      set statusline=%k%F[%{&ff}:%{&fenc}]%m%r%h%w\ %=[%l,%c]

      其中%{&fenc}就是

      Reply

      1. vimer新人

        vimer新人 on #

        谢谢了

        Reply

  19. raolairaoqu

    raolairaoqu on #

    我刚接触vim,想先看一下效果全开的感觉,就按您写的试了试。当我配置完taglist的时候,打开程序,结果list里没函数名和库函数,这是怎么回事?

    Reply

    1. Dante

      Dante on #

      1.你打开的文件名是啥?
      2.文件路径又没有包含中文?
      3.是否安装了ctags,并且在环境变量里

      先排除下这三个问题~~

      Reply

      1. raolairaoqu

        raolairaoqu on #

        文件名是数字,
        路径没中文
        我ctags不是很会配置,我把ctags.exe放进了c:\program files\vim\vim72里面,环境变量是c:\program files\vim\vim72。但是ctags文件夹里面剩下的文件不知道怎么办。能不能讲一讲ctags的具体配置方法。

        Reply

        1. Dante

          Dante on #

          ctags就是放到path里面就可以哦,奇怪了,没有报任何错误吗?你不是在桌面上打开文件的吧?

          Reply

          1. raolairaoqu

            raolairaoqu on #

            哦。现在能用了,谢谢。看完(3)还有2个问题,c-]不能用,omnicppcomplete也不不能用,提示找不到。还有就是ctag附带的那些文件有什么用?

            Reply

            1. Dante

              Dante on #

              ctags附带的文件都是没有用的,
              你有生成ctags文件吗?

              Reply

            2. raolairaoqu

              raolairaoqu on #

              我试了下把源文件拷到了ctags自带的文件夹里和里面的文件一起f12,c-],和代码补全都能用了。

              Reply

              1. raolairaoqu

                raolairaoqu on #

                汗,其实是我选的程序太简单,所以一直以为c-]不能用。问题就剩一个了:omnicppcomplete的问题,把源文件拷到了ctags自带的文件夹里和里面的文件一起f12就可以不全,不防在一起就提示找不到。麻烦你了。

                Reply

                1. raolairaoqu

                  raolairaoqu on #

                  是我错了,我一直在输库函数里的函数,所以一直不能代码不全,我输了一下自己定义的函数就ok了。占了这么多地方说了一堆废话,真的是不好意思,能删的话就删掉吧,给您添嘛烦了。

                  Reply

  20. ideepblue

    ideepblue on #

    博主 我按照你的设置都弄了,但是source _vimrc的时候会报错,说
    函数 Do_Cstag 已存在,请加!强制替换。
    这个该怎么解决?

    Reply

    1. Dante

      Dante on #

      呃,不需要source vimrc吧?自动就会载入配置文件的~

      Reply

      1. ideepblue

        ideepblue on #

        修改了vimrc不source咋立刻生效?

        Reply

        1. ideepblue

          ideepblue on #

          我知道了 函数一般就加载一次 会说已存在很正常
          谢谢博主~

          Reply

          1. xiao

            xiao on #

            如何可以使这种提示不显示,每次重载vim配置就会跳出

            Reply

            1. nedzqbear

              nedzqbear on #

              在函数名后加一个感叹号。

              function Do_CsTag() 修改成
              function! Do_CsTag()

              这样重载vim配置时,就不会报错了。

              Reply

              1. Dante

                Dante on #

                嗯,是这样的。

                Reply

  21. pwangeng

    pwangeng on #

    F12功能:

    处理 function D_CsTag 时发生错误:
    第3行:
    E121: 未定义的变量:g:iswindows
    E15: 无效的表达式:(g:iswindows==1)
    第8行:
    E121: 未定义的变量:tagsdeleted
    E15: 无效的表达式:(tagsdeleted!=0)

    Reply

    1. Dante

      Dante on #

      iswindows是之前定义的一个变量……
      if(has("win32") || has("win95") || has("win64") || has("win16"))
      let g:vimrc_iswindows=1
      else
      let g:vimrc_iswindows=0
      endif

      Reply

  22. david

    david on #

    请问如何实现自动补齐引号?(各种括号已经可以自动补齐了)谢谢。

    Reply

  23. abc881858

    abc881858 on #

    我只是奇怪 vissual assist 没人用吗? VS专用

    Reply

    1. Dante

      Dante on #

      呵呵,大学时候看到同宿舍的同学有用的,可能也是工作的原因吧,我几个做游戏开发的同事确实用vs比较多。。。
      不过我是做啥开发都用vim,习惯了。。

      Reply

  24. nan

    nan on #

    请教博主个问题。小弟在c++头文件中声明的类成员函数,taglist运行也没问题,都可以正常跳转,但是如果打开头文件,taglist的窗口里却不显示这些声明过的函数和成员变量。只有在头文件中实现的类成员函数可以正常显示。
    由于实验室权限森严,所以小弟只有ctags, 没有cscope.
    平台: Debian + Vim 7.2

    Reply

    1. Dante

      Dante on #

      呃,这个问题我确实也存在,不过觉得没有什么妨碍就没有管他了,taglist的实现可能就是默认这样的。。只是猜测,并没有详细看过taglist的源码

      Reply

  25. zhoulong

    zhoulong on #

    请问fd是什么啊?不懂。。。怎么出showfunc的效果呢

    Reply

  26. aijieqiang

    aijieqiang on #

    你的color scheme叫什么

    Reply

    1. Dante

      Dante on #

      desertex ,也用wombat

      Reply

  27. 老猫

    老猫 on #

    你好,我按照步骤安装成功以后,现在按F12会生成tags文件,请问能指定这个tags文件的生成地址吗?想把所有的tags都编辑到一起

    Reply

    1. Dante

      Dante on #

      可以通过 -f 参数指定写入的tags文件路径名,当然可以先cd 到对应的目录,然后执行ctags命令,效果是一样的。

      Reply

  28. aoyoo

    aoyoo on #

    你好, 我安装完成后, 按F12也正常
    但是在某变量名按 CTRL+ ] 有时会提示:
    找到 tag: 1/2 或更多

    大概是因为代码中有重载的变量名
    此时只能定位到其中一处,不知道怎么定位到其他的声明变量的地方

    请问有解决的办法么?

    Reply

    1. Dante

      Dante on #

      呵呵,输入
      :ts
      就可以了,在本博另一篇专门介绍ctags的文章里面有说~~

      Reply

  29. 吴叔

    吴叔 on #

    请问博主这个您写的那个showfunc可以用在php和javascript上面吗?

    Reply

    1. Dante

      Dante on #

      应该是不支持的哦,我记得当年写的时候只支持了c++,java和c#~

      Reply

      1. 吴叔

        吴叔 on #

        是不支持,强烈建议博主加入autocmd BufEnter * lcd %:p:h 这一句,没有这句我一直出错..总是把VIM目录当作我的操作目录,if(has("win32") || has("win95") || has("win64") || has("win16"))
        let g:iswindows=1
        else
        let g:iswindows=0
        endif这段最好也加上,因为好多像我这样的新手开始都没有看前面的文章了

        Reply

        1. Dante

          Dante on #

          好~~ 我加一下~~
          autocmd BufEnter * lcd %:p:h
          这句不加确实有人有问题有人没问题。。。我还是统一加一下吧
          g:iswindows这里我也加一下,呵呵~

          Reply

  30. 光头大叔

    光头大叔 on #

    我想问一下,为什么那个showfunc有时候不起作用,
    比如说:printf( 会出现提示, scanf( 却不会出现,
    tags文件我已经按要求生成好了,怎么样都不出现提示,求解,谢谢。

    echo_func也是,code_complete也是

    Reply

  31. zpcat

    zpcat on #

    博主:请教一个vim使用tags的问题:
    我的vim7.2用c-] 跳转时,如果有很多项目时会出现选择的的列表 (即:ts).
    现在用fedora14 vim7.3, 发现没有默认出现选择列表,而是直接跳到第一匹配的地方。还要输入:ts来选择。不知道该怎样设置?

    Reply

    1. Dante

      Dante on #

      在vimrc中加入:
      map &lt;C-]&gt; g&lt;C-]&gt;
      即可

      Reply

  32. osal

    osal on #

    是什么意思按什么键?

    Reply

  33. springlie

    springlie on #

    关于showfunc.vim,有两个小小疑问:

    1 当fd发现函数有多个定义,但下方只显示第一条,如何在定义之间切换

    2 “另外还实现了当输入'('时,会自动匹配tags,展示函数的定义原型。”,这个功能怎么实现,是在神马模式下,光标处于哪个位置的时候输入'('?折腾了半天没弄出来。

    Reply

    1. Dante

      Dante on #

      对第一个问题
      alt + +
      alt + -

      对第二个问题,就是在插入模式下输入'('

      Reply

      1. springlie

        springlie on #

        第一个问题解决。

        第二个,在输入’(‘的瞬间,定义出现了一下,但是马上就消失了,求解。

        :)

        Reply

        1. Dante

          Dante on #

          那可能是和一些其他插件有冲突。。

          Reply

          1. springlie

            springlie on #

            关于插入模式下输入’(‘瞬间一闪的问题,当时只有少量几个常用插件,应该不会冲突。
            特地换上echofunc看了下,发觉可以正常显示。
            博主的插件是不是哪里有些小疏忽。。。

            Reply

            1. Dante

              Dante on #

              很久没更新了。。echofunc已经把bug修复的话,我抽时间把文章里换成echofunc吧,哈哈

              Reply

  34. 机器猫

    机器猫 on #

    在哪里下载taglist.vim文件呀

    Reply

  35. 机器猫

    机器猫 on #

    google 到了,在http://vim-taglist.sourceforge.net/
    还以为也是博主写的

    Reply

    1. Dante

      Dante on #

      呵呵,vim.org上也有下载的,可以看一下置顶帖中的插件列表,那里更全一些。

      Reply

  36. Rongzq

    Rongzq on #

    Hi Dante,
    我在追随你的脚步学习着Vim, 我有个疑问关于Csope,
    在这段code中
    nmap s :cs find s =expand(""):copen

    Map的是什么按键呢? 在Normal时要怎么按?功能是什么?

    谢谢

    Reply

    1. Dante

      Dante on #

      map的是s
      功能是查找一个变量的定义

      Reply

      1. Rongzq

        Rongzq on #

        抱歉, 好像在发表之后s之前的字符没有了,请看一下您在这篇文章中对于csope的vimrc, 在s之前有的。
        但是我不理解这个《C-@》是什么键, Ctrl+@吗?, 在:map 之后我看得的是《^@》s, 所以我就不明白怎么使用这个快捷键了

        Reply

        1. Dante

          Dante on #

          对,实际就是 ctrl + 2,因为ctrl的时候是无视shift的~

          Reply

  37. 嘉谟之行

    嘉谟之行 on #

    为什么按F3 list显示在右边。 我要显示在左边如何做

    Reply

  38. 嘉谟之行

    嘉谟之行 on #

    不好意思 ,刚看了注释。 设置为0即可

    。但是最基本的 快捷键不会 ,搞成ide 意义不大。

    接触vim 也有一年了 ,一直 没怎么深入

    Reply

    1. Dante

      Dante on #

      呵呵,可以尝试深入一下,vim还是很有魅力的~~

      Reply

  39. jungle

    jungle on #

    你好,最近用插件遇到了一个小问题,之前安装了echofunc这个插件,刚才直接删除了这个文件,但是写代码的时候使用全能补全的时候提示 没有echofuncclear 我想知道如何卸载掉一个插件啊

    Reply

    1. Dante

      Dante on #

      呃,vim确实没有比较好的删除插件方法,你只能对应那个插件安装包,把每个文件都删除。。

      Reply

      1. 依云

        依云 on #

        git 不错

        Reply

  40. dczsf

    dczsf on #

    请问对应哪个按键?脚本配置好了用cscope时不知道怎么按快捷键了。

    Reply

  41. dczsf

    dczsf on #

    原来评论里已经有人问了,知道了。

    Reply

  42. zsam

    zsam on #

    处理 function D_CsTag 时发生错误:
    第3行:
    E121: 未定义的变量:g:iswindows
    E15: 无效的表达式:(g:iswindows==1)
    第8行:
    E121: 未定义的变量:tagsdeleted
    E15: 无效的表达式:(tagsdeleted!=0)

    前面有人问过,我已经全部加了上面的代码,为什么按F12后还出现这种错误呢?

    Reply

    1. zsam

      zsam on #

      if(has("win32") || has("win95") || has("win64") || has("win16"))
      let g:vimrc_iswindows=1
      else
      let g:vimrc_iswindows=0
      endif
      autocmd BufEnter * lcd %:p:h

      把上面的vimrc_iswindows改为iswindows解决了。。郁闷,怎么有这样事情呢!!!

      Reply

      1. Dante

        Dante on #

        呃,这个好奇怪。。。从来没遇到过。。

        Reply

        1. 大尾巴兔

          大尾巴兔 on #

          调试了我好久啊...
          博主一开始定义的是let g:vimrc_iswindows=1

          后面引用的是iswindows.
          所以报错了.

          Reply

  43. 大尾巴兔

    大尾巴兔 on #

    另外我想问下博主,我在xp下写java 项目
    如何对整个项目生成tags呢?
    对单个文件按F12后,执行跳转Ctrl+] 仍然提示未找到tags.

    Reply

    1. 大尾巴兔

      大尾巴兔 on #

      我通过对整个Project 生成tags解决了问题.

      但是我在一个文件中按Ctrl+] 跳转,然后Ctrl+t 跳回来.
      再按Ctrl+] 的时候又提示未找到tags.

      Reply

      1. 大尾巴兔

        大尾巴兔 on #

        问题解决了.
        通过设置
        set tags=tags;
        set autochdir

        注意第一个命令里的分号是必不可少的。这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,或者没有找到对应的目标,就到父目录中查找,一直向上递归。因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用第二个设置项来改变vim的当前目录。

        Reply

  44. Lazy.monkey

    Lazy.monkey on #

    请教博主:我用你的设置生成了tags文件,但无法显示python的函数信息,而同样的设置c/c++都显示正常,求解。。。

    Reply

    1. Lazy.monkey

      Lazy.monkey on #

      博主,找到问题了,为了让SnipMate支持django的代码片段补全我设置了:
      <pre lang="cpp" line="1">
      au FileType python set ft=python.django
      au FileType html set ft=htmldjango.html
      </pre>
      python的FileType就被修改为python.django了,taglist识别不了,请问博主是如何解决的呢?

      Reply

      1. Dante

        Dante on #

        如果是为了snipmate的话,其实你可以把snip文件改名字:
        python-django.snippets
        我就是这么做的。

        Reply

        1. Lazy.monkey

          Lazy.monkey on #

          哦。。。好吧,这样的话也可以,十分感谢!

          Reply

  45. 笨笨

    笨笨 on #

    if(has("win32") || has("win95") || has("win64") || has("win16"))
    let g:vimrc_iswindows=1
    else
    let g:vimrc_iswindows=0
    endif
    autocmd BufEnter * lcd %:p:h

    g:vimrc_iswindows 应该是 g:iswindows

    Reply

    1. Dante

      Dante on #

      嗯,是呢。。因为中间也改了很多次。。

      Reply

  46. bingoboy

    bingoboy on #

    博主。。那个环境变量是指PATH吗

    Reply

    1. Dante

      Dante on #

      是的哈

      Reply

      1. bingoboy

        bingoboy on #

        谢咯。。我回去试下。。。

        Reply

  47. vimrc配置小建议

    vimrc配置小建议 on #

    在1)taglist.vim 那段的vimrc配置代码中,第9行的注释( "是否一直处理tags.1:处理;0:不处理)最好并到上一行行尾;或者在之前的配置代码中加入set paste命令。
    不然vimer们在复制这一段到vimrc时最后两行会被自动注释掉。

    楼主的文章写得很好,非常实用,大赞一个!!!

    Reply

    1. Dante

      Dante on #

      感谢提醒,已经修改!

      Reply

  48. bughou

    bughou on #

    一个ctags / cscope问题请教:
    我们的c++代码里有很多类,每个类都有一些同名的方法,比如:Initialize(),Resume()之类的,这样在CTRL+] 对这些方法调用进行跳转的时候 这些类一下子都弹出来了,几十个让我选,有没有什么方法,可以根据方法前面的类名或者对象名,智能识别出是哪个类的方法啊?就像vs那样。这个问题一直困扰着我和身边的同事,望赐教。

    Reply

    1. Dante

      Dante on #

      这个问题的确是这样。。目前我也没有找到很好的解决方法。。

      Reply

  49. ccheng

    ccheng on #

    博主,你之前也用vim开发过java吗?那你用代码补全吗,我现在一直没在vim里面找到好的java补全插件

    Reply

    1. Dante

      Dante on #

      嗯, 很早很早了。。有一个叫 Vim Intellisense 貌似可以做到,当时还测试过。

      Reply

  50. lemon

    lemon on #

    这个都是在linux下的么?我下载的ctags-5.8居然是rpm文件,windows下不会用.请教一下,因为我刚接触vim

    Reply

    1. Dante

      Dante on #

      windows下也有ctags的,google一下吧,地址我记不清了。。

      Reply

      1. lemon

        lemon on #

        呵呵,谢谢回复~这几天一直在弄,已经都整好了,再次感谢

        Reply

  51. happypeter

    happypeter on #

    http://happycasts.net/episodes/1
    一个ctags视频

    Reply

    1. Dante

      Dante on #

      看了一下,讲的太浅了,不过对入门的朋友很有帮助。

      Reply

      1. happypeter

        happypeter on #

        感谢关注,在revised版里我会在丰富一些内容的。

        Reply

        1. Dante

          Dante on #

          不客气,加油!欢迎分享!

          Reply

        2. happypeter

          happypeter on #

          Here comes the revised version:

          http://happycasts.net/episodes/25

          Reply

  52. wayn

    wayn on #

    ls好,我问下,有没有哪个补全插件能提示整个tags文件中的function,我现在用的acp阿,neocomplcache阿,都是只能自动提示vim打开的文件中的function阿。求助ing.

    Reply

    1. Dante

      Dante on #

      C-X C-O 不行么?

      Reply

    2. happypeter

      happypeter on #

      try `:ptag your_function_in_tags_file`

      Reply

  53. JLQSheenero

    JLQSheenero on #

    为什么我在.vimrc中加入autocmd BufEnter * lcd %:p:h之后,重启vim,编辑一个文件,用pwd查看当前目录,发现还是启动vim时的目录。但是如果在vim中直接执行autocmd...之后效果是正常的

    Reply

    1. Dante

      Dante on #

      加上echo看看是否执行了?

      Reply

  54. xxx

    xxx on #

    请问按不显示C代码函数列表只显示一个窗口,但-vimrc文件可以显示函数列表是怎么回事啊??

    Reply

    1. xxx

      xxx on #

      少打了个F3

      Reply

  55. ypchenry

    ypchenry on #

    你好,我在ubuntu12.04下配置home下.vimrc,syntax enable syntax on filetype plugin indent on 等等后,把vim安装目录下的c.vim cpp.vim等复制到~/.vim/ftplugin/下,不能显示C 语言等语法高亮 ,请问您知道怎么解决么?(加环境变量export TERM=xterm-color也不行)

    Reply

  56. Y--

    Y-- on #

    博主你好,
    我在win 下用gvim,当我按v切换到“可视模式“后,光标从方块变成了竖线,而这个竖线是停在方块所选的字的左边,所以,如果只想要选中某一行的最后一个字,好像不行。而在linux下,光标在可视模式下还是方块。
    请问,能否把在win下的GVIM的可视模式下的光标变成还是像linux那样还是方块 。

    Reply

  57. Y--

    Y-- on #

    补充请教,
    现在会把光标变成方块了。
    不过本质问题还是没有解决。

    就是windows下,gvim,可视模式下,方块停在的那个字符,如果向左选的话,这个字符是选不中的。向右选是选中的。

    好像在Linux下,不管是向左还是向右,当前字符是选中的了吧。
    如何跟linux一样呢?

    Reply

    1. Dante

      Dante on #

      我在windows试了一下是正常的哦,你是不是对光标做了配置。

      Reply

      1. Y--

        Y-- on #

        -_- 果然,win下gvim默认有一段vimrc的,非常感谢博主~

        Reply

  58. zhangqin

    zhangqin on #

    博主,你好,请问这个是什么问题 E488: Trailing characters 呵呵

    Reply

    1. Dante

      Dante on #

      呃,一般是字符不对

      Reply

  59. wing

    wing on #

    博主你好, 你的文章相当实用.
    这次有问题请教:
    我在运行lua, python之类的程序时候, 一般是以 :!lua % 之类来启动的, 但是有时候需要在运行的时候再查看源码, 这时候切换回来就卡的要命...
    然后我想到的是以:!start lua % 来解决... 但是这回不但命令增长了,还要添加额外的语句来让程序停下来.
    请问您有碰到这样的问题没? 应该如何解决?
    谢谢了 :)

    Reply

  60. Mocker

    Mocker on #

    windows下,cd到工程目录无法生成.out,cscope: no source files found,神马情况。只有files文件

    Reply

  61. Mocker

    Mocker on #

    找到问题了,貌似是中文路径的问题

    Reply

  62. xxx

    xxx on #

    见过的最烂的教程,没有之一

    Reply

    1. Dante

      Dante on #

      如果想学别人东西的人都是你这种态度,我很担心互联网上是否还有人愿意分享。

      Reply

  63. xcxinghai

    xcxinghai on #

    你好,看了您的博客,现在c++的代码终于可以自动补全了。但是在补全的代码的时候还有点缺陷。就是弹出的选择的函数的背景颜色是粉红色,选择哪一个函数则是黑色,而我的vim的背景颜色是黑色,所以,最上面喝最下面的函数被选择时,看得很不明显。不知到可不可以自己设置颜色,补全时候的背景?

    Reply

    1. Dante

      Dante on #

      可以换个配色,比如 wombat

      Reply

  64. quhuazhou

    quhuazhou on #

    博主你好,这个文章非常好,我想问下taglist.vim在哪个地方可以下载,谢谢了~

    Reply

  65. quhuazhou

    quhuazhou on #

    博主请问我读的是android4.1.4的文件系统,如果文件系统更新了,cscope.files和tags也要重新生成么,由于文件系统太大,可不可以只找到改动的地方然后只为改动的地方更新上述2个文件

    Reply

    1. Dante

      Dante on #

      我现在已经基本不用cscope了,只用ctag,ctag是支持单独生成某个目录的tags再加载的

      Reply

  66. fouvy

    fouvy on #

    建议楼主把
    map :silent! TlistOpen "按下F3就可以呼出了
    这样呼出来之后就可以选择跳到哪个函数拉,(*^__^*) 嘻嘻……

    Reply

  67. book

    book on #

    博主你好,请问你使用的是shell下的vim,还是gvim呢?在shell下用vim,像ctags定位之类的会不会很不方便?

    Reply

  68. lyj

    lyj on #

    您好,看了您的教程,收益颇多,我这里出现了问题,麻烦您解答一下,在vim下敲击F12后,vim会白屏,不知道这是什么状况?

    Reply

  69. 番茄红素

    番茄红素 on #

    貌似效果很不错

    Reply

  70. 土豆

    土豆 on #

    求教:我在虚拟机上装了个ubuntu 10.10,上面默认安装的不是ctags,而是etags,这样对咱们的脚本有影响么?
    自动安装时会把ctags自动添加到path里吧??

    Reply

    1. Dante

      Dante on #

      没试过。。。

      Reply

  71. qij

    qij on #

    d

    Reply

  72. Danny

    Danny on #

    请教,我在好几层下用VIM中的Ctrl + ]跳转说找不到这个函数,因为这个函数定义在上上层的另一个文件夹的文件中,请问博主如何解决啊?
    我试过在项目的根目录执行ctags -R,可是不管用

    - -!

    Reply

  73. 迷城幻境

    迷城幻境 on #

    博主你好 请教一下 装了ctags和cscope之后并在.vimrc中配置了 为什么一点F12vim就会白屏?而且用鼠标在空的区域内选取就有可以看到了.

    Reply

  74. vvyang

    vvyang on #

    博主,你好,按照你的分享设置VIM,感觉不错,这里第49行,貌似多了一个双引号(“),在mac下ctags没有-R参数,需要从新安装一个。还有我这跟lyj和迷城幻想一样,使用F12之后,会白屏,不知道怎么回事。

    Reply

    1. 波儿

      波儿 on #

      白屏的解决办法:

      在上面的Do_CsTag()函数的函数体最后一行插入:
      execute "redraw!"
      建议博主大大也把这句加入您的代码示例中。

      Reply

  75. icewater

    icewater on #

    g:vimrc_iswindows
    g:iswindows
    这两个变量名不一致,下面Do_CsTag()中语句
    if(g:iswindows==1)
    调用g:iswindows变量是否应改为
    if(g:vimrc_iswindows==1)

    Reply

  76. icewater

    icewater on #

    感谢楼主花时间分享vim教程
    g:vimrc_iswindows
    g:iswindows
    这两个变量名不一致,下面Do_CsTag()中语句
    if(g:iswindows==1)
    调用g:iswindows变量是否应改为
    if(g:vimrc_iswindows==1)
    这个问题搞了我好长一段时间,改回来之后按F12就可以生成tags,
    再次感谢

    Reply

  77. belonger

    belonger on #

    博主 你好 , 我照你的方法做了。但是在代码补全时提示 “报全能补全(^O^N^P)找不到模式)”,在我的代码根目录下都生产了*out tags 等文件了

    Reply

  78. Willie

    Willie on #

    博主,你好,我照着你的教程设置到2后,按下F12后没反应,然后在命令行下提示的错误信息为:ctags: Warning: cannot open source file "myfile" : No such file or directory
    想请问你一下,我这个问题是出在哪里,我没有建有“myfile”啊,我试着找了很多资料,但是没有解决,所以想请教你一下!谢谢!

    Reply

  79. 火冷

    火冷 on #

    请问这里能搜索博文吗?有方法能方便地找到打造IDE的第1篇?

    Reply

    1. Dante

      Dante on #

      右上角可以了。。之前不小心把搜索框搞丢了。

      Reply

      1. 火冷

        火冷 on #

        哈哈,网上都说youcompleteme很好用,博主没去试??还想找这个插件的windows版安装教程哈

        Reply

        1. Dante

          Dante on #

          试过,是还不错,做了很多优化来提升提示的速度,但是感觉还是太卡,就卸载掉了。

          Reply

          1. Ocean

            Ocean on #

            博主你好,本人新手,在配置的时候把你的代码粘帖了过来,按F12后不会加载出来,终端上闪过 ctags:warning:cannot open source files ".mozilla.firefox/..." 还有能不能详解一下怎样将执行程序加入环境变量,十分感谢

            Reply

  80. 岩会

    岩会 on #

    念洋,检查配置用的变量为:g:vimrc_iswindows在后面使用的时候,使用的是:g:iswindows

    Reply

  81. huhuhaha

    huhuhaha on #

    首先确认安装了ctags和cscope,咋安装啊,说明白点行不?

    Reply

  82. sed2x

    sed2x on #

    [?1049h[999;999H[6n[1;1H[J[2;1H~[3;1H~[4;1H~[5;1H~[6;1H~[7;1H~[8;1H~[9;1H~[10;1H~[11;1H~[12;1H~[前有&lt;-好像是回车符行号连起来了,qiuzhu ? huifu EMAIL 也可

    Reply

  83. huixinming

    huixinming on #

    Hi,博主你好,想请教下为什么我的显示不出来函数列表,我按F12生成了tags,然后按F3,提示“:silent! Tlist”,但就是不出现函数列表,源文件所在的目录也没有中文字符~

    Reply

发表评论