2010-11-09 11 views
24

Sto provando ad installare vim saltare EOL aggiungendo nell'ultima riga o eof, ho provato questoVim senza fine linea ultima linea o eof

:set binary 
:set noeol 
:w 

che non è perfetto causa binario tipofile sostituzione per dopo uso.

Qualsiasi altra opzione per impostare questo, non ho bisogno di nuova riga sull'ultima riga.

+0

L'opzione binaria non fa nulla per filetype – hobbs

+0

a chi può interessare:..? Perché si vota per chiudere questa FAQ Il dice che * “software strumenti comunemente utilizzati dai programmatori "* sono in argomento. – Benoit

+0

@hobbs che imposta il file su binario disabilita molte opzioni,: help bin –

risposta

7

questo è ancora meglio che ho trovato da qualche parte:

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

Inoltre, per alcuni casi sarà utile anteporre 'set noeol' nel tuo .vimrc per impostazione predefinita. – FelikZ

4

Da documentazione 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 

Si dovrebbe quindi utilizzare vim -b o :e ++bin file, o ricaricare utilizzando :e! ++bin.

+0

Il binario non funziona per me, perché resetta il tipo di file, qualsiasi altra opzione per disabilitare eol su eof? –

+0

Quindi usa ': setf your_file_type' per riattivarlo? – Benoit

+0

Ho bisogno di questo per i file php, e il suo è molto hacking, abilitando il binario, impostando noel, salvando il file, e disabilitando il binario e impostando il tipo di file. Uso anche NERDTree che probabilmente avrei dovuto modificare per ottenere questa funzionalità. –

1

ho si avvicinò con questo:

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

Grazie a tutti.

Cheers.

15

ho voluto aggiungere una risposta che ritengo possa essere utile. La risposta selezionata sempre rimuove l'EOL sui file anche se ne avevano uno per iniziare. Questo potrebbe essere il comportamento che vuoi, potrebbe anche non esserlo. A mio parere voglio conservare EOL come ho originariamente aperto il file.

Quello che suggerisco è una leggera modifica. Inserisci set binary nella parte superiore del tuo file .vimrc. In questo modo tutti i file si apriranno in modalità binaria. Se non hanno EOL allora vim lo rileva e lo lascia NOEOL. Se hanno un EOL allora lo riconoscerà come se avesse un EOL e lo lasci essere.

Se volete nuovi file, inoltre, non hanno EOL allora si deve impostare,

au BufNewFile * set noeol 

I comandi per il tizio sarebbe se si sempre vogliono NOEOL mai. L'unica cosa di cui essere consapevoli è che se si ha un file con spazi in fondo, si perderanno spazi alla fine. Questo perché succede questo,

  1. VIM legge il file e vedere una nuova riga alla fine e pensa, OK, questo è un file con una nuova riga (indipendentemente dal fatto che in modalità binaria o meno).
  2. Quando poi scrive un file esegue l'autocmd,
    1. impostare la modalità binaria
    2. set noeol (questo cancella l'EOL che VIM pensato stava finendo il file e lo elimina.
    3. il file viene salvato
  3. Ora si dispone di un file con meno EOL.

Questo processo si ripeterà fino a quando l'EOL non sarà terminato e il file termina con un singolo carattere. Con il mio setup, ciò che accade è che il file viene aperto e se VIM vede a un valore minimo di un EOL allora lo mantiene internamente. Se si salva quel file, non importa cosa sia lì (è possibile controllare digitando set eol?. Nel caso in cui si desideri eliminare quell'EOL memorizzato internamente, è sufficiente dire set noeol e quindi salvare e BOOM, l'ultimo EOL è . rimosso

whooo, sto scrivendo questo senza fiato

Problemi correlati