Vim在线导航

时间:2012-04-20 19:21:04

标签: vim

如何在不离开当前行的情况下跳过单词('w')?

光标应该在行尾停止。我相信类似的解决方案也可以应用于其他步长。

2 个答案:

答案 0 :(得分:5)

奇怪的请求,但:call search('\<\|\(\k\@!\S\)\+', 'W', line('.'))应该可以解决问题。要模拟w移动,我们必须搜索关键字\<的开头或非关键字非空白\(\k\@!\S\)\+的开头。我们关闭换行('W'),并将搜索功能的范围限制为当前行。

这会停在该行的最后一个单词处。如果您还希望在该行的末尾停止,请将\|$添加到正则表达式。

或者,你可以组装一个搜索命令,比如/\%42l\(\<\|\(\k\@!\S\)\+\),但是很难输入当前的行号(本例中为42),并处理'wrapscan'设置。

答案 1 :(得分:-1)

理解你的意思已经不是那么容易,但你也忘了说你希望它能够在插入模式下工作。

您是否希望能够在插入模式下逐字移动?好吧,你可能已经知道了,但你不应该这样做。这就是普通模式的用途。

FIY默认情况下,在Ubuntu上的GVim中可以进行这种导航。

模拟很容易:

inoremap <C-Right> <C-o>w
inoremap <C-Left> <C-o>b

但这不是一个好主意。

我没有得到“光标应该停在行尾”部分。