VIM如何从第x行到y选择/复制列n

veh*_*zzz 2 vim

我使用可视块来复制某些范围内的特定列(例如行xy).我想知道是否有更简单的方法来完成同样的任务.

另外,在复制这些线后,我想将它们水平剪切并粘贴.可能吗?做J有点烦人,特别是如果行数很大的话.

例如,文件A(btw两个文件在拆分窗口中打开)是

............
sadsa asds  dog 
sadsa asds  cat
sadsa asds  me
sadsa asds  you
...........
Run Code Online (Sandbox Code Playgroud)

我想将第3列中的4行复制到文件B,文件B可能已包含数据.假设我想在第30行复制这些数据,这种方式(行号是假设的):

   ...............
   29.  other data
   30.  dog cat me you
   31.  other data
   ................
Run Code Online (Sandbox Code Playgroud)

Pet*_*ker 5

通过点击Ctrl-V文本块的左上角然后将光标移动到文本块的对角然后点击,使用可视化块模式从文件A复制文本y.移动到要粘贴文本块的文件B,然后执行以下操作:

:put
:'[,']join
Run Code Online (Sandbox Code Playgroud)

:put 将以行模式粘贴寄存器中的文本,包括视觉块抽取文本.

:joinJ命令连接在一起.

'[并且']是在变更的开始和结束时设置的标记.

:'[,']join 将从粘贴文本的开头加到粘贴文本的末尾.

有关更多信息,请参阅

:h :put
:h :j
Run Code Online (Sandbox Code Playgroud)