如何将ex模式下的命令字符串复制到剪贴板?

问题描述 投票:0回答:2

如何将ex模式下的命令字符串复制到剪贴板?

vim copy mode ex
2个回答
5
投票

您可以将命令行模式变成一个名为命令行窗口的完整Vim缓冲区,方法是在使用

<C-f>
进入命令行模式后按
:
,或者直接通过
进入q:
。在那里,您可以像往常一样猛拉;例如通过
"+yy
:yank +<CR>
。 (这也适用于其他复杂的编辑!)

最后一个命令行在寄存器中

:
:let @+ = @:<CR>
会将其复制到剪贴板。

最不像 Vim 的方法是用鼠标选择;在 Linux 上,文本在 X 主选择中;在 Windows 上,您可以使用 Edit > Copy 将其放入剪贴板。


0
投票

转到要复制的行,处于命令模式 - 而不是输入模式。

通过将行复制到命名缓冲区来创建“宏”。我喜欢用

m
做微距:

"m

将行拉入您刚刚命名的缓冲区:

yy

现在(仍在命令模式下)您可以使用标准

@
将缓冲区作为“宏”“运行”以寻址命名缓冲区:

@m

如果你运行它并且有错误,只需按

u
“撤消”并更正该行

"myy
可以在短时间后成为肌肉记忆

再举个例子~

获取一些数据:

$ vi
:r!man true

转到缓冲区的末尾

G

接下来,进入输入模式,

o
并在空行中输入您的“宏”,就像您在命令模式下输入它一样,包括前导冒号以便于识别。

:%!sed "s/.$(printf '\b')//g"

将整行(带有“Y”或“yy”)拖入命名缓冲区。同样,我们将简单地使用名称“m”来表示宏,以便于记忆。

您可以通过这种方式拥有多个具有不同字母名称的“宏”,但您需要记住它们。

"myy

准备就绪后,使用命令模式通过@和缓冲区名称运行“宏”。

@m

如果做得正确,文本应该立即变得“不乏味”。

显然这是一个简短的“宏”,但它给了你想法。 这样做的最大优点是它是 POSIX 定义的“正确”

ex
vi
用法,因此它应该在没有 vim 的情况下工作。

© www.soinside.com 2019 - 2024. All rights reserved.