我使用Vim已经有一段时间了,我觉得我终于变得“流利”了,但是我看到的一些功能列表、视频和其他东西(尤其是Tim Visher在Emacs系列中的Vimgolf )确实说服了我去尝试一下Emacs。
所以在过去的一周里,我几乎一直在使用Emacs。我真的很想念Vim中我熟悉的一些概念(主要是动作-运动风格,比如ci"等),但是我在Emacs中真正学到的一件事是使用Isearch移动文件的方式。
例如,如果我想移动到一个调用函数fn的行,并且在点和我想要移动的位置之间还有两个'fn‘的其他实例,我将执行C-s fn C-s C-s。如果我想在Vim中做同样的事情,我必须做一些像/fn <CR> n n :noh <CR>这样的事情,这一点都没有那么好,所以我可能只需要检查行号并执行#G wwwww...。
所以我的问题是:有什么方法可以模仿Emacs在Vim中搜索的效率吗?它不需要使用搜索,我只是在寻找其他的东西,而不是累赘的上线和转发我上面描述过的几个单词。
编辑:有效Emacs中的第4项很好地描述了我想要完成的任务。
发布于 2012-06-05 10:29:37
您可以使用这个密钥映射:cnoremap <C-s> <Cr>/<C-p>来模拟Emacs。
虽然Vim有比搜索更好的移动方式。你试过标签了吗?
我还建议使用EasyMotion插件在文本的可见区域快速移动。
发布于 2012-06-03 23:20:23
链接中描述的正是我在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>对我来说正好相反。
另外一个问题是(至少)在同一个文件…中有三个同名函数
Vim有非常好的文本对象:}或]m,它们在第一次查看某些代码时非常有用。
发布于 2012-06-03 20:29:39
我想你是在找
set incsearch你可以把它和
set hlsearch为了更好的结果。
还有"*",这很棒。
https://stackoverflow.com/questions/10873704
复制相似问题