使用Vim,我正在尝试将在可视模式下选择的文本管道传输到UNIX命令,并将输出附加到当前文件的末尾.例如,假设我们有一个SQL命令,例如:
SELECT * FROM mytable;
Run Code Online (Sandbox Code Playgroud)
我想做类似以下的事情:
<ESC>
V " select text
:'<,'>!mysql -uuser -ppass mydb
Run Code Online (Sandbox Code Playgroud)
但是,我希望将输出附加到文件的末尾,而不是让输出覆盖当前选定的文本.你可能会看到它的发展方向.我正在使用Vim作为一个简单的SQL编辑器.这样,我不必让Vim进行编辑,调整,测试SQL代码.
如何将所选文本复制到文件末尾,选择副本并运行命令?如果您不想一遍又一遍地重复相同的命令,则可以使用q或添加新命令来记录序列.我尝试过后者如下:
:com -range C <line1>,<line2>yank | $ | put | .,$ !rev
Run Code Online (Sandbox Code Playgroud)
有了它,您可以选择一些行,然后键入:C.这将首先拉动选择,然后转到文件的末尾,粘贴被拉动的文本并rev在新文本上运行命令(在本例中).