繁体   English   中英

从特定行拉第一个字

[英]Yank first word from specific line

我发现:23y:23y整个第23行。 但是我想做的只是仅:23yw第23行的第一个单词。我尝试了:23yw ,但这不起作用。 是否有捷径可寻?

是否可以不先转到该行然后拉动然后键入`返回到我正在编辑的行来完成此操作?

23ggyw会做到的。 我认为没有更快的方法。

说明: 23gg将光标移至第23行, yw一个单词。 请注意,这仅在设置了startofline选项(默认设置)时才有效。 否则,您需要显式移至第一个非空白字符: 23gg^yw

我不认为没有移动光标的方法。

无论如何,这是另一种方法:

:23norm! yw

分解:

  • :因为我们使用的是Ex命令,

  • 23是我们要执行操作的行,范围是1,

  • norm[al]在给定范围内执行普通模式命令,

  • yw第一个单词。

添加<Co>返回您的来源。

:y:yank Ex命令的缩写,这就是为什么:yw不起作用的原因。 这是正常模式的命令。 如其他答案所示,您可以通过:normal yw从命令行触发这些答案。

恐怕无法以实际的方式避免跳转(但是,如上所述, <CO>可以让您跳转回原始位置)。 您可以使用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行并拉第一个单词

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM