2014-01-23 137 views
0

我经常使用vim满足我所有的需求。在非常罕见的情况下,我需要通过十六进制编辑器打开二进制文件,为此我启动文件上的vim,然后通过命令通过xxd运行它:%!xxd启动时执行外部命令

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

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

+0

先通过xxd运行它,然后将输出传递给vim? 'xxd文件| vim -'。你可以把它放在脚本或函数中。 –

+0

感谢您的回答,但这不起作用(gvim不会接受文本作为输入,只有文件名),也不能解决我的一般需求,那就是用exec命令启动vim。尽管如此,谢谢:) – ygoncho

+0

Mmh:[我可以重定向程序输出到gvim?](http://stackoverflow.com/questions/856372/can-i-redirect-output-of-a-program-to-gvim )。但是,是的,我不知道你是否可以在启动时运行外部命令。但是,如果该命令仅用于转换文件的内容,那么我没有看到为什么不先执行外部命令并将输出传递给vim的原因。 –

回答

2

您可以后 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变得更容易。

0

像费利克斯说:

xxd <file> | vim - 

你可以把这个成脚本,例如vimxxd

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

和使用,如:vimxxd file.txt

+0

请参阅我的编辑。 – ygoncho