我想这:23y
会拉动整个第 23 行。但我想做的只是拉出第 23 行的第一个单词。我试过:23yw
了,但这不起作用。是否有捷径可寻?
这可以在不先进入该行然后拉动然后键入`
以返回到我正在编辑的行的情况下完成吗?
我想这:23y
会拉动整个第 23 行。但我想做的只是拉出第 23 行的第一个单词。我试过:23yw
了,但这不起作用。是否有捷径可寻?
这可以在不先进入该行然后拉动然后键入`
以返回到我正在编辑的行的情况下完成吗?
23ggyw
会做的。我不认为有更快的方法。
解释:23gg
将光标移动到第 23 行,yw
拉出一个单词。请注意,这仅在您startofline
设置了选项(这是默认设置)时才有效。否则,您需要显式移至第一个非空白字符:23gg^yw
.
我认为没有移动光标的方法可以做到这一点。
无论如何,这是另一种方法:
:23norm! yw
分解:
:
因为我们使用的是 Ex 命令,
23
是我们想要做某事的线,它的范围是1,
norm[al]
在给定范围内执行正常模式命令,
yw
猛拉第一个词。
添加<C-o>
回到你来自的地方。
The:y
是:yank
Ex 命令的缩写,所以:yw
不起作用;这是一个普通模式命令。正如其他答案已经显示的那样,您可以从命令行通过:normal yw
.
恐怕没有办法以实际的方式避免跳跃(但是,如前所述,<C-O>
让你跳回原来的位置)。你可以使用 Vimscript:
:let @" = matchstr(getline(23), '^\w\+')
但这很难打字,而且只适用于一个函数。
23Gyw
在正常模式下输入应该可以完成这项工作。
G Goto line [count], default last line, on the first
non-blank character |linewise|. If 'startofline' not
set, keep the same column.
G is a one of |jump-motions|.
以下操作无需按要求移动光标即可,但输入起来很麻烦。
:23y|norm PJ0eld$
或者你可以试着用
:23t.|norm eld$
23jyw 应该可以做到,它会带你到第 23 行并拉出第一个单词