我想要将yanked文本粘贴到Vim的命令行中。这可能吗?


当前回答

“[a-z]y:复制文本到[a-z]寄存器 用途:!切换到编辑命令 Ctrl + R:跟随寄存器标识粘贴所复制的内容。

它以前用的是CentOS 7。

其他回答

我也遇到过类似的问题。我希望选择的文本以命令结尾,而不是依赖于粘贴它。下面是我试图为之写映射的命令:

:call VimuxRunCommand("python")

这个插件的文档只显示使用字符串文字。如果你试图选择包含双引号的文本,下面将会中断:

vnoremap y:call VimuxRunCommand("<c-r>"")<cr>

为了解决这个问题,你只需要使用@引用宏的内容:

vnoremap y:call VimuxRunCommand(@")<cr>

将未命名寄存器的内容传递进来,并使用双引号和多行边格。

要将系统剪贴板中的内容粘贴到Vim命令行(“命令模式”),请使用Ctrl+R后跟+。对我来说,至少在Ubuntu上,Shift+Ins不起作用。

PS:我不确定为什么按Ctrl+R加*,理论上与按Ctrl+R加+一样,似乎并不总是有效。我搜索并发现了+版本,它似乎总是工作,至少在我的盒子。

OS X

如果你在Mac OS X上使用Vim,不幸的是它带有旧版本,并且不符合剪贴板选项。幸运的是,Homebrew可以轻松解决这个问题。

安装Vim:

编译安装vim——with-lua——with-override-system-vi

安装Vim的GUI版本:

安装macvim -with-lua -with-override-system-vi

重启终端生效。

将下面的行追加到~/.vimrc 设置剪贴板=不知名的

现在你可以用yy在Vim中复制这一行,并在系统范围内粘贴它。

“我想把文本粘贴到Vim命令行中。”

虽然投票最多的答案非常完整,但我更喜欢编辑命令历史。

在正常模式下,输入:q:。这将为您提供一个最近命令的列表,可以用普通的vim命令编辑和搜索。您将从底部的空白命令行开始。

对于这篇文章所要求的事情,粘贴一个拉出的行(或任何东西)到命令行,拉出你的文本,然后:q:p(进入命令历史编辑模式,然后(p)将你拉出的文本放入一个新的命令行。随意编辑,输入即可执行。

要退出命令历史模式,则相反。在命令历史记录的普通模式下,输入::q + enter

我喜欢使用Control-v从系统剪贴板粘贴,所以我使用:

cnoremap <C-v> <C-r>+