2012-06-11 108 views
2

正如vim doc所說,我可以使用-b選項來打開一個二進制文件。爲什麼-b(二進制)選項在vim中不起作用?


-b  Binary mode. File I/O will only recognize <NL> to separate 
     lines. The 'expandtab' option will be reset. The 'textwidth' 
     option is set to 0. 'modeline' is reset. The 'binary' option 
     is set. This is done after reading the vimrc/exrc files but 
     before reading any file in the arglist. See also 
     |edit-binary|. {not in Vi} 

我用這個命令打開VIM:

$ vim --cmd 'set et' -u NONE -b 

I型此命令來查看選項:

:set et? bin? 

    expandtab 
    binary 

etexpandtab)選項未被重置。爲什麼?
感謝您的幫助!

+1

也許我正在讀這個錯誤,你將'expandtab'選項設置爲一個參數,'-b'在此之前重置它。 –

+0

@Fredrik。明確問題。我沒有發佈我的'.vimrc'。我認爲這個命令包含我想說的。 – kev

+0

該文檔還聲明'modeline'已關閉,但檢查該選項與'et'具有相同的結果。 – voithos

回答

1

問題是,簡單地說,--cmd -c或+cmd參數是在處理其他標誌後執行的。這是有道理的,因爲它不會有效地做任何事情。

:verbose set et? 

會告訴你確切的。如果您需要針對您的特定樣本的解決方法vim +'set binary'(不太可能,因爲et!=二進制)

您對--cmd的文檔是正確的。所以它歸結爲訂單其中的命令行標誌被解釋,這基本上是'未定義'。雖然

這是閱讀的vimrc /的exrc文件後,但在閱讀的任何文件在arglist中

可以採取「處理其它命令行參數之前」暗示之前完成。

注意'+'命令本質上與特定文件一起進行處理,並且按它們出現的順序處理(AFAICT),即使與文件名參數混合在一起。

+0

''cmd'在'vimrc'之前執行,'-b'在'vimrc'之後執行,'-c'在緩衝區加載之後執行。 – kev

+0

@kev我認爲這是準確的。 – sehe

相關問題