如何将拖动的文本粘贴到Vim命令行中
我想把被拉出来的文本粘贴到Vim的命令行中。可能吗?是的。点击Ctrl-R,然后点击“。如果你在你拉出来的内容中有文字控制字符,使用Ctrl-R,Ctrl-O,” 下面是关于如何使用寄存器的说明。你能用寄存器做的事情是非同寻常的,一旦你知道如何使用它们,你就离不开它们了 寄存器基本上是字符串的存储位置。Vim有许多以不同方式工作的寄存器:如何将拖动的文本粘贴到Vim命令行中,vim,copy-paste,Vim,Copy Paste,我想把被拉出来的文本粘贴到Vim的命令行中。可能吗?是的。点击Ctrl-R,然后点击“。如果你在你拉出来的内容中有文字控制字符,使用Ctrl-R,Ctrl-O,” 下面是关于如何使用寄存器的说明。你能用寄存器做的事情是非同寻常的,一旦你知道如何使用它们,你就离不开它们了 寄存器基本上是字符串的存储位置。Vim有许多以不同方式工作的寄存器: 0(拖动寄存器:在正常模式下使用y时,在不指定寄存器的情况下,拖动的文本会转到那里,也会转到默认寄存器) 1到9(移动删除寄存器,当您使用c或d等命令时,已
(拖动寄存器:在正常模式下使用0
时,在不指定寄存器的情况下,拖动的文本会转到那里,也会转到默认寄存器)y
到1
(移动删除寄存器,当您使用9
或c
等命令时,已删除的将进入寄存器1,寄存器1中的将进入寄存器2,等等)d
(默认寄存器,也称为未命名寄存器。这就是“在Ctrl-R中出现”的原因)“
toa
供您自己使用(大写的z
toa
用于附加到相应的寄存器)z
(与\uu
(Unix)或/dev/null
(Windows)类似,您可以对其进行写入,但它会被丢弃,当您从中读取时,它始终为空)NUL
(小删除寄存器)-
(搜索模式寄存器,当您使用/
、/
、?
或*
查找文本时更新;您也可以对其进行写入以动态更改搜索模式)#
(通过:
或Q
存储最后一个VimL键入的命令,只读):
和+
(系统剪贴板寄存器,您可以写入它们以设置剪贴板并从中读取剪贴板内容)*
:帮助寄存器
,以获取完整参考
您可以随时使用:registers
显示所有寄存器的内容。此命令的同义词和缩写为:display
、:reg
和:di
在Insert或命令行模式下,Ctrl-R加上寄存器名可插入此寄存器的内容。如果要按字面插入(无自动缩进,无需将控制字符(如0x08
转换为backspace等),可以使用Ctrl-R、Ctrl-O、寄存器名。
有关更多参考信息,请参见:帮助i_CTRL-R
和以下段落
但您也可以做以下操作(我可能忘记了寄存器的许多用法)
- 在正常模式下,点击“:p”。vim中使用的最后一个命令将粘贴到缓冲区中。
让我们分解:
是一个普通模式命令,允许您选择下一次拖动、删除或粘贴操作期间要使用的寄存器。因此”:选择冒号寄存器(存储最后一个命令)。那么p是一个您已经知道的命令,它粘贴寄存器的内容 参见“
,:help“
:help quote.
- 您正在编辑一个VimL文件(例如您的
),并且希望立即执行两行连续的命令:yj:@“Enter..vimrc
在这里,yj将当前和下一行(这是因为j是一个逐行运动,但这超出了这个答案的范围)拉入默认寄存器(也称为未命名寄存器)。然后,
Ex命令播放作为参数存储在寄存器中的Ex命令,:@
是您引用未命名寄存器的方式。另请参见此答案的顶部,它是相关的 不要将此处使用的“
与上一示例中的“
混淆,后者是正常模式命令 参见”
和:help:@
:help quote\u quote
- 以插入模式将最后一个搜索模式插入到文件中,或使用Ctrl-R、/,将最后一个搜索模式插入到命令行中
参见
,:帮助引用
推论:保留您的搜索模式,但添加一个备选方案:帮助i\u CTRL-R
Ctrl-R,//
\\124;备选方案
<>你在Visual模式中选择了两个单词,用“代码”> y>代码>,它们在未命名的登记表中。现在你想在你所在的地方打开一个新的行,用这两个词:<代码>:PU<代码>。这是<>代码>:放“< /代码>。<代码>:放< /Cord>命令,就像许多EX命令一样,只在线路上工作
cf.
:帮助:放置
您也可以这样做::调用setreg(“,@”,“V”)
然后调用p
。setreg
函数将寄存器的名称设置为第一个参数(作为字符串),使用第二个参数的内容对其进行初始化(您可以使用寄存器作为变量,名称为@x
,其中x
是VimL中的寄存器名称),并将其转换为第三个参数中指定的模式,V
用于行方式,字符方式不含任何内容,而文字^V
用于块方式
参见:help setreg()
。反向函数是getreg()
和getregtype()
qa
…q
录制了一个宏,那么:echo@a
将告诉您键入的内容,并且@a
将重播该宏(可能您知道,为了避免重复任务,该宏非常有用)
参见:help q
,help@
上一个示例的推论:如果剪贴板中有8go
,则@+
将以宏的形式播放剪贴板内容,从而转到文件的第8个字节。实际上,这几乎适用于所有寄存器。如果上次插入的字符串是插入模式下的dd
,则@.
将(因为
寄存器包含上次插入的str
:call VimuxRunCommand("python")
vnoremap y:call VimuxRunCommand("<c-r>"")<cr>
vnoremap y:call VimuxRunCommand(@")<cr>