如何将可视化模式下的文本块保存到Vim中的文件中?
标题非常具有描述性。 以防万一,我会举一个例子:
START BLOCK1 something END BLOCK1 START BLOCK2 something somenthing... END BLOCK2
- 我以可视模式select
BLOCK1 - 我按y按下它
- 我怎样才能将被猛拉的
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>