【问题标题】:Execute an external command on startup启动时执行外部命令
【发布时间】:2014-02-13 16:30:50
【问题描述】:

我经常使用 vim 来满足我的所有需求。在极少数情况下,我需要通过十六进制编辑器查看打开二进制文件,为此我在文件上启动 vim,然后通过 xxd 通过命令运行它:%!xxd

我的问题是,如果存在该选项,我如何让我的命令行以这种方式直接打开文件?比如输入:gvimbin <file>,然后它会以正确的方式打开。

编辑:明确地说,我正在寻找一个允许在启动时运行 vim exec 命令的完整解决方案。

【问题讨论】:

  • 先通过 xxd 运行,然后通过管道输出到 vim? xxd file | vim -。您可以将其放入脚本或函数中。
  • 感谢您的回答,但这不起作用(gvim 不会接受编辑器的文本作为输入,只有文件名),也不能解决我启动 ​​vim 的一般需求使用 exec 命令。不过还是谢谢:)
  • 嗯:Can I redirect output of a program to gvim?。但是,是的,我不知道您是否可以在启动时运行外部命令。但是如果该命令仅用于转换文件的内容,那么我看不到为什么不先执行外部命令并将输出传递给 vim 的原因。
  • 你是对的,对不起,最后没有看到那个破折号。

标签: vim hex-editors


【解决方案1】:

您可以通过-c 传递命令 Vim 启动后执行命令:

$ gvim -c '%!xxd' file.bin

这甚至可以简化,当 Vim 以 二进制模式-b 参数)启动时,它会自动转换文件。将以下内容放入您的~/.vimrc

if &binary
    %!xxd
endif

然后开始:

$ gvim -b file.bin

还可以查看hexman.vim - Simpler Hex viewing and editing 插件;它使处理十六进制转储变得更容易。

【讨论】:

    【解决方案2】:

    就像菲利克斯说的:

    xxd <file> | vim -
    

    您可以将其放入脚本中,例如 vimxxd:

    #!/bin/sh
    xxd $1 | vim -
    

    并像这样使用:vimxxd file.txt

    【讨论】:

      猜你喜欢
      • 2013-04-16
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 2011-08-15
      相关资源
      最近更新 更多