如何将可视化模式下的文本块保存到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 !pbcopy
build议不能正确复制,因为它复制了整个行。 如果我只想复制一行中的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>