2010-11-09 66 views
24

我想安裝的vim跳過最後一行添加EOL或EOF,我已經試過這種的Vim沒有在最後一行或EOF行結束

:set binary 
:set noeol 
:w 

這是不完美的原因二進制覆蓋文件類型供以後使用。

任何其他選項來設置此,我不需要最後一行換行符。

+0

二進制選項不會做任何對文件類型 – hobbs 2010-11-09 12:18:23

+0

要敬啓者:?你爲什麼投票關閉此常見問題解答告訴*「軟件程序員常用的工具」 *是對話題 – Benoit 2010-11-09 12:20:35

+0

@hobbs設置文件爲二進制禁用許多選項,:幫助斌 – 2010-11-09 12:42:07

回答

7

這是更好的,我發現某處:

au BufWritePre * :set binary | set noeol 
au BufWritePost * :set nobinary | set eol 
+0

此外,在某些情況下,默認情況下,在.vimrc中預先設置「noeol」會很有用。 – FelikZ 2014-03-19 11:04:13

4

從VIM文檔:

'binary' 'bin'  boolean (default off) 
      local to buffer 
      {not in Vi} 
    This option should be set **before** editing a binary file. You can also 

因此,應該使用vim -b:e ++bin file,或使用:e! ++bin重裝。

+0

二進制不工作對我來說,因爲它重置文件類型,任何其他選項,以在EOF關閉停產? – 2010-11-09 12:26:47

+0

然後使用':setf your_file_type'來啓用它? – Benoit 2010-11-09 12:29:46

+0

我需要這個PHP文件,及其對很多黑客,使二元,設置諾埃爾,保存文件,比禁用二進制文件和設置文件類型。我也使用NERDTree,我可能不得不破解這個功能。 – 2010-11-09 12:39:57

1

我已經想出了這一點:

" php remove eol from end of file 
autocmd FileType php setlocal noeol binary fileformats="mac,unix,dos" 

謝謝大家。

乾杯。

15

我想補充一個答案,我認爲可以作爲有用的。所選答案總是刪除文件上的EOL,即使它們有一個開頭。這可能是你想要的行爲,也可能不是。在我看來,我想保留 EOL,因爲我最初打開文件。

我的建議是稍作修改。將set binary放在您的.vimrc文件的頂部。這樣任何文件都將以二進制模式打開。如果他們沒有EOL,那麼vim會檢測到這個並將其保留爲NOEOL。如果他們有一個EOL,那麼它會認識到它有一個EOL並且保持不變。

如果您想文件還沒有停產,那麼你應該設置,

au BufNewFile * set noeol 

的第一章的命令是,如果你總是 NOEOL 不斷。要注意的一件事是,如果你的底部有一個空格的文件,那麼你最終會失去空格。這是因爲以下情況,

  1. VIM讀取該文件,並看到一個新行末,並認爲,OK,這是一個換行符文件(不管是否以二進制方式與否)。
  2. 然後,當您寫它執行自動命令文件,
    1. 設置二進制模式
    2. 集noeol(這將刪除EOL是VIM 認爲是結尾的文件並將其刪除。
    3. 的文件中獲取保存
  3. 現在你有一個文件,其中有一個較少的EOL。

該過程將重複進行,直到EOL消失並且文件以單個字符結尾。隨着我的設置,會發生什麼情況是被打開的文件,如果Vim看到在至少一個EOL那麼它保持它的內部。如果你保存文件,它的存在,無論什麼(你可以通過鍵入set eol?檢查,在您要擺脫內部存儲EOL的情況下,你剛纔說set noeol,然後保存並BOOM,最後EOL是。除去

的whooo,我囉嗦打字這個

相關問題