我使用的是vim 7.3,在OS X 10.8.3上通过自制软件安装。出于某种原因,W
或E
在正常模式下均无法正常工作。它不是一次向后移动一个单词,而是向前移动。 W
的行为与w
相同。 E
的行为与e
相同。
我在正常模式下尝试了o
和O
命令,它按预期工作,所以它不像我的shift键被破坏了。
这让我疯狂,因为它是我无法开展工作的核心功能。我试过擦除我的vimrc和vim目录并更改shell。
对于任何能够为我解决问题或者就如何诊断问题提供良好建议的人,我都会答应。
答案 0 :(得分:14)
W
和E
不是w
和e
的后向版本(分别为b
和ge
)。< / p>
小写版本认为单词停留在非单词字符处,例如标点符号或空格。大写版本只考虑空格(因此移动过去带有标点符号的单词)。 vim手册清楚地解释了所有组合:
ge b w e
<- <- ---> --->
This is-a line, with special/separated/words (and some more).
<----- <----- --------------------> ----->
gE B W E
您可以在“移动周围的入门”(:help usr_03.txt
)中找到此概述,并在:help word-motions
处找到更多详细信息。
答案 1 :(得分:10)
shift + W 不通常会向后工作。它像w一样向前移动,只是对“单词”的定义不同(例如W将跳过“hello-world”,w将以连字符结束)。
向后移动是b。
在考虑某些内容被破坏之前,请使用vim帮助(本例中为:h W
)。
答案 2 :(得分:0)
您描述的功能不是标准的Vim,但如果您已经习惯了,请尝试以下映射:
nnoremap W B
nnoremap E gE
答案 3 :(得分:0)
w
意味着前进到“单词”的开头。在Vim中,“单词”表示:
\w+
),或[^\s\w]+
) W
意味着前进到“WORD”的开头。在Vim中,“WORD”表示:
\S+
)这个例子:
:help usr_03.txt
:
”,“help
”,“usr
”,“_
”,“03
”,“{{ 1}}“,”.
“txt
”,“:help
” usr_03.txt
,e
,E
,b
的工作方式类似。
与问题没有直接关系,但如果您想查找密钥(或密钥组合)的功能,请使用
B
注意:套管很重要。
示例:
:h {key}
:h W
:h w
:h yy
或简写:h CTRL-W_T