2

我正在使用 vim 7.3,通过 OS X 10.8.3 上的自制软件安装。由于某种原因,在正常模式下都不能正常工作WE它不是一次一个字地向后移动,而是向前移动。的行为与W相同w。的行为与E相同e

我在正常模式下尝试了oandO命令,它按预期工作,所以它不像我的 shift 键坏了。

这让我抓狂,因为它是我无法开始工作的核心功能。我已经尝试擦除我的 vimrc 和 vim 目录并更改 shell。

我会接受任何可以为我解决问题或就如何诊断问题提供好的建议的人的回答。

4

4 回答 4

14

WandE不是wand e(bgeare) 的后向版本。

小写版本认为单词在非单词字符处停止,例如标点符号或空格。大写版本只考虑空格(因此移动过去的带有标点符号的单词)。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

于 2013-05-25T14:11:36.473 回答
10

shift+W通常向后工作。它像 w 一样向前移动,只是“单词”的定义不同(例如,W 将跳过“hello-world”,w 将在连字符处结束)。

向后移动是b。

在认为有问题之前,请使用 vim 帮助(:h W在这种情况下)。

于 2013-05-25T14:01:50.040 回答
0

您描述的功能不是标准的 Vim,但如果您习惯了,请尝试以下映射:

nnoremap W B
nnoremap E gE
于 2013-05-25T14:11:04.577 回答
0

w表示前进到“单词”的开头。在 Vim 中,“单词”意味着:

  • 字母数字和下划线的序列(正则表达式:)\w+,或
  • 其他非空白字符的序列(正则表达式[^\s\w]+:)

W表示前进到“WORD”的开头。在 Vim 中,“WORD”表示:

  • 一系列非空白字符(正则表达式\S+:)

这个例子:

:help usr_03.txt
  • 包含7个字:“ :”、“ help”、“ usr”、“ _”、“ 03”、“ .”、“ txt
  • 包含 2 个单词:“ :help”、“ usr_03.txt

e, E, b,B以类似的方式工作。


与问题没有直接关系,但如果您想找到一个键(或组合键)的作用,只需使用

:h {key}

注意:外壳很重要。

例子:

  • :h W
  • :h w
  • :h yy
  • :h CTRL-W_T或速记^W_T
于 2013-05-28T08:49:02.140 回答