0

我已经使用 Vim 有一段时间了,我觉得我终于可以“流利”使用它了,但是我看到的一些功能列表、视频和其他东西(尤其是 Tim Visher 在 Emacs 系列中的 Vimgolf)真的说服我尝试 Emacs。

所以在过去的一周里,我几乎只使用 Emacs。我真的很怀念我在 Vim 中熟悉的一些概念(主要是动作移动风格,诸如此类ci"),但我在 Emacs 中真正学会喜欢的一件事是使用 Isearch 移动文件的方式。

例如,如果我想移动到调用函数fn的行,并且在该点和我想移动到的位置之间还有 2 个其他 'fn' 实例,我会做C-s fn C-s C-s. 如果我想在 Vim 中做同样的事情,我必须做类似的事情/fn <CR> n n :noh <CR>,这没有什么好,所以我可能只是检查行号并做#G wwwww....

所以我的问题是:有没有办法通过 Vim 中的搜索来模拟 Emacs 移动的效率?它不必使用搜索,我只是在寻找除了我上面描述的繁琐的 go-to-line 和转发几个单词之外的东西。

编辑:Effective Emacs中的第 4 项很好地描述了我想要完成的工作。

4

3 回答 3

2

您的链接中描述的正是我在 Vim 中的主要移动方式:/foo<CR>nn增量前向搜索和?bar<CR>nn增量后向搜索。

我看不出什么更有效,<C-s>foo<C-s><C-s>并且<C-r>foo<C-r><C-r>:那是更多的击键!

无论如何,我认为这:set hlsearch是你的问题。如果所有匹配项都包含在视口中,那没关系,但是一旦隐藏了一些匹配项,它就变得无用了。我没有,set hlsearch所以/foo<CR>对我来说与无能完全相反。

好吧,另一个问题是在同一个文件中有(至少)三个同名的函数……</p>

Vim 有很棒的文本对象:}或者]m在第一次查看某些代码时非常有用。

于 2012-06-03T23:20:23.660 回答
1

您可以使用此键盘映射来模拟 Emacs:cnoremap <C-s> <Cr>/<C-p>.

尽管 Vim 有比搜索更好的移动方式。你试过ctags吗?

我还推荐EasyMotion插件,以便在文本的可见区域快速移动。

于 2012-06-05T10:29:37.510 回答
0

我想你正在寻找

set incsearch

你可以把它和

set hlsearch

以获得更好的结果。

另请查看“*”,它非常棒。

于 2012-06-03T20:29:39.430 回答