求VIM大神,我想要这些功能

Vim、Emacs配置和使用
回复
头像
fishbones
帖子: 88
注册时间: 2011-02-09 21:15

求VIM大神,我想要这些功能

#1

帖子 fishbones » 2011-10-07 18:29

1.因为需要写内核相关的程序,需要特定的目录下的头文件代码补全。例如/lib/modules/2.6/build/include/这个目录的补全。是用tags文件呢,还是用vim的路径设置(后者不是很清楚)。
2.代码补全有没有法只显示补全的选项而不显示@字符后面的那些东西,因为我觉得好大的说 :em01
3.代码补全有没有可能不用按任何键就弹出候选框,就像codeblocks或者VA一样。
4.以前用的codeblocks,里面有个很销魂的功能。很是迷恋想在vim中实现,如下
对于所有的边界字符如 [ { ( 都会自己打出另外一半,然后光标跳到(|)竖线的位置。如果输入{则会变成
{
******|
}
这样。星号是空格。

以上几个功能不知道能不能实现,拜托说的详细一点。本菜感激不尽~ :em01
站在巨人的肩上
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: 求VIM大神,我想要这些功能

#2

帖子 fanhe » 2011-10-07 18:43

1. 看你是需要标签补全还是 Omni 补全了, tag 补全的话设置搜索路径, omni 补全的话, 生成 tags 文件
2. 不知道你是用的什么补全, 无法回答
3. 可以, 但是效率很有问题, 如果想要 codeblocks 那样流畅的话, 需要改 vim 源码, 加个特性, 例如加个 CharAdd 自动命令
4. 可以, 用 snipmate 或者 xptemplate

具体请自己折腾
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 求VIM大神,我想要这些功能

#3

帖子 eexpress » 2011-10-07 18:59

imap ( ()<ESC>i
imap { {}<ESC>i
imap [ []<ESC>i

不用按任何键,那是要软件一直不断的扫描行。
● 鸣学
头像
adam8157
帖子: 2794
注册时间: 2009-03-05 16:31
联系:

Re: 求VIM大神,我想要这些功能

#4

帖子 adam8157 » 2011-10-07 19:00

1, 咋不用源码树里头的头文件? 直接make tags cscope
头像
fishbones
帖子: 88
注册时间: 2011-02-09 21:15

Re: 求VIM大神,我想要这些功能

#5

帖子 fishbones » 2011-10-07 19:03

fanhe 写了:1. 看你是需要标签补全还是 Omni 补全了, tag 补全的话设置搜索路径, omni 补全的话, 生成 tags 文件
2. 不知道你是用的什么补全, 无法回答
3. 可以, 但是效率很有问题, 如果想要 codeblocks 那样流畅的话, 需要改 vim 源码, 加个特性, 例如加个 CharAdd 自动命令
4. 可以, 用 snipmate 或者 xptemplate

具体请自己折腾
:em01 谢谢你
又帮我解决了一个问题

还没完全弄明白tag补全和omni,我会自己弄清楚的。只是不知道能不能在一个工程中使用多个tags文件。例如我为上面的目录的内容生成了一个tags文件,我又为我自己的代码生成了tags文件。问题
1.我知道需要用set tag=xxxxx来使用它,可以同时用多个tags文件么?
2.那些固定的库的tags文件,不想每次都set tag= 那么我可以直接把set tag=xxx放在vimrc文件中么?

ps:今天搜东西的时候意外的搜到了vimlite
http://www.vim.org/scripts/script.php?script_id=3647
这个跟你的id一样的哟。而且还有中文docs,是你做的么?
站在巨人的肩上
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: 求VIM大神,我想要这些功能

#6

帖子 fanhe » 2011-10-07 19:48

fishbones 写了:
fanhe 写了:1. 看你是需要标签补全还是 Omni 补全了, tag 补全的话设置搜索路径, omni 补全的话, 生成 tags 文件
2. 不知道你是用的什么补全, 无法回答
3. 可以, 但是效率很有问题, 如果想要 codeblocks 那样流畅的话, 需要改 vim 源码, 加个特性, 例如加个 CharAdd 自动命令
4. 可以, 用 snipmate 或者 xptemplate

具体请自己折腾
:em01 谢谢你
又帮我解决了一个问题

还没完全弄明白tag补全和omni,我会自己弄清楚的。只是不知道能不能在一个工程中使用多个tags文件。例如我为上面的目录的内容生成了一个tags文件,我又为我自己的代码生成了tags文件。问题
1.我知道需要用set tag=xxxxx来使用它,可以同时用多个tags文件么?
2.那些固定的库的tags文件,不想每次都set tag= 那么我可以直接把set tag=xxx放在vimrc文件中么?

ps:今天搜东西的时候意外的搜到了vimlite
http://www.vim.org/scripts/script.php?script_id=3647
这个跟你的id一样的哟。而且还有中文docs,是你做的么?
1. set tag+=yyy
2. 可以

最后那个问题, 是我写的, 主要针对项目开发的, 像你这种开发模式, 理论上也可以支持, 只要对 IDE 的项目组织熟悉的话就可以了

补全类型, 具体 :h ins-completion 了解清楚
回复