我經常使用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的原因。 –