Imposta la codifica e la codifica dei file su utf-8 in Vim


95

Qual è la differenza tra questi due comandi?

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

Devo impostare entrambi quando voglio usare utf-8?

Inoltre, devo impostare la codifica dei file con seto setglobal?


Nota che è più sicuro impostare la codifica nel tuo LOCALE invece di forzarla in Vim, nel caso in cui modifichi un file non Unicode. Otterrai lo stesso risultato dato che verrà impostato su LOCALE e non sbaglierai alcun carattere straniero se incontrato.
timss

Risposte:


89

TL; DR

Nel primo caso con set encoding=utf-8, cambierai la codifica di output mostrata nel terminale.

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

Come affermato da @Dennis, puoi impostarli entrambi nel tuo ~ / .vimrc se vuoi sempre lavorare utf-8.

Più dettagli

Dal wiki di VIM su come lavorare con unicode

" encodingimposta il modo in cui vim deve rappresentare i caratteri internamente . Utf-8 è necessario per la maggior parte delle versioni di Unicode."

" fileencodingimposta la codifica per un particolare file (da locale a buffer);: setglobal imposta il valore predefinito. Può essere utilizzato anche un valore vuoto: il valore predefinito è uguale a" codifica ". Oppure potresti voler impostare una delle codifiche ucs, Potrebbe rendere lo stesso file su 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 big-endian o little-endian, quindi se tu usalo, probabilmente dovrai impostare "bomb" (vedi sotto). "


3
Scusa non capisco. Cosa fa più esattamente la codifica dei file?
Kiraly Zoltan

25
Nel primo caso, cambierai la codifica di output mostrata nel terminale. Nel secondo caso, cambierai la codifica di output del file che viene scritto.
Adrien Lacroix

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

Se necessario ad-hoc direttamente dalla riga di comando vim -c "set encoding=utf-8" file.ext.
Hans Ginzel,

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

Puoi anche impostare entrambi nel tuo ~/.vimrcse vuoi sempre lavorare con utf-8.


0

Puoi impostare la variabile 'fileencodings' nel tuo .vimrc.

Questo è un elenco di codifiche di caratteri considerate quando si inizia a modificare un file esistente. Quando un file viene letto, Vim cerca di usare la prima codifica dei caratteri menzionata. Se viene rilevato un errore, viene provato il successivo nell'elenco. Quando viene trovata una codifica che funziona, viene impostato "fileencoding". Se tutti falliscono, "fileencoding" viene impostato su una stringa vuota, il che significa che viene utilizzato il valore di "encoding".

Vedere :help filencodings

Se lavori spesso con ad esempio cp1252, puoi aggiungerlo lì:

set fileencodings=ucs-bom,utf-8,cp1252,default,latin9
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.