2014-01-23 166 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