Od czasu do czasu pracuję na stronach internetowych zawierających skrypty nieanglojęzyczne, większość z nich używa zestawu znaków utf-8, VIM i Gvim nie wyświetlają poprawnie znaków UTF-8.
Używanie VIM 7.3.46 w systemie Windows 7 64-bitowym, z set guifont=Monaco:h10
_vimrc
Czy jest sposób, aby to naprawić?
Aktualizacja: przeszukałem w Google i znalazłem set guifontwide
akty jako drugie rozwiązanie zastępcze dla języków regionalnych.
Dodałem następujące linie w _vimrc i większość moich problemów została rozwiązana.
set enc=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf8,prc
set guifont=Monaco:h11
set guifontwide=NSimsun:h12
Powyższa czcionka NSimsun działa dla języka chińskiego. Problem polega na tym, że nie wiem, w jaki sposób otrzymali nazwę czcionki do pracy z VIM, Courier New
jest wspomniana, ponieważ Courier_New
również NSimsun
nie ma jej nigdzie w katalogu czcionek. Czcionka, której chcę użyć, to Latha
Ale nie wiem, jak jej używać w pliku _vimrc. set guifontwide=latha:h12
lub set guifontwide=Latha:h12
nie działa.
Jeśli pomyślnie ustawię wartość guifontwide
na latha
, to mój problem zostanie rozwiązany. Jak to zrobić?
'guifont'
i jaka jest wartość'guifontwide'
? Ponadto jakiego systemu operacyjnego używasz i jakiej wersji vim?set guifontwide=NSimsun:h12
mnie się nie udaje, wyświetla się komunikat „Nieprawidłowa szeroka czcionka”, prawdopodobnie ten sam problem, który nie dotyczy stałej szerokości?Odpowiedzi:
Spróbuj ponownie załadować dokument za pomocą:
Jeśli to zadziała, może powinieneś zmienić
fileencodings
ustawienia w swoim .vimrc.źródło
:u
jednak cię uratuje.:set noro
:e! ++enc=utf8
, wyrenderował utf-8, ale narzekał[ILLEGAL BYTE in line 286]
(pierwsza linia części binarnej) w pliku. Domyślam się, że domyślnym zachowaniem jest cichy powrót do innego kodowania, gdy dzieje się to podczas otwierania Vima. Z jakiegoś powodu jednakecho &enc
nadal raportuje utf-8 w tym przypadku.&enc
to kodowanie , którego Vim używa wewnętrznie do przechowywania zawartości bufora. Ustawienie, które zawiera kodowanie dla bieżącego pliku to&fenc
Próbowałeś
?
źródło
:set encoding=utf8
Odświeży bufor i jeśli problem był w nieprawidłowym kodowaniu, naprawi go. Dodałemset fileencoding=utf8
opcję, więc nie napotkasz najbardziej zagmatwanego błędu „Nie można przekonwertować niektórych znaków” podczas zapisywania.~/.vimrc
i działało dobrzeJeśli przyjeżdżają tu Japończycy, dodaj następujące wiersze do swojego
~/.vimrc
źródło
W systemie Microsoft Windows gvim nie pozwala na wybór czcionek o stałej szerokości. Niestety Latha nie jest czcionką o stałej szerokości.
Jest na to sposób: użyj FontForge (możesz pobrać plik binarny Windows z http://www.geocities.jp/meir000/fontforge/ ), aby edytować Latha.ttf i oznaczyć go jako czcionkę o stałej szerokości. Robiąc tak:
Powodzenia!
źródło
W systemie Linux otwórz plik konfiguracyjny VIM
Dodano następujące wiersze:
Zapisz i wyjdź, a polecenie terminala:
W tym czasie VIM będzie poprawnie wyświetlał język chiński.
źródło
Czy ten problem został w międzyczasie rozwiązany?
Miałem problem z tym, że gvim nie wyświetlał wszystkich znaków Unicode (ale tylko podzbiór, w tym umlauty i znaki akcentowane), podczas gdy
:set guifont?
był pusty; zobacz moje pytanie . Po przeczytaniu tutaj ustawienieguifont
rozsądnej wartości naprawiło to za mnie. Jednak nie potrzebuję znaków powyżej 2 bajtów.źródło
Nie mogłem pobrać żadnych innych czcionek, które zainstalowałem, aby pojawiły się w moim edytorze Windows GVim, więc właśnie przełączyłem się na
Lucida Console
który ma przynajmniej nieco lepszą obsługę UTF-8. Dodaj to na końcu swojego_vimrc
:Teraz widzę przynajmniej kilka znaków UTF-8.
źródło
W systemie Windows gvim po prostu wybierz czcionkę „Lucida Console”.
źródło