当前位置: 首页 > 面试题库 >

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

蒋斯伯
2023-03-14
问题内容

使用Vim,我试图将在可视模式下选择的文本传递给UNIX命令,并将输出附加到当前文件的末尾。例如,假设我们有一个SQL命令,例如:

SELECT * FROM mytable;

我想做以下事情:

<ESC>
V                 " select text
:'<,'>!mysql -uuser -ppass mydb

但是,我不想让输出覆盖当前选择的文本,而是希望将输出附加到文件末尾。您可能会看到前进的方向。我正在使用Vim作为简单的SQL编辑器。这样,我不必离开Vim来编辑,调整,测试SQL代码。


问题答案:

将所选文本复制到文件末尾,选择复制并运行命令,该如何做?如果您不想一遍又一遍地重复相同的命令,则可以通过使用q或添加新命令来记录序列。我已经尝试了以下方法:

:com -range C <line1>,<line2>yank | $ | put | .,$ !rev

有了它,您可以选择一些行,然后键入:C。这将首先拉动选择,然后转到文件末尾,粘贴拉出的文本并rev在新文本上运行命令(在这种情况下)。



 类似资料:
  • 问题内容: 我该怎么做才能将其附加到文件中而不是覆盖? 问题答案: 使用附加:

  • 问题内容: 我想将命令的每个输出作为多个参数传递给第二个命令,例如: 返回: 我想复制这些输出,例如: 我该怎么做呢?就像是: 问题答案: 您可以使用:

  • 问题内容: 我需要稍后再运行一个mail.php文件,而不是让用户在提交register.php时等待发送验证电子邮件。 因此,我选择在1分钟后使用 at 命令在命令行中运行mail.php( 在register.php 中 调用 ): 但是,当我处于at命令的交互模式时,我只能将参数发送到该php文件。 由于我希望这是自动的,因此我需要在运行时使用shell脚本: 但是我找不到传递 {email

  • 问题内容: 我有一些二进制数据的缓冲区: 我想追加。 如何追加更多二进制数据?我正在搜索文档,但是要附加数据,它必须是字符串,否则,将发生错误( TypeError:Argument必须是string ): 然后,我在这里看到的唯一解决方案是为每个附加的二进制数据创建一个新缓冲区,并将其复制到具有正确偏移量的主缓冲区中: 但这似乎效率不高,因为我必须为每个追加实例化一个新的缓冲区。 您知道附加二进

  • 我想使用片段着色器输出到FBO,然后将其纹理附件绘制到默认帧缓冲区。最终,我希望能够输出到一个FBO,然后使用另一个着色器将其传递到另一个FBO,以此类推。但我认为让它在默认帧缓冲区上工作是一个很好的第一步,尤其是对于调试着色器的输出。 我不确定我做错了什么,我已经建立了一个小程序来演示它。它与learnopengl上的完整示例基本相同。com这里:https://learnopengl.com/

  • 问题内容: 我有一个在远程服务器上执行Shell脚本的Hudson作业。 它的shell命令是: 我将此构建标记为已参数化,并添加了一个字符串参数: 当我运行它时,会分配参数,但会将其传递到Shell脚本中。 问题答案: 参数化的Build Jenkins插件文档指出 由参数添加的所有环境变量均为 大写 在您的情况下,这应该起作用: