Vim 想在一个块上写入

Vim 想在一个块上写入

我有这个文件

dvb-apps:
dvb-apps:
dvb-apps:       
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
~                                                                                                                                     
~   

我想在 DVB 应用程序之后的块中输入描述(复制和粘贴):所以结果如下

dvb-apps:
dvb-apps:
dvb-apps:       
dvb-apps:
dvb-apps:
dvb-apps: Bla bla,description bla bla bla
dvb-apps: Bla bla,description bla bla bla
dvb-apps: Bla bla,description bla bla bla
dvb-apps: Bla bla,description bla bla bla
dvb-apps:
dvb-apps:

如果我使用控制台中的标准粘贴,我会得到

dvb-apps: Bla bla,description bla bla bla
Bla bla,description bla bla bla
Bla bla,description bla bla bla
Bla bla,description bla bla bla
dvb-apps:
dvb-apps:
dvb-apps:

如何粘贴到块中?

答案1

像您一样将内容复制到 vim 中的文档中,大概是在 X 中使用鼠标中键,使用插入模式,但在单独的行上。

然后转到新插入的第一行的第一列,并进入可视块模式,CTRL+v您可以在其中选择内容。这里唯一的问题可能是不同的行长度,有时很难选择视觉块中的整个内容。您可能必须首先在最后一行添加一些空格,以便能够选择所有行的所有列。

完成此操作后,d按删除键,导航到第一个目标行的正确列并使用 粘贴p

或者,执行任务但不是问题的实际解决方案,要求在 vim 中执行,将创建两个单独的文件:

dvb-apps:
dvb-apps:
dvb-apps:       
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
dvb-apps:
~       




布拉布拉,描述布拉布拉布拉
布拉布拉,描述布拉布拉布拉
布拉布拉,描述布拉布拉布拉
布拉布拉,描述布拉布拉布拉


然后使用

paste <FILE1> <FILE2> > <OUTPUTFILE>

将两个文件放在一起。

答案2

和我的无条件粘贴插件,您可以强制粘贴分块,这就是您想要的。因此,不要进入插入模式并使用鼠标中键粘贴(我想您已经完成了),而是将寄存器"*与插件的gbp映射一起使用。

答案3

如果您有xclipsudo apt-get install xclip或类似的),您可以使用 . 从命令行访问系统(即 Xorg)剪贴板xclip -o。这样,您可以!paste - <(xclip -o)将键映射(例如<LEADER>p)定义为:

:map <LEADER>p .,$!paste - <(xclip -o)<NL>

并用于<LEADER>p粘贴当前 X 剪贴板内容。

<LEADER>默认为\(因此在上面的示例中将\p执行粘贴命令),但可以更改为任何内容,-例如,通过:let mapleader="-".

相关内容