2013-05-12 16 views
66

Qual è la differenza tra questi due comandi?Impostare codifica e codifica file su utf-8 in Vim

  • set encoding=utf-8
  • set fileencoding=utf-8

Devo impostare sia quando voglio usare utf-8?

Inoltre, è necessario impostare il fileencoding con set o setglobal?

+0

Nota che è più sicuro impostare la codifica nel LOCALE anziché forzarlo in Vim, nel caso in cui modifichi un file non Unicode. Otterrai lo stesso risultato che verrà impostato come predefinito su LOCALE e non incontrerai alcun carattere straniero se soddisfatti. – timss

risposta

56

TL; DR

Nel primo caso con set encoding=utf-8, potrà modificare la codifica output cioè mostrata nel terminale.

Nel secondo caso con set fileencoding=utf-8, si modifica la codifica di output del file che è scritto.

Come affermato da @Dennis, è possibile impostare sia nel vostro ~/.vimrc se si vuole sempre lavorare in utf-8.

Maggiori dettagli

Dalle wiki of VIM about working with unicode

"encoding set come vim deve rappresentare caratteri internamente. UTF-8 è necessario per la maggior parte delle versioni di Unicode."

"fileencoding imposta la codifica per un particolare file (locale al buffer);: set setglobal il valore di default Un valore vuoto può essere utilizzata anche: il default è uguale a 'codifica' o si può.. vuoi impostare una delle codifiche ucs, potrebbe rendere lo stesso file disco più grande o più piccolo a seconda del tuo particolare mix di caratteri. Inoltre, IIUC, utf-8 è sempre big-endian (prima bit alto) mentre ucs può essere grande- endian o little-endian, quindi se lo si utilizza, si avrà probabilmente bisogno di impostare 'bomba '(vedi sotto).'

+1

Mi dispiace, non capisco. Cosa fa la codifica dei file più esattamente? –

+22

Nel primo caso, cambierai la codifica dell'output mostrata nel terminale. Nel secondo caso, cambierai la codifica dell'output del file che è stato scritto. –

+0

+1 Per una risposta breve e dolce, invece di ripetere la documentazione ufficiale! :) – 425nesp

70
set encoding=utf-8 " The encoding displayed. 
set fileencoding=utf-8 " The encoding written to file. 

si può come pure impostare entrambi nel tuo ~/.vimrc se vuoi sempre lavorare con utf-8.