分页: 1 / 1

VIM的omni补全问题

发表于 : 2008-10-09 13:54
macrohard
VIM的omni全能补全装了,
也 set tags+=tags了

CTRL+P 可以调出补全,
但 CTRL+X,CTRL+O 总是提示 pattern not found,找不到模式,

1.请问是什么原因?

2.还有, 补全的颜色 红色background很刺眼,

在哪里修改?

3. 想自己写verilog的snippet, 有没有script写法的介绍?

Re: VIM的omni补全问题

发表于 : 2008-10-10 11:21
macrohard
还没有高手出来啊?

Re: VIM的omni补全问题

发表于 : 2008-10-10 11:37
eexpress
/usr/share/vim/vim71/syntax/verilog.vim

/usr/share/vim/vim71/colors/

Re: VIM的omni补全问题

发表于 : 2008-10-10 12:03
kofshower
红色background很刺眼,莫非你抄了别人的.vimrc;
pattern not found,莫有tag文件;
想自己写verilog的snippet, 有没有script写法的介绍?自带帮助

Re: VIM的omni补全问题

发表于 : 2008-10-10 15:20
macrohard
eexpress 写了:/usr/share/vim/vim71/syntax/verilog.vim -----这是语法高亮,不是snippet啊

/usr/share/vim/vim71/colors/

Re: VIM的omni补全问题

发表于 : 2008-10-10 15:23
macrohard
kofshower 写了:红色background很刺眼,莫非你抄了别人的.vimrc; -------正是。qmenu可以改了
pattern not found,莫有tag文件; --------tags文件已经设置了, :set+=tags (将所有远程序生成了~/tags)想自己写verilog的snippet, 有没有script写法的介绍?自带帮助
----谢谢,正看

Re: VIM的omni补全问题

发表于 : 2008-10-10 15:40
kofshower
pattern not found,莫有tag文件; --------tags文件已经设置了, :set+=tags (将所有远程序生成了~/tags)还是不能补全的话:
检查ctags生成的tags对么?原因是源里面其实有两个tags,需要的是etags,其实看看生成的文件就行了。然后看看相应的.vimrc设置,例如

"""""""""""""""""""""""""""""""""""
"ctags设置
"""""""""""""""""""""""""""""""""""
set tags=/home/hunch/.vim/cpp
set tags+=./tags,tags,../tags,../../tags
"set tags+=/home/hunch/.vim/ctags
"set tags+=/home/hunch/.vim/glibctag
"智能补全ctags -R --c++-kinds=+p --fields=+iaS --extra=+q
let OmniCpp_DefaultNamespaces = ["std"]
let OmniCpp_GlobalScopeSearch = 1 " 0 or 1
let OmniCpp_NamespaceSearch = 1 " 0 , 1 or 2
let OmniCpp_DisplayMode = 1
let OmniCpp_ShowScopeInAbbr = 0
let OmniCpp_ShowPrototypeInAbbr = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_MayCompleteDot = 1
let OmniCpp_MayCompleteArrow = 1
let OmniCpp_MayCompleteScope = 1
最后注意如果是c++的注意用ctags -R --c++-kinds=+p --fields=+iaS --extra=+q

Re: VIM的omni补全问题

发表于 : 2008-10-10 15:43
kofshower
哦,我是自己设置了柔和的颜色:
if !exists("g:vimrc_loaded")
" color scheme
if has("gui_running")
set guioptions-=T "隐藏工具栏
set guioptions-=m
set guioptions-=L
set guioptions-=r
colorscheme inkpot
highlight PmenuSel ctermbg=7 guibg=DarkBlue guifg=White
highlight PmenuSbar ctermbg=7 guibg=DarkGray
highlight PmenuThumb guibg=Black
highlight Pmenu guifg=#333333 guibg=lightblue ctermbg=13
"hi PmenuSel guibg=#555555 guifg=#ffffff
" 状态行颜色
highlight StatusLine guifg=lightblue guibg=#333333
highlight StatusLineNC guifg=Gray guibg=White
set keywordprg=dictygui
"colorscheme professional
"set guifont=YaHeiConsolasHybrid\ 13
set guifont=Monaco\ 13
"中文字体
set guifo

Re: VIM的omni补全问题

发表于 : 2008-10-10 17:05
macrohard
kofshower 写了:pattern not found,莫有tag文件; --------tags文件已经设置了, :set+=tags (将所有远程序生成了~/tags)还是不能补全的话:
检查ctags生成的tags对么?原因是源里面其实有两个tags,需要的是etags,其实看看生成的文件就行了。然后看看相应的.vimrc设置,例如

"""""""""""""""""""""""""""""""""""
"ctags设置
"""""""""""""""""""""""""""""""""""
set tags=/home/hunch/.vim/cpp
set tags+=./tags,tags,../tags,../../tags
"set tags+=/home/hunch/.vim/ctags
"set tags+=/home/hunch/.vim/glibctag
"智能补全ctags -R --c++-kinds=+p --fields=+iaS --extra=+q
let OmniCpp_DefaultNamespaces = ["std"]
let OmniCpp_GlobalScopeSearch = 1 " 0 or 1
let OmniCpp_NamespaceSearch = 1 " 0 , 1 or 2
let OmniCpp_DisplayMode = 1
let OmniCpp_ShowScopeInAbbr = 0
let OmniCpp_ShowPrototypeInAbbr = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_MayCompleteDot = 1
let OmniCpp_MayCompleteArrow = 1
let OmniCpp_MayCompleteScope = 1
最后注意如果是c++的注意用ctags -R --c++-kinds=+p --fields=+iaS --extra=+q


我用的是Win的版本 :)
ctags 5.7
可能是.vimrc的设置问题,

谢谢!

Re: VIM的omni补全问题

发表于 : 2008-10-14 11:31
macrohard
确实是 TAGS文件的问题,

现在可以自动补全了,

不过有个新问题:

补全只在一级补全,

就是说只补全 class 的成员函数和变量,
而 class中嵌套的class的成员不能补全,

是不是还需要设置补全级别?