我发现:23y
会拉动整个第23行。
但我想做的只是第23行的第一个词。
我试过:23yw
,但这不起作用。有一个简单的方法吗?
这可以不先行,然后yanking然后键入`
返回到我正在编辑的行吗?
答案 0 :(得分:3)
23ggyw
会这样做。我认为没有更快的方法。
说明:23gg
将光标移动到第23行,yw
拉出一个单词。
请注意,这仅在您设置了startofline
选项时才有效(这是默认设置)。否则,您需要明确移动到第一个非空白字符:23gg^yw
。
答案 1 :(得分:1)
我认为没有移动光标就有办法做到这一点。
无论如何,这是另一种方法:
:23norm! yw
故障:
:
因为我们使用的是Ex命令,
23
是我们想要做某事的行,它的范围是1,
norm[al]
在给定范围内执行普通模式命令,
yw
猛烈抨击第一个字。
添加<C-o>
以返回您的来源。
答案 2 :(得分:1)
:y
是:yank
Ex命令的缩写,这就是:yw
不起作用的原因;这是普通模式命令。正如其他答案已经显示的那样,您可以通过:normal yw
从命令行触发这些答案。
我担心没有办法以实际的方式避免跳跃(但是,如上所述,<C-O>
可以让你跳回原来的位置)。你可以使用Vimscript:
:let @" = matchstr(getline(23), '^\w\+')
但是输入并不容易,只适合功能。
答案 3 :(得分:0)
在正常模式下输入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|.
答案 4 :(得分:0)
以下方法可以在不按要求移动光标的情况下工作,但输入时会很麻烦。
:23y|norm PJ0eld$
或者你可以尝试用
来解决问题:23t.|norm eld$
答案 5 :(得分:-1)
23jyw应该能够做到这一点,它将带你到第23行并猛拉第一个字