Jaka jest różnica między tymi dwoma poleceniami?
set encoding=utf-8
set fileencoding=utf-8
Czy muszę ustawić oba, gdy chcę używać UTF-8?
Czy muszę także ustawić kodowanie plików za pomocą set
lub setglobal
?
Jaka jest różnica między tymi dwoma poleceniami?
set encoding=utf-8
set fileencoding=utf-8
Czy muszę ustawić oba, gdy chcę używać UTF-8?
Czy muszę także ustawić kodowanie plików za pomocą set
lub setglobal
?
Odpowiedzi:
W pierwszym przypadku za pomocą
set encoding=utf-8
zmienisz kodowanie wyjściowe wyświetlane w terminalu.W drugim przypadku za pomocą
set fileencoding=utf-8
zmienisz kodowanie wyjściowe zapisywanego pliku .
Jak stwierdził @Dennis, możesz ustawić je oba w swoim ~ / .vimrc, jeśli zawsze chcesz pracować utf-8
.
„ encoding
określa, w jaki sposób vim ma reprezentować znaki wewnętrznie . Utf-8 jest niezbędny dla większości odmian Unicode.”
" fileencoding
ustawia kodowanie dla konkretnego pliku (lokalnie w buforze);: setglobal ustawia wartość domyślną. Można również użyć pustej wartości: domyślnie jest to to samo co 'kodowanie'. Lub możesz ustawić jedno z kodowań ucs, Może to spowodować, że ten sam plik na dysku będzie większy lub mniejszy w zależności od konkretnej kombinacji znaków. Ponadto, IIUC, utf-8 jest zawsze big-endian (najpierw wysoki bit), podczas gdy ucs może być big-endian lub little-endian, więc jeśli użyj go, prawdopodobnie będziesz musiał ustawić 'bombę' (patrz poniżej). "
vim -c "set encoding=utf-8" file.ext
.
Możesz ustawić zmienną 'fileencodings' w swoim .vimrc.
To jest lista kodowań znaków branych pod uwagę przy rozpoczynaniu edycji istniejącego pliku. Kiedy plik jest czytany, Vim próbuje użyć pierwszego wymienionego kodowania znaków. W przypadku wykrycia błędu próbowany jest następny z listy. Po znalezieniu kodowania, które działa, ustawiane jest „kodowanie pliku”. Jeśli wszystko zawiedzie, właściwość „fileencoding” jest ustawiana na pusty ciąg, co oznacza, że używana jest wartość „encoding”.
Widzieć :help filencodings
Jeśli często pracujesz np. Z cp1252, możesz go tam dodać:
set fileencodings=ucs-bom,utf-8,cp1252,default,latin9