Tenga en cuenta que es más seguro establecer la codificación en su LOCALE en lugar de forzarla en Vim, en caso de que edite un archivo que no sea Unicode. Obtendrá el mismo resultado, ya que estará predeterminado en LOCALE y no arruinará ningún personaje extranjero si se encuentra.
timss
Respuestas:
89
TL; DR
En el primer caso con set encoding=utf-8, cambiará la codificación de salida que se muestra en el terminal.
En el segundo caso con set fileencoding=utf-8, cambiará la codificación de salida del archivo que está escrito .
Como lo indicó @Dennis, puede configurar ambos en su ~ / .vimrc si siempre desea trabajar en utf-8.
" encodingestablece cómo vim representará los caracteres internamente . Utf-8 es necesario para la mayoría de versiones de Unicode".
" fileencodingestablece la codificación para un archivo en particular (local a búfer);: setglobal establece el valor predeterminado. También se puede usar un valor vacío: por defecto es el mismo que 'codificación'. O puede que desee establecer una de las codificaciones ucs, Puede hacer que el mismo archivo de disco sea más grande o más pequeño dependiendo de su combinación particular de caracteres. Además, IIUC, utf-8 es siempre big-endian (el bit alto primero) mientras que ucs puede ser big-endian o little-endian, así que si úselo, probablemente necesitará configurar 'bomba' (ver más abajo) ".
Lo siento, no entiendo. ¿Qué hace la codificación de archivos más exactamente?
Kiraly Zoltan
25
En el primer caso, cambiará la codificación de salida que se muestra en el terminal. En el segundo caso, cambiará la codificación de salida del archivo que está escrito.
Adrien Lacroix
1
+1 Para una respuesta corta y dulce, en lugar de simplemente repetir la documentación oficial. :)
425nesp
Si es necesario ad-hoc directamente desde la línea de comandos 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.
También puede establecer ambos en su ~/.vimrcsi siempre quiere trabajar con utf-8.
Puede establecer la variable 'codificación de archivos' en su .vimrc.
Esta es una lista de codificaciones de caracteres que se consideran al comenzar a editar un archivo existente. Cuando se lee un archivo, Vim intenta utilizar la primera codificación de caracteres mencionada. Si se detecta un error, se intenta el siguiente de la lista. Cuando se encuentra una codificación que funciona, se le asigna 'fileencoding'. Si todos fallan, 'fileencoding' se establece en una cadena vacía, lo que significa que se usa el valor de 'encoding'.
Ver :help filencodings
Si trabaja con frecuencia, por ejemplo, con cp1252, puede agregarlo allí:
set fileencodings=ucs-bom,utf-8,cp1252,default,latin9
Respuestas:
TL; DR
Como lo indicó @Dennis, puede configurar ambos en su ~ / .vimrc si siempre desea trabajar en
utf-8
.Más detalles
De la wiki de VIM sobre cómo trabajar con Unicode
"
encoding
establece cómo vim representará los caracteres internamente . Utf-8 es necesario para la mayoría de versiones de Unicode"."
fileencoding
establece la codificación para un archivo en particular (local a búfer);: setglobal establece el valor predeterminado. También se puede usar un valor vacío: por defecto es el mismo que 'codificación'. O puede que desee establecer una de las codificaciones ucs, Puede hacer que el mismo archivo de disco sea más grande o más pequeño dependiendo de su combinación particular de caracteres. Además, IIUC, utf-8 es siempre big-endian (el bit alto primero) mientras que ucs puede ser big-endian o little-endian, así que si úselo, probablemente necesitará configurar 'bomba' (ver más abajo) ".fuente
vim -c "set encoding=utf-8" file.ext
.También puede establecer ambos en su
~/.vimrc
si siempre quiere trabajar con utf-8.fuente
Puede establecer la variable 'codificación de archivos' en su .vimrc.
Ver
:help filencodings
Si trabaja con frecuencia, por ejemplo, con cp1252, puede agregarlo allí:
fuente