我经常使用vim满足我所有的需求。在非常罕见的情况下,我需要通过十六进制编辑器打开二进制文件,为此我启动文件上的vim,然后通过命令通过xxd运行它:%!xxd启动时执行外部命令
我的问题是,我该如何我的命令行直接以这种方式打开文件,如果该选项存在?就像打字:gvimbin <file>
然后它以正确的方式打开。
编辑:很明显,我正在寻找一个完整的解决方案,允许在启动时运行vim exec命令。
我经常使用vim满足我所有的需求。在非常罕见的情况下,我需要通过十六进制编辑器打开二进制文件,为此我启动文件上的vim,然后通过命令通过xxd运行它:%!xxd启动时执行外部命令
我的问题是,我该如何我的命令行直接以这种方式打开文件,如果该选项存在?就像打字:gvimbin <file>
然后它以正确的方式打开。
编辑:很明显,我正在寻找一个完整的解决方案,允许在启动时运行vim exec命令。
您可以后 Vim的启动执行命令通过他们通过-c
:
$ gvim -c '%!xxd' file.bin
这甚至可以简化,使得在Vim在二进制模式(-b
参数)启动时,它会自动转换的文件。把下面的内容~/.vimrc
:
if &binary
%!xxd
endif
,并开始与:
$ gvim -b file.bin
也有看hexman.vim - Simpler Hex viewing and editing插件;它使处理hexdump变得更容易。
像费利克斯说:
xxd <file> | vim -
你可以把这个成脚本,例如vimxxd
:
#!/bin/sh
xxd $1 | vim -
和使用,如:vimxxd file.txt
请参阅我的编辑。 – ygoncho
先通过xxd运行它,然后将输出传递给vim? 'xxd文件| vim -'。你可以把它放在脚本或函数中。 –
感谢您的回答,但这不起作用(gvim不会接受文本作为输入,只有文件名),也不能解决我的一般需求,那就是用exec命令启动vim。尽管如此,谢谢:) – ygoncho
Mmh:[我可以重定向程序输出到gvim?](http://stackoverflow.com/questions/856372/can-i-redirect-output-of-a-program-to-gvim )。但是,是的,我不知道你是否可以在启动时运行外部命令。但是,如果该命令仅用于转换文件的内容,那么我没有看到为什么不先执行外部命令并将输出传递给vim的原因。 –