【发布时间】:2012-09-05 13:27:49
【问题描述】:
我尝试从 Vim 中保存一些选定的文本(一行的一部分)。这是一行:
这个测试字符串 - SELECTED_TARGET_WORLD
粗体表示选择文本。我这样做:
:'<,'> w! test/selected_text
但在文件selected_text 中我找到了字符串:
THIS TEST STRING - SELECTED_TARGET_WORLD
如何让它只保存行的选定部分?
【问题讨论】:
我尝试从 Vim 中保存一些选定的文本(一行的一部分)。这是一行:
这个测试字符串 - SELECTED_TARGET_WORLD
粗体表示选择文本。我这样做:
:'<,'> w! test/selected_text
但在文件selected_text 中我找到了字符串:
THIS TEST STRING - SELECTED_TARGET_WORLD
如何让它只保存行的选定部分?
【问题讨论】:
:[range]w filename 仅适用于行,所以……您必须将选定的文本放在单独的行上。
使用:help :redir的替代方法:
:'<,'>"ay
:redir filename
:echo @a
:redir END
【讨论】:
帮助 (:h :w) 中没有记录这种情况,但 :w 仅处理行范围(您会在多行示例中看到这一点)。
要执行您想要的操作,您必须首先将您的选择粘贴到一个临时缓冲区(或在其自己的行上,然后将其放回原位),然后保存该缓冲区。如果这是您经常要做的事情,那么这很容易实现自动化。
【讨论】:
我就是这样,FYR~
通过“视觉模式”选择部分内容后,按 Ctrl-C 触发它
vmap <C-c> y:new ~/.vimbuf<CR>VGp:x<CR>
【讨论】: