选择包含短划线的整个单词

时间:2018-02-28 01:29:08

标签: vim

我们说我有字符串

hello how-ar[]e-you doing

其中[]是我的光标。我如何有效地选择how-are-you这样

hello [how-are-you] doing

到目前为止,我能提出的是Bvt<space>

2 个答案:

答案 0 :(得分:10)

Vim有“word”和“WORD”的概念,其中“word”是'iskeyword'选项中的一系列字符,而“WORD”是一系列非空白字符。

...因此

  • w动作(“单词”)会在-之后跳转到are,因为-不属于'iskeyword'
  • W动作(“WORD”)会跳转到doing
  • iw文字对象(“内部字”)将涵盖are
  • iW text-object(“内部WORD”)将覆盖how-are-you
  • 以及其他动作和文字对象。

您要找的是iW文字对象:

viW

:help navigation会让你大吃一惊。

答案 1 :(得分:6)

除了其他答案(使用Word而不是单词),如果您希望这是默认行为(这样-将被视为单词字符 - 而不是单词分隔符)您可以将其添加到您的vimrc

set iskeyword+="-"

之后viw会给你预期的结果。 输入:h iskeyword了解更多信息