vim 自动补全



2008年11月15日 星期六 16:15



模式不对按键不对
比如在插入模式下按下C-X C-N才是补全,按C-X的时候下方有提示的说,
比如C-X C-F是文件名补全 C-X C-L是整行补全 C-X C-N和C-X C-P是关键字局部补全
C-X C-O是Omni补全(全能,当是依赖tag)
而你说的^N,在插入的时候只有按C-VC-N才可以办到
http://forum.ubuntu.org.cn/viewtopic.php?f=68&t=135163 -----------------------------
Vim7的自动补全功能



2007-06-17 14:59



相 信用过Visual Studio的人特别喜欢自动补全的功能。但是我不知道是否每个用vim的人都知道如何使用它。其实很简单,Ctrl+N就可以了。它会根据你已经输入的 几个字符在上下文中寻找匹配,还能在同时打开的多个VIM view中查找,另外还能查找已经设置好的一些头文件。。

如果你用的是vim7,在字符界面下,也能出现下拉框。。。。非常稳定,也非常好用。。

vim有万能补全<c+x><c+o>,函数名和类名都没有问题

宏定义也有<c+x><c+d>补全

类变量补全也有插件,还有一些别的插件比如

EnhancedCommentify 当前行或者多行可视模式下的注释/反注释 \x
SuperTab 在插入状态使用TAB键补全,现在被自己定义的F8代替了 <TAB>
taglist 函数和变量定义的窗口,并可以双击跳转 :TlistToggle绑定到F4
tabbar 用标签窗口形式,显示打开的文件 Alt-1,2切换
AutoExplorer help里面剔出的快速浏览函数和变量的定义
bufexplorer 浏览打开的缓冲文件 \be \bv \bs
mark 不同颜色标记当前词,支持多次高亮标记 \m

总之,只要你愿意配置vim可以非常强大

but,不要迷信vim。用什么工具,取决于你的工程应用。
http://hi.baidu.com/linuxlife/blog/item/fe22540fb3aad286059f3a0.html ----------------------------------------

Vim7中的万能补全(Omni completion)



Vim7中的万能补全(Omni completion)

自动补全是Vim的一项重要功能。但由于中文的特性,这项功能对很多中文用户来讲显得不那么实用。在中国这项功能几乎只局限于写程序时使用了。
Vim支持多种形式的补全。补全的使用方法是按C-X,再根据所使用的补全输入相应的键。

  • 整句补全对中文用户还是比较有用的C-l(这条命令在所有的buffer中查找匹配的行)。
  • 单词补全基本没用因为中文的书写并不以词为单位(没有分隔)C-n(倒是也可当成整句补用)。
  • 字典补全c-k和thesaurus补全。同样的对于中文只能当成整句补用。
  • 单词补全还有一种C-k,除了在当前文件中找匹配外也在包含文件中查找匹配──对编程来讲比较有用。
  • tags补全C-j。
  • 文件名补全C-f。
  • 定义和宏补全C-d。
  • Vim命令补全C-v。
  • 用户定义补全C-U。万能补全C-O。



----------------------------------



        对于习惯在windos平台下,使用微软IDE的开发人员来说,刚刚转入linux 控制台使用vim编程,是有点痛苦的。特别是没有自动提示补全,没有智能化的代码跳转的情况下。但是只要你看下面的这篇文章,这些困难都将迎刃而解,并且 比.net 2005下面编程更加简洁,方便。


(1)首先安装vim7.2

这个可以从http://www.vim.org/下载。

安装很简单。使用./configure 和make两个命令就可以了。

安装之后路径可以通过man vim命令查看。这个路径在配置taglist的时候需要用到。

我的vim7.2 的路径是/usr/local/share/vim/vim72。原来vim6.3的路径是:/usr/share/vim/vim63/plugin/。

依次安装ctags、taglist。

(2)解压并安装ctags

tar zxvf ctags-5.6.tar.gz
cd ctags-5.6
./configure && make && make install

(3)解压并安装taglist


# unzip -d taglist taglist_42.zip
# cd taglist


安装
cp doc/taglist.txt /usr/local/share/vim/vim72/doc/
cp plugin/taglist.vim /usr/local/share/vim/vim72/plugin/


配置和使用
cd /usr/local/share/vim/vim72/doc/
启动vim,用 ":help tags ."来配置好帮助文档
重启vim,用":TlistToggle"来打开和关闭taglist窗口。

能够用":help taglist"来获得更多帮助信息。


注意:如果没有机器的root权限,那么可以安装在 ~/.vim/plugin 下面。tagslist.vim 主要配置一下ctags的路径。

(4)使用方法

在源代码根目录输入:ctags -R。给源代码创建tag索引

打开cpp文件输入变量再按Ctrl+P就可以有自动补全的功能了。

参考http://www.blogjava.net/zellux/archive/2007/06/12/123556.html


-------------------------------------

在 Vim 中实现括号自动补全



相信经常写程序的人,时常会有漏写一半括号的情况发生。 Vim本身并没有自动补全括号的功能,网上查找发现如下代码,进行相应修改后,用起来很是方便
将下面的代码加入到 ~/.vimrc 中,重启 Vim,即可:

:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i


function ClosePair(char)
  if getline('.')[col('.') - 1] == a:char
      return "\<Right>"
  else
      return a:char
  endif
end