从 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 保存选定的文本(部分行)的主要内容,如果未能解决你的问题,请参考以下文章

从 tech.io 代码部分获取选定的文本

如何在vim中将选定的行复制到剪贴板

我需要 VBA 帮助以从部分选定文本中查找完整文件名

全屏文本编译器vim

vim文本创建编辑

《VIM--学习笔记》