回答

收藏

如何将视觉上选择的文本传递给UNIX命令并将输出附加到Vim中的当前缓冲区

技术问答 技术问答 185 人阅读 | 0 人回复 | 2023-09-14

使用Vim,我试图将在可视模式下选择的文本传递给UNIX命令,并将输出附加到当前文件的末尾。例如,假设我们有一个SQL命令,例如:
7 ^' v' x: g6 A5 M8 h' E7 {SELECT * FROM mytable;8 Q' l. w$ @% |! U8 P- s
我想做以下事情:
) ~2 a+ h! d9 S3 t! J) R# F" e* e, L% K( Q0 @* P% f8 ~
V                 " select text3 O7 @7 i# ~. V  R( `" k
:'!mysql -uuser -ppass mydb
& P# s5 g( }, W$ g但是,我不想让输出覆盖当前选择的文本,而是希望将输出附加到文件末尾。您可能会看到前进的方向。我正在使用Vim作为简单的SQL编辑器。这样,我不必离开Vim来编辑,调整,测试SQL代码。# B& r% E$ t  X! w) P; R3 k' i
               
4 l" O- r5 q' T7 _' c; ?解决方案:6 w4 ?4 E% C" H3 p( |4 S
               
/ S) e5 e+ C5 @( c. r( T3 ^
, R. p& j8 R7 X2 c, E  j4 X' j5 R1 W3 R! E
                将所选文本复制到文件末尾,选择复制并运行命令,该如何做?如果您不想一遍又一遍地重复相同的命令,则可以通过使用q或添加新命令来记录序列。我已经尝试了以下方法:' Y4 k9 a& L  g! b' {" B5 B
:com -range C ,yank | $ | put | .,$ !rev
5 x$ o+ x+ ?7 J+ j8 |4 U有了它,您可以选择一些行,然后键入:C。这将首先拉动选择,然后转到文件末尾,粘贴拉出的文本并rev在新文本上运行命令(在这种情况下)。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则