如何将可视化模式下的文本块保存到Vim中的文件中?

标题非常具有描述性。 以防万一,我会举一个例子:

START BLOCK1 something END BLOCK1 START BLOCK2 something somenthing... END BLOCK2 
  1. 我以可视模式selectBLOCK1
  2. 我按y按下它
  3. 我怎样才能将被猛拉的BLOCK1保存到其他文件?

select要保存的文本,可以是视觉或块视觉模式

 :w new.txt 

这就是你input的内容,但是你不会真正看到上面的内容。 当你按下时,你将进入命令行,它将自动填入select信息。 它看起来像这样:

 :'<,'> 

只要继续input其他( w new.txt )即可

 :'<,'>w new.txt 

…然后按回车。

选中该块后,您可以:'<,'>w other-file ,它将只将所选块写入other-file 。 点击:在可视模式下,你应该已经把'<,'>放到命令行中了,所以你只需要input:w other-file

有可能是一个简单的方法来做到这一点,但我会做的是创build一个新的缓冲区(或选项卡),然后将其粘贴与p 。 您可以创build一个新的缓冲区:new或新的选项卡:tabnew 。 你可以用下面的方法将缓冲区/选项卡写入文件:w filename

像评论中提到的@dronus一样, :w !pbcopybuild议不能正确复制,因为它复制了整个行。 如果我只想复制一行中的url,我将无法。 这里有一行你可以添加到你的.vimrc文件,这样每次你点击CTRL-C时,vim中的选定行就会被复制到剪贴板:

 map <Cc> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR> 

如果您想详细了解这个function,可以在我的博客上阅读

它与@rmeadorbuild议的一样。

类似于@ songz的解决scheme,我更喜欢用“:new”

 vmap <Cc> y:new ~/.vimbuf<CR>VGp:x<CR>:!pbcopy < ~/.vimbuf<CR><CR>