我想要实现的是将视觉选择发送到外部程序,而不影响缓冲区内容。
示例
让以下代码块表示当前缓冲区。让[<]表示视觉选择的开始,[>]表示结束。
这适用于逐行发送内容,例如:
然而,使用上述缓冲区作为示例:
示例
让以下代码块表示当前缓冲区。让[<]表示视觉选择的开始,[>]表示结束。
This is not a test 1
[<]This is not[>] a test 2
This is not a test 3
This is not a test 4
我希望能将此文本发送到外部程序,例如:
:<some vim command>!<some shell command>
近乎解决方案?
一个几乎可行的解决方案是:
:[range]w ! cat | <some shell command>
这适用于逐行发送内容,例如:
:%w ! wc -l # produces --> '4'
:2,3w ! wc -l # produces --> '2'
:2w ! wc -w # produces --> '6'
然而,使用上述缓冲区作为示例:
:'<,'>w ! wc -w # produces --> '6'
但我希望有一种方法可以产生数字“3”,并且不会影响缓冲区的内容。
有什么想法吗?
g CTRL-G
。参见:h v_g^g
。 - glts