从 Vim 保存选定的文本(部分行)
Posted
技术标签:
【中文标题】从 Vim 保存选定的文本(部分行)【英文标题】:Save selected text (partial line) from Vim 【发布时间】:2012-09-05 13:27:49 【问题描述】:我尝试从 Vim 中保存一些选定的文本(一行的一部分)。这是一行:
这个测试字符串 - SELECTED_TARGET_WORLD
粗体表示选择文本。我这样做:
:'<,'> w! test/selected_text
但在文件selected_text
中我找到了字符串:
THIS TEST STRING - SELECTED_TARGET_WORLD
如何让它只保存行的选定部分?
【问题讨论】:
In vim, how to write a partial line to a file?的可能重复 【参考方案1】::[range]w filename
仅适用于行,所以……您必须将选定的文本放在单独的行上。
使用:help :redir
的替代方法:
:'<,'>"ay
:redir filename
:echo @a
:redir END
【讨论】:
【参考方案2】:帮助 (:h :w
) 中没有记录这种情况,但 :w
仅处理行范围(您会在多行示例中看到这一点)。
要执行您想要的操作,您必须首先将您的选择粘贴到一个临时缓冲区(或在其自己的行上,然后将其放回原位),然后保存该缓冲区。如果这是您经常要做的事情,那么这很容易实现自动化。
【讨论】:
它被记录在案,但它与 vi 的丰富历史混合在一起:所有 Ex 命令仅适用于全行范围;视觉选择是 Vim 扩展,因此与底层模型有些不一致。【参考方案3】:我就是这样,FYR~
通过“视觉模式”选择部分内容后,按 Ctrl-C 触发它
vmap <C-c> y:new ~/.vimbuf<CR>VGp:x<CR>
【讨论】:
我一直在寻找这个部分行问题的答案,这是最简单、最快和最集成的 vim 功能,没有奇怪的警告。是的,您丢失了“以前的缓冲区”快捷方式,但这是值得的。 很高兴你喜欢这种简单的方法,一个完整的 Ctrl-C 和 Ctl-P 方式供我日常使用,仅供参考 @TroyFletcher github.com/chenkaie/DotFiles/blob/…以上是关于从 Vim 保存选定的文本(部分行)的主要内容,如果未能解决你的问题,请参考以下文章