好了,接着前面的两篇,我们今天来写《把VIM打造成一个真正的IDE》系列的终结篇。
我们之前已经让在VIM下看代码变得方便与简单,现在我们来让用Vim写代码也一样方便~看完本篇之后,你就可以完全抛弃sourceinsight之类的工具啦~
3)omnicppcomplete.vim
实现写C/C++语言时自动补全 下载插件
惯例,先截图:
其实使用很简单,下载 omnicppcomplete 然后按照说明将插件安装到vimfiles下面,目录结构如下:
after\ftplugin\cpp.vim
after\ftplugin\c.vim
autoload\omni\common\debug.vim
\utils.vim
autoload\omni\cpp\complete.vim
\includes.vim
\items.vim
\maycomplete.vim
\namespaces.vim
\settings.vim
\tokenizer.vim
\utils.vim
doc\omnicppcomplete.txt
然后需要生成tags,哈哈,记得我们之前用F12映射的命令吧(把Vim打造成真正的IDE(2)),按下F12然后去享受吧~~
顺便说一下:omnicppcomplete会打开一个预览窗口来提示变量定义,如果不想要看到详细的信息的话,在vimrc中这样配置:
set completeopt=menu
4)NERD_commenter.vim
注释插件 下载插件
也是程序员非常实用的一款插件,支持各种语言的补全,只要你能想到的,放心他绝对注释的了,而且还支持单行注释,批量注释,等各种命令映射,在这里,我把最常用的键映射在vimrc中配置了一下。
"对NERD_commenter的设置
let NERDShutUp=1
这样的话,在光标所在行上,按下一次ctrl+h是注释,再按下一次是取消注释。 而其内建的指令,cm是多行注释,类似C++的/**/,,cu是取消注释。
5)DoxygenToolkit.vim
由注释生成文档,并且能够快速生成函数标准注释 下载地址 这个插件使得vim能够生成标准的函数注释,如图:
map fg : Dox<cr>
let g:DoxygenToolkit_authorName="dantezhu"
let g:DoxygenToolkit_licenseTag="My own license\<enter>"
let g:DoxygenToolkit_undocTag="DOXIGEN_SKIP_BLOCK"
let g:DoxygenToolkit_briefTag_pre = "@brief\t"
let g:DoxygenToolkit_paramTag_pre = "@param\t"
let g:DoxygenToolkit_returnTag = "@return\t"
let g:DoxygenToolkit_briefTag_funcName = "no"
let g:DoxygenToolkit_maxFunctionProtoLines = 30
读者可以需要将 DoxygenToolkit_authorName设置成为自己的名字,OK,这样标准格式的代码注释就出来啦。
5)a.vim
.cpp和.h文件快速切换 下载地址 把下载的a.vim放到plugin下,不需要配置。
直接可以:A,打开.cpp和.h对应的文件,:AV,打开.cpp和.h对应的文件,并且分屏,截图如下:
OK,如果你按照我的说明将vim配置了下来,那么你的vim应该已经是一个超级强悍的IDE啦,快去写写代码试试吧,是不是和之前很是不同了啊,哈哈。
isunbo on #
3篇文章都看完了,但还是有些问题,showfunc.vim插件完全没有效果,omnicppcomplete.vim插件也有问题,提示" -- 全能补全 (^O^N^P) 找不到模式",a.vim插件,使用":AV"命令时新窗口出现在左侧.
只有注释插件能正常使用.
我在用户变量里是这么写的path=D:\ConsoleTools;D:\MinGW\bin;
ConsoleTools目录里有ctags.exe和cscope.exe
cscope是在http://sourceforge.net/projects/mslk/下载的.有3个文件(cscope.exe和regex2.dll和curses2.dll)
Reply
Dante on #
嗯啊,关于omnicppcomplete的问题应该是没有生成tags……一定要按照我给的那个命令生成啊,直接!ctags -R 生成的是没有用的。a.vim是默认在左侧分屏哦,好像有配置是可以改的,具体我没有去看,感觉应该够用了,你可以看一下它的官方介绍~ 环境变量应该配置的没有问题,按F12没有效果吗?
Reply
yelo on #
你好
能晒晒你的vimrc吗?
Reply
Dante on #
哇咔咔,当然啦,最近就打算写出来啦~~应该就这几天啦~嘿嘿
Reply
absolute8511 on #
在Vim里面编译和调试的功能啥时候介绍阿,还有svn等等,期待ing
Reply
Dante on #
哈哈,感谢支持啊,vim中编译调试已经有一篇文章哦:
http://www.vimer.cn/2009/10/11.html
关于调试和svn两个功能实际上我之前都有用过相关的插件,但是当时插件还不成熟,所以就没有再细究,这一点倒是提醒了我哦,我一定会安排时间梳理下这些相关功能滴~~ 嘿嘿
Reply
iam070 on #
你好,我是vim新手。我看到你的这篇文章,讲的
omnicppcomplete的插件,我下了插件,里面只有3个目录doc autoload after,没有你说的那个目录结构里的文件啊。
/////////////
after\ftplugin\cpp.vim
after\ftplugin\c.vim
autoload\omni\common\debug.vim
\utils.vim
autoload\omni\cpp\complete.vim
\includes.vim
\items.vim
\maycomplete.vim
\namespaces.vim
\settings.vim
\tokenizer.vim
\utils.vim
doc\omnicppcomplete.txt
//////////////
Reply
iam070 on #
我知道了,你这个没有正确缩进=.=
不过我的omnicppcomplete的插件依旧没有正常工作, 难道跟supertab插件有关?
Reply
Dante on #
呃,没有尝试过supertab,我觉得c-x c-o挺好的……,你确定tags正确生成了吗?
Reply
iam070 on #
昨天晚上再弄了一下,弄好了,原先功能已经生效了的,但我没有意识到是oni---的作用=.=
对了,你在 打造 IDE(2)那篇文章里提供的 showfunc.vim 有点问题,怎么弄都不可以使用,最后下了原版的echofunc.vim 才可以的。
Reply
iam070 on #
还有 map fg ,这个fg到底是指那个功能键?
Reply
Dante on #
汗,没法再嵌套了,fg就是普通模式下,按fg两个字母……
Reply
iam070 on #
我想自动补全c语言标准库函数,补全插件已经装好了,现在就是需要添加标准库函数的tags,不过我一直没弄好。
到include执行ctags -r *.*,把得到的tag,挪动到VIM目录下的tags/stdlib中,然后在_vimrc文件末尾添加 set tags+=/$VIM/tags/stdlib
不过这样不行。
不知道哪里错了,你有什么教程吗?
Reply
iam070 on #
原先的步骤已经有错误,不过参照你的让C++支持STL自动补全,可以显示STL,但C语言标准库还是不行
Reply
Dante on #
呵呵,这个本来就是补全C++ STL库的,不知道C补全的具体意思是指?
Reply
iam070 on #
我知道是你的那篇文章是针对C++STL的,不过我只使用c,所以想针对c语言的标准函数库做一个补全tag,结果没有成功,不知道为什么。
Reply
iam070 on #
问题出错在我原先给的include文件补全,所以没法生成正确的tags.
现在好了,哈。
对于自动补全,现在试验了几个插件,感觉
autocomplpop+code_complete不错,原先的supertab会跟code_complete冲突。。
可以看看这个链接http://hi.baidu.com/timeless/blog/item/cb4478f09a1563ca7931aa5d.html
现在还有几个问题,
1、跟code_complete的tab还是有冲突,我想把链接中设定的 按Tab键在补全菜单中选择 改为按SHIFT键,不知道为何貌似不存在,只有这样的。。
2、在插入模式下,如何快速的移动光标?比如到行首和行尾。是不是需要自己绑定,比如<c- 移动到行首
Reply
ideepblue on #
omnicppcomplete.vim
只是复制文件就够了么?不用设置别的?我复制了文件。然后怎么使用?
NERD_commenter.vim
我放在$VIMRUNTIME\plugin 下了,vimrc也编辑了可是使用起来没效果……Ctrl + H无用 cm也不行
难道有其他设置么?
望博主答复~谢谢~
Reply
MadPer on #
NERD_commenter.vim的话,是不是要在vimrc里加上
"对NERD_commenter的设置
let NERDShutUp=1
"支持单行和多行的选择,//格式
map ,c
上面四行?博主有提到,是不是您忘了?
如果还是不行,不妨试试comments.vim 这款插件,直接复制到插件目录就行,ctrl+c是注释,ctrl+x是取消注释,支持多种文件,支持批量注释~
Reply
Dante on #
突然想起来,你是不是文件类型检查没有打开呢?
filetype plugin on
Reply
ideepblue on #
没开这个……单行注释解决了,可是多行注释cm不行……
Reply
Dante on #
呵呵,需要你打开的文件类型支持多行注释才行哦,比如C++,但是python的话就不支持的~~~
Reply
ideepblue on #
C不支持多行?
python不支持有点遗憾
Reply
Dante on #
C肯定支持呀……
你是不是没有输入对命令?
,cm
Reply
ideepblue on #
,cm 晕 我直接cm的…… 博主你应该加一下引号
Reply
iMadper on #
python不支持这个是python自己的问题...想多行注释python的话就ctrl + v,选种你要注释的那些行,然后shift+i,然后输入#,然后安两下esc...更简单的就是用comment.vim插件,直接在普通模式下,输入数字(你要注释的行数)然后ctrl+c,当然了,也可以选中你要注释的文字,然后再ctrl + c. 不过这个只不过是把那些语句都用单行注释给注释了罢了...不算是多行注释...不过用这个插件注释c的时候用的是多行注释的说~
Reply
Rapunzel on #
nerd comment这个设置好了
刚看过filetype也是开着的
但是ctrl+h还是没有反映
到底是为什么呢
望回答 谢谢
Reply
ideepblue on #
博主又有新问题了……
omnicppcomplete.vim这个
filetype plugin on
set nocp
也有写在vimrc中
omnicppcomplete压缩包中三个目录,放在~/.vim/ 下,放在 ~/.vim/vimfiles 都试过了 ^X^O的结果就是找不到模式
是说omnicppcomplete只能匹配 "." 或者 "->" 或者 Class 的东西么?不能匹配函数?
Reply
Dante on #
呃,我也只匹配类内部的函数,单独的C函数的话,好像确实匹配不了。
Reply
ideepblue on #
有个问题很诡异 同一套配置文件vimrc 在win gvim下c++的public private protected关键词都能正常高亮
但是在linux vim下 只要public加了":"冒号,高亮就消失了,win下没消失
何解?博主碰到过么?
Reply
Dante on #
呃,会这样吗?从来没有遇到过呢,是不是vim的版本不一样?
Reply
ideepblue on #
呃 我知道了 配色方案的问题……杯具
Reply
张慧聪 on #
能否再介绍一下怎么把gdb揉进去?
Reply
Dante on #
嗯啊,因为自己一直没有用过集成gdb的需求,所以一直没有试过,已经好多朋友问过我这个问题了,还有集成svn操作,呵呵,我一定抽时间写一下~
Reply
iMadper on #
有个vimgdb插件的,不过要在编译前加上个补丁.看你嫌不嫌麻烦了.
Reply
Dante on #
呃,其实我真的觉得,用Conque Shell更简单一些……
Reply
Nelson on #
博主啊,,最近刚开始在Linux下用vim,有个很郁闷的问题想请教一下你哈、
关于那个set mapleader = “,”,我的vimrc是完全按照那位史上最牛的vimrc做的,为什么我这个 功能好像失效了。
就是在普通模式下按任何与有关的mapping都不行,例如e: e ~/.vimrc中,按“,e” 进入不了.vimrc,很郁闷啊。。。
博主有什么建议吗??
Reply
Nelson on #
补充一下刚才的帖子,
按任何与有关的mapping都不行,例如e: e ~/.vimrc中
Reply
Nelson on #
哇,,,为什么我写的“ ” 都不见了,,奇怪
Reply
Nelson on #
博主,我终于找到问题了,原来我装了两个VIM,我一直在修改的是另外一个VIM的vimrc,囧
Reply
Dante on #
呵呵,我出去刚回来……
找到问题就好啊,wordpress会自动转义",是挺奇怪~~
Reply
Lees on #
楼主你好,我想问一下在windows下用VIM能够断点运行么?能的话能否告之?谢谢了
Reply
Dante on #
呃,好像是有一个和gdb结合的插件,不过我没用过,可以goolge一下看看~~
Reply
Lees on #
哦,谢了,我去找找看
Reply
执着的初心 on #
三篇看完了 感觉没啥帮助啊。
vim能不能直接调用一个tcl文件,或者是do文件,或者批处理文件?
并且把cmd返回的信息显示出来?
Reply
Dante on #
呃,我遇到需要命令回显的情况都会直接在vim脚本中使用python(vim原生支持python脚本),用纯vim脚本调用命令还要抓取回显的数据还真没试过。
Reply
Dante on #
呃,没说完,python中用popen,呵呵
Reply
渡水的疯子 on #
请问omnicppcomplete能否对自定义的类在::后补全类成员,比如自定义Class A,然后在输入A::的时候补全A中的成员。我已经设了let OminiCpp_MayCompleteScope=1,对于STL中的类如string::均有补全提示,自定义的不行。
Reply
Dante on #
肯定可以啊,我一直是这样用啊,只要生成一下tags就可以了。
Reply
渡水的疯子 on #
.和->都可以,但是在Myclass::后就是提示找不到模式
Reply
Dante on #
我试了一下没问题。
#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
class A
{
public:
static int f;
};
int main(int argc, const char *argv[])
{
A::f = 1;
return 0;
}
你忘记写static了吧
Reply
渡水的疯子 on #
嗯!帮助文档中中漏看了这一项,默认是根据当前域决定补全那些内容,类定义外确实要static的,不过设了DisplayMode=1就搞定了,多谢指教!
Reply
patience on #
楼主你好:
安装了omnicppcomplete后,为什么不能自动弹出匹配窗口呢?命令窗口中提示“用户自定义补全(^U^N^P)找不到模式”,必须按下才能弹出匹配窗口。
Reply
patience on #
补充:
按下ctrl-x ctrl-o才能弹出匹配窗口,不自动弹出。
Reply
Dante on #
其实我倒是觉得不自动弹出比较好哦,自动弹出的话会感觉比较卡。
如果要实时匹配的话,建议试一下NeoComplCache,对输入速度的影响比较小。不过即使这样我也不太喜欢自动匹配。。。
Reply
patience on #
确实如此,现在设置好了自动弹出,感觉挺烦的~~~
Reply
zybest on #
为什么我装了omnicppcomplete.vim后,出现如下错误:
处理 /home/king/.vim/plugin/after/ftplugin/c.vim 时发生错误:
第 2 行:
E117: 未定义的函数: omni#cpp#complete#Init
处理 /home/king/.vim/plugin/after/ftplugin/cpp.vim 时发生错误:
第 2 行:
E117: 未定义的函数: omni#cpp#complete#Init
处理 /home/king/.vim/plugin/autoload/omni/cpp/complete.vim 时发生错误:
第 12 行:
E117: 未定义的函数: omni#cpp#settings#Init
第 13 行:
E121: 未定义的变量: g:OmniCpp_ShowScopeInAbbr
E15: 无效的表达式: g:OmniCpp_ShowScopeInAbbr
第 14 行:
E121: 未定义的变量: g:OmniCpp_ShowPrototypeInAbbr
E15: 无效的表达式: g:OmniCpp_ShowPrototypeInAbbr
第 15 行:
E121: 未定义的变量: g:OmniCpp_ShowAccess
E15: 无效的表达式: g:OmniCpp_ShowAccess
请按 ENTER 或其它命令继续
望博主指点下,谢谢:)
Reply
Dante on #
不可能呀?能说下操作系统,vim版本?
Reply
zybest on #
ubuntu 10.10
vim 7.2.330
Reply
Dante on #
。。7.2应该也没问题的,我之前一直在用。。
你是全部解压到.vim目录吗?不会少cp了文件吧?
Reply
zybest on #
我是在.vim中解压的,应该没有吧,不过我想问下
after\ftplugin\cpp.vim
after\ftplugin\c.vim
autoload\omni\common\debug.vim
\utils.vim
autoload\omni\cpp\complete.vim
\includes.vim
\items.vim
\maycomplete.vim
\namespaces.vim
\settings.vim
\tokenizer.vim
\utils.vim
doc\omnicppcomplete.txt
这个目录里的.vim文件是要自己从网上下了放进去吗,我解压完omnicppcomplete后,每个目录里就已经有对应的vim了,但是都是只有几行简单的代码,我怀疑是不是这里我没弄明白
Reply
blindsniper on #
博主请指教,在xp, vim73下:
配置了filetype plugin on
也按照你的配置做了:
let NERDShutUp=1
"支持单行和多行的选择,//格式
map ,c
但是NERD_Commenter仍旧完全不起作用,在visual模式里无法输入逗号这个命令,这是为什么呢?
Reply
Dante on #
不好意思,这个插件现在已经更新了。。不能这样映射了。。
你直接用,cc之类就可以进行注释了。
Reply
blindsniper on #
悲剧,原来是我没有设置let mapleader = ",",所以逗号一直不起作用,谢谢啦
Reply
langford on #
Hi,您好,那个vim注释插件的快捷健需要如何映射的,我按照默认的配置,注释不起作用,请指教!
Reply
Dante on #
默认,cc就是可以用的,你尝试打开一个.c的文件试一下?
Reply
yyzhou on #
想问问通过ssh链接主机的方式
代码提示能出现么?是不是必须得是GUI界面的才行啊?
Reply
Dante on #
可以,我一直是这样用的。
Reply
springlie on #
只对于C/C++而言,omnicppcomplete插件与vim自带的new-omin-complete的区别大吗?
Reply
Dante on #
new-omin-complete?
vim的万能补全是要自己写函数的吧?所以有了omnicppcomplete,我的理解是这样,不知道对不对。。
Reply
Yarkee on #
照着本文使用ctags,发现用F12键来生成tags文件要等很久很久很久。后来才突然发现,我直接在家目录上按F12,于是,ctags要为整个家目录下所有文件生成tags,一个tags文件32M……
Reply
依云 on #
不得不说,你很有耐心。。。。我不止一次没注意当前目录,等了几秒不耐烦了才发现不对,Ctrl-C!
Reply
gadmyth on #
如果java的omnicomplete能像omnicppcomplete一样强大就好了
Reply
Dante on #
我记得大学学java的时候,用过一个windows下的插件,对java补全的支持很好,不过后来不用java,就都删掉了。。。我找找看还能想起啥名字不。。
Reply
依云 on #
vjde 或者 javacomplete?
Reply
Dante on #
想起来啦,貌似是
Vim Intellisense
印象中对java的支持还不错。。
Reply
yjjlyyj on #
博主,我想问下我把omnicppcomplete装好后运行CTAGS后,那里只能自动弹出 struct的。像vector之类的都弹不出,是不是我装的不对呀~
Reply
yjjlyyj on #
可以了,看了博主另一篇文章~~
Reply
Richard27 on #
你好,请教个问题?不知你的cscope功能用得怎样?我在使用时始终不是很顺手
Reply
Dante on #
你好,2年前是有用过的。
后台觉得很多功能上有缺陷,所以只是用ctags了。
如果需要查找调用方,就直接vimgrep了。。
Reply
Richard27 on #
感谢你的答复,确如你所说,我在使用时,也遭遇了很多不便,ctags倒是不错,能自动更新,不过毕竟功能有限,用vimgrep代替csope查找函数引用貌似不能实现准确搜索吧?你是直接把函数名当作简单的字符串来处理的吗
Reply
fanhe on #
cscope 对c++的支持不怎么样, 我一般用cscope直接搜索符号的.
Reply
Dante on #
嗯……搜索的时候实在不行就用上正则…,基本还是够用的。
Reply
fanhe on #
IDE, 我写了一个, 现在刚好能用, 暂时支持 Linux, 后续慢慢完善功能啥的. http://www.vim.org/scripts/script.php?script_id=3647
Reply
Dante on #
不错~~加油!
Reply
小杨 on #
omnicppcomplete目录下的.vim不知道往哪丢, 是全部丢:usr/share/vim/vim72/目录下与之目录名相同的目录, 还是.vim文件全丢usr/share/vim/vim72/plugin下啊, 搞晕了...不过按F12当前文件目录下有tags生成...?!先谢了, 大侠...
Reply
Dante on #
.vim相当于windows下的vimfiles哈。这样应该就能理解了吧?
Reply
小杨 on #
用的是ubuntu, 那ominicppcomplete下的目录放:
“/home/user/.vim/“, 这样对吧....?!
不过这样放了以后, 没看到效果啊...TnT
Reply
小杨 on #
为什么在gvim下打开某目录下的文件时, 没有路径自动补全呢?!
例如要找开:/home/username/index.cpp
在gvim下:
:o /home/username/inde(此时按Tab, 目录下以inde前辍开头的文件只有index.cpp), 没有补全, 什么原因啊..?!
Reply
Dante on #
使用 :e xxx 吗?
Reply
小杨 on #
呵呵,前加e:/home/...这样就可以了, 还是经验不够哇...^^
Reply
More.YU on #
<pre lang="cpp" line="1">
HI,VIMER,最近又在弄VIM,看了你的VIM打造IDE系列,大部分功能都做出来了,不过现在有个缺陷,
就是“自动补全功能”没全部弄好。
我现在可以自动提示当前文档中定义过的字符串或者函数,但是我想加上更多的自动提示,
例如ASCII C中的东西,就比如我键入prin时,能够提示出printf这样的功能,我用ctags在VC的include
目录下生成了tags文件,拷贝到了vimfiles下的tags目录,并且在vim配置文件中添加了这段:
set tags+=D:\Program\Vim\tags\c_tag,但依然无法提示。
另外,我将WDK的头文件也生成了tags文件(28M貌似有点太大),同样的,加了这个配置:set tags+=D:\Program\Vim\tags\wdktags,比如我键入Rtl时,必须按Ctrl+P,才会提示所有包含这个关键字的函数,却不能自动提示。但同时也表明了我某些地方已经配置对了是吗?
我按照你配置的F12快捷键生成,貌似生成的是当前文档的tags文件么?那么这样的话,岂不是每写一会就要按F12生成一下么?而且,直接在项目的目录下生成这玩意儿,岂不是在源文件中多了几个对非VIM用户来说毫无用处的文件么,可否将这些文件归类呢?
问题有点多,麻烦VIMER了。。
</pre>
Reply
Dante on #
先说一下F12的问题,vim生成tags一般是为那些常用不变的库来用的。。如果想要实时生成,可以做一个定时器,cronttab就可以解决。
对于补全这里,看一下这篇文章:
http://www.vimer.cn/?p=768
Reply
noark9 on #
你好,请教个问题
公司用的是pro*c的程序,扩展名是pc文件,使用下面方法将pc文件映射为了esqlc类型的文件
autocmd BufEnter *.pc set filetype=esqlc
我修改了taglist.vim和生成tags的配置,确实可以生成配置和taglist了,但是在使用自动补全插件的时候,如果无法找到成员,根据网上搜到的结果,增加了下面这一句
autocmd FileType esqlc set omnifunc=ccomplete#Complete
但是似乎还是没有效果
但是.c文件可以正常识别和查找到结构体成员
Reply
noark9 on #
补充一点,再试了下,发现使用映射的F12第一次生成tags文件后,可以正确找到结构体的成员,但是关了vi再开,就找不到了
Reply
Dante on #
pro*c补全没有研究过,我觉得你还不如就直接 setf c 简单些。
关了vi再开找不到,你确定是在统一目录打开的文件吗?或者手工设置:
set tags+=xxx/tags
Reply
noark9 on #
设置过tags了,似乎用可以把所有的符号搜索出来,就失败了
设置为c类型确实补全什么的都有了,但是有的关键字是esqlc里面有的,这样语法着色就没了
额,虽然想过改c的语法着色的文件,但是,觉得这种不是比较完美的解决方法
Reply
lworld on #
关于autochdir和pwd的问题:
当直接点击位于e:\\homework\\hell\test.cpp用Vim打开时,用pwd命令显示的是目录e:\\homework\\hell\,没有问题。但是。。当我直接点击快速启动栏运行vim,输入:e e:\\homework\hell\test.cpp后在接着输入pwd检查当前工作目录是竟然现实的只是E:\\,
(_vimrc中已经有set autochdir,filetype indent plugin on等设置),实在搞不清楚,如果有时间的话,希望博主可以帮忙,谢谢
Reply
lworld on #
啊,终于解决了!!!原来需要把”e:\\"改成"e:\",Vim才 会认为该文件是从文件管理器启动,并把当前目录(可用
:lcd 命令查看)切换到文件所在目录
Reply
Dante on #
解决了就好呀~
其实可以尝试一下用/,即使在windows下,vim也会认为可用的~~
Reply
松暮囧 on #
关于自动补全的,tags文件在哪里生成?写完类之后生成吗,我生成了,但是还是找不到模式。
Reply
Dante on #
一般是生成在当前目录。你看一下是否有tags文件。
Reply
松暮囧 on #
谢谢,已经解决了
Reply
zl on #
你好,我想实现LUA语言的自动补全功能
请问能用你说的方法实现吗?
又能生成LUA语言tags的工具吗?
仅仅做代码补全的话,Cscope还是必须的吗?
望解答下,多谢!!
Reply
testory on #
LZ问下,那个omnicppcomplete安装是怎么装的额,哪些文件放在哪些目录下,木有看太明白的说。。
Reply
fcb on #
博主,你好。你的文中写到“然后需要生成tags,哈哈,记得我们之前用F12映射的命令吧(把Vim打造成真正的IDE(2))”。可是我的(把Vim打造成真正的IED2)中并没有看到介绍F12映射的命令。所以请问如何生成tags
Reply
Dante on #
嗯?就是这一段呀:
首先确认安装了ctags和cscope,并且确认这两个可执行程序所在的目录已经放进环境变量里面。(必须做,否则后边都无法操作)
在vimrc中配置如下:
Reply
fcb on #
哦,看到了,谢谢!
Reply
jy on #
hi,关于a.vim的跳转,博主有没有遇到过这种情况:
src/A.cpp
inc/A.h
-------这样OK,但是
src/dir/A.cpp
inc/dir/A.h
多了一层(或者若干层)目录,这样就切不过去了(表现为跳转到一个空文件)
Reply
Dante on #
嗯,多了一层之后确实就不行了。
这个恐怕只能通过改代码解决了。
Reply
Likecer on #
请问是在omni的那些*.vim里面吗?
Reply
Likecer on #
说错了~应该是:
请问是在omni的那些*.vim里面吗?
homepath是指的用户文件夹吧,还是VIm安装目录?
Reply
Dante on #
呃,我不太明白你的意思。。
你说$HOME 吗?
Reply
Likecer on #
《F12》这个发不上去……
请问是在omni的那些*.vim文件里面《F12》生成Tags吗?
还有就是%HOMEPATH%是指用户文件夹吧
谢谢了
Reply
Dante on #
tags是为源代码文件生成哈,比如cpp文件
至于homepath我有用到这个变量吗?
Reply
Likecer on #
但是请问,我安装了ctags,设置好了path环境变量指向exe,cspose也是,但是在*.vim里面,《F12》一下木有反应呢?
Reply
Dante on #
呃,当前目录下得有源码文件才行。。
Reply
nony on #
你好,多项目引用时,我在tags文件中已经看到了其他项目的函数,可是在我自己的项目中却没有办法自动补全该函数。
请求帮助,谢谢
Reply
Dante on #
嗯?如果命令和我写的一样的话,那就不知道是啥问题了。。并没有深入研究过tags的格式。。
Reply
小杨 on #
一个类,两文件,一头一实现,怎么跳到实现文件里包含的其他头呢...?!
Reply
Dante on #
:ts 可以选择
Reply
小杨 on #
可选择的都是当前目录及子目录下的匹配的文件列表.
如果是系统下的头就跳不过去了...像/usr/local/include下的...TnT
Reply
希尔博 on #
博主说的omnicppcomplete插件智能用快捷键来激发补全吗? 不能用“. -> ::" 来自动机发麻?我按装了,您的关于IDE的三篇文章都看遍了,但是自动提示始终激发不了。
Reply
小杨 on #
set completeopt=menu
设置了后当写"free("还是会用/usr/include/stdlib.h
的Preview, 因为使用了cscope + ctags...
网上查了下, set completeopt=menu
set completeopt-=preview后, 就不会有系统的声明preview, 但按下F12, 生在tags和cscope文件后, 仍会有preview....
是不是cscope+ctags生成时搜索了呢?
Reply
Dante on #
理论上是这样的,你看一下completeopt是否成功设置了
Reply
hyy on #
首先,谢谢vimer的分享,从你这学了很多!然后问个问题!!那个照上面方法配置好之后,按的时候,整个vim界面会白一下,是为什么?而且在退出那个白一下的界面之后,在那些没有代码的地方还是白的!要光标移上去才会变成原来的颜色!
Reply
hyy on #
首先,谢谢vimer的分享,从你这学了很多!然后问个问题!!那个照上面方法配置好之后,按F12的时候,整个vim界面会白一下,是为什么?而且在退出那个白一下的界面之后,在那些没有代码的地方还是白的!要光标移上去才会变成原来的颜色
Reply
Dante on #
ctrl-l,你是远程ssh的吧。
Reply
hyy on #
不是,是在linux下的终端,谢谢回复,问题已解决
Reply
findingsea on #
按ctrl+x ctrl+o 始终都是找不到模式,tags文件已经生成了
Reply
fouvy on #
"对NERD_commenter的设置
let NERDShutUp=1
这个命令在2009年的时候就被移除了。晕。
Reply
xinc_whu on #
楼主请问下我的omnicppcomplete配置好后总c-x会出现“--X model ******”,再c-o就会“智能补全,找不到模式”
我的tags文件是好的,这个是咋回事呢 求教
Reply
AlsoTang on #
提醒一下博主:NERDShutUp选项已经在新版本中被去掉了,所以就不必设置它了。
Reply
求教 on #
a.vim
好像有问题,
比如我的头文件在 xxx/ 下
源文件在xxx/src/下
我这样设定path
set path+=., ./src, ../
同时也设了set autochdir
但是还是不能正确在头文件和源文件之间跳转
Reply
求教 on #
弄错了
let g:alternateSearchPath = 'sfr:./src,sfr:../,sfr:../include,sfr:../src'
Reply
liusong on #
初学vim,请教一个问题:我的taglist窗口不显示任何函数名,但是相应的tag是有这些函数标签的,不知道这可能是哪里的问题,怎么样修改
Reply
Patrick He on #
这篇文章中有两张图片已经 not found 了
Reply
Wizmann on #
图挂了~麻烦了~1024~
Reply
xiao on #
博主 你这个网站布置的很好啊 是自己写的还是的现成的模板 能不能推荐一下啊 毕业设计要用
Reply
Dante on #
现成的模板:zanblog
Reply
huixinming on #
你好,我也遇到同样的问题了,想问下你是怎么解决的,谢谢哈~
Reply