Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在vim换档中+;w(w)不起作用。它像w一样向前移动。我怎么修理它?_Vim_Macvim - Fatal编程技术网

在vim换档中+;w(w)不起作用。它像w一样向前移动。我怎么修理它?

在vim换档中+;w(w)不起作用。它像w一样向前移动。我怎么修理它?,vim,macvim,Vim,Macvim,我使用的是vim 7.3,它是通过OS X 10.8.3上的自制软件安装的。由于某种原因,W或E在正常模式下都不能正常工作。它不是一次向后移动一个单词,而是向前移动。W的行为与W相同。而E的行为与E相同 我已经在正常模式下尝试了o和o命令,它按预期工作,因此我的shift键并没有断开 这让我抓狂,因为它是如此核心的功能以至于我无法工作。我已尝试擦除我的vimrc和vim目录,并更改shell 如果有人能帮我解决问题,或者就如何诊断问题给出好的建议,我会同意他们的答案。shift+W通常不会反向工

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

我已经在正常模式下尝试了
o
o
命令,它按预期工作,因此我的shift键并没有断开

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

如果有人能帮我解决问题,或者就如何诊断问题给出好的建议,我会同意他们的答案。

shift+W通常不会反向工作。它像w一样向前移动,只是对“单词”有不同的定义(例如,w将跳过“hello world”,w将以连字符结尾)

向后移动是b


请先使用vim帮助(
:在本例中为h W
),然后再考虑是否有故障。

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

nnoremap W B
nnoremap E gE

W
E
不是
W
E
的向后版本(分别是
b
ge

小写版本考虑单词停止在非单词字符中,例如标点符号或空格。大写版本只考虑空白(因此移动过去的单词加上标点符号)。vim手册清楚地解释了所有组合:

           ge      b          w                             e
           <-     <-         --->                          --->
    This is-a line, with special/separated/words (and some more).
       <----- <-----         -------------------->         ----->
         gE      B                   W                       E
ge b w e
这是一行,带有特殊/分隔/单词(以及更多)。
通用电气公司

您可以在“移动”下的“快速入门”(
:help usr_03.txt
)中找到此概述,更多详细信息请参见
:help word motions

w
表示转到“单词”的开头。在Vim中,“单词”表示:

  • 字母数字和下划线的顺序(正则表达式:
    \w+
    ),或
  • 其他非空字符的序列(regex:
    [^\s\w]+
W
表示前进到“单词”的开头。在Vim中,“单词”表示:

  • 非空字符序列(regex:
    \S+
这个例子:

:help usr_03.txt
  • 包含7个单词:“
    ”、“
    帮助”、“
    usr
    ”、“
    ”、“
    03
    ”、“
    ”、“
    txt
  • 包含两个单词:“
    :help
    ”,“
    usr\u 03.txt
e
e
b
b
的工作方式类似


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

:h {key}
注:套管问题

示例:

  • :hw
  • :hw
  • :h yy
  • :h CTRL-W\u T
    或速记
    ^W\u T

。。。和
B
的向后等价于
W
,贪婪地向后移动到下一个空格字符。谢谢,我真不敢相信我这么愚蠢。我以前使用过很多vim,但记不清它是如何使用的。答案很好,但在参考vim手册时,请显示所使用的命令,因为它并不总是容易找到。您的期望是错误的。如有疑问,请阅读
:help
:help b
:help b
:help e
:help e
等的相关部分,以备将来参考;如果Vimrc中有错误,您不需要删除它进行测试;只需执行
$vim-u NONE-u NONE
。有关更多信息,请参阅
$man vim
。此外,
~/.viminfo
中可能有错误,但这只是针对那些非常奇怪的行为错误。@timss请停止在不适用的位置添加
标记!你的键盘上有
e
e
键吗?您的键盘上有
o
o
键吗?我想不是@timss Vim有自己的符号,这种符号已经使用了20多年。任何Vim用户都需要知道这个符号,因为它适用于映射、帮助和流行文献,如实用Vim<代码>
标记是一个很好的HTML小功能,但对于实际的Vim用户来说,它们往往更容易混淆,而不是有帮助。@glts这是一个很好的观点。谢谢你指出我对的恼人用法,我以前没有看到反对它的大争论,我的编辑一直被接受,所以我没怎么想。