vim的搜索是否能像这样呢?

Vim、Emacs配置和使用
回复
头像
redhatlinux10
帖子: 773
注册时间: 2008-01-22 23:24
来自: 三亚
联系:

vim的搜索是否能像这样呢?

#1

帖子 redhatlinux10 » 2011-05-24 15:12

请看下ultraedit的截图
截图05.jpg
不论是vim自带功能,抑或是插件,都行的。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: vim的搜索是否能像这样呢?

#2

帖子 eexpress » 2011-05-24 15:26

代码: 全选

● cat .vim/plugin/Search_Word.vim 
" au! QuickFixCmdPre *.[ch] call Search_Word()
func Search_Word()
  let w = expand("<cword>")		" 在当前光标位置抓词
  let p = expand("%:p:h")		" 取得当前文件的路径
  exe "cd " p
  exe "vimgrep " w "*.c *.h *.vim"
  exe 'copen'
endfun
● 鸣学
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim的搜索是否能像这样呢?

#3

帖子 lilydjwg » 2011-05-24 15:56

grep.vim

LustyExplorer 提供了即时显示匹配行的功能,不过最多只有一屏,而且不是显示在 buffer 里。
头像
redhatlinux10
帖子: 773
注册时间: 2008-01-22 23:24
来自: 三亚
联系:

Re: vim的搜索是否能像这样呢?

#4

帖子 redhatlinux10 » 2011-05-24 17:45

eexpress 写了:

代码: 全选

● cat .vim/plugin/Search_Word.vim 
" au! QuickFixCmdPre *.[ch] call Search_Word()
func Search_Word()
  let w = expand("<cword>")		" 在当前光标位置抓词
  let p = expand("%:p:h")		" 取得当前文件的路径
  exe "cd " p
  exe "vimgrep " w "*.c *.h *.vim"
  exe 'copen'
endfun
我用了下这个search_word脚本,发现了3个问题。
1,按CTRL-F(我映射到是这个快捷键)后,quickfix列表并没有自动打开,需要我手动输入copen命令打开。
2,每次CTRL-F之后,需要两次回车。
3,quickfix列表没有高亮搜索关键字。
还烦请帮忙解决下。
searchword.gif
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim的搜索是否能像这样呢?

#5

帖子 lilydjwg » 2011-05-24 17:59

redhatlinux10 写了: 我用了下这个search_word脚本,发现了3个问题。
1,按CTRL-F(我映射到是这个快捷键)后,quickfix列表并没有自动打开,需要我手动输入copen命令打开。
2,每次CTRL-F之后,需要两次回车。
3,quickfix列表没有高亮搜索关键字。
还烦请帮忙解决下。
你用 grep.vim 吧,现成的东西,搜索速度还更快。
头像
redhatlinux10
帖子: 773
注册时间: 2008-01-22 23:24
来自: 三亚
联系:

Re: vim的搜索是否能像这样呢?

#6

帖子 redhatlinux10 » 2011-05-24 19:09

lilydjwg 写了:
redhatlinux10 写了: 我用了下这个search_word脚本,发现了3个问题。
1,按CTRL-F(我映射到是这个快捷键)后,quickfix列表并没有自动打开,需要我手动输入copen命令打开。
2,每次CTRL-F之后,需要两次回车。
3,quickfix列表没有高亮搜索关键字。
还烦请帮忙解决下。
你用 grep.vim 吧,现成的东西,搜索速度还更快。
我用了下grep.vim,结果报错了。
我的vim配置:

代码: 全选

let Grep_Shell_Quote_Char = '"'

let Grep_Path ='D:\exttools\grep.exe'
let Fgrep_Path ='d:\exttools\fgrep.exe'
let Egrep_Path ='d:\exttools\egrep.exe'
"let Agrep_Path = 'd:\tools\agrep.exe'
let Grep_Find_Path ='d:\exttools\find.exe'
let Grep_Xargs_Path ='d:\exttools\xargs.exe'
截图06.jpg
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim的搜索是否能像这样呢?

#7

帖子 lilydjwg » 2011-05-24 22:30

redhatlinux10 写了: 我用了下grep.vim,结果报错了。
可怜的 Windows 用户。。。*nix 用户通常就不用关心这种配置。

是不是路径不对,你确定下你的 grep.exe 是否确实位于你设置的地方,并确定下你的配置确实被 Vim 执行了(:echo Grep_Path)。
头像
redhatlinux10
帖子: 773
注册时间: 2008-01-22 23:24
来自: 三亚
联系:

Re: vim的搜索是否能像这样呢?

#8

帖子 redhatlinux10 » 2011-05-25 8:36

lilydjwg 写了:
redhatlinux10 写了: 我用了下grep.vim,结果报错了。
可怜的 Windows 用户。。。*nix 用户通常就不用关心这种配置。

是不是路径不对,你确定下你的 grep.exe 是否确实位于你设置的地方,并确定下你的配置确实被 Vim 执行了(:echo Grep_Path)。
问题解决了。grep.exe文件路径没错,最开始,let Grep_Path ='d:\exttools\grep.exe'语句我是放在一个单独的vim_misc.vim文件中,然后在_vimrc中source。不知何故,这样竟然不行。我let语句单独提取出来放在_vimrc中就可以了。
回复