Chcę pisać w różnych językach za pomocą (g) Vima. Ale kiedy przełączam się na inny język za pomocą paska języka (znaki Devanagari lub hindi) i piszę cokolwiek, wyświetla się (g) vim ??? ??
.
Co próbowałem:
write ++enc=utf-8 foo.txt
set fileencoding=utf-8
set enc=utf-8
Informacja:
- Wersja GVim: 7.4, a także jego + multi_byte.
- Brak zmian w domyślnym pliku vimrc.
Właśnie zacząłem z (g) vim.
microsoft-windows
unicode
msinfo
źródło
źródło
Odpowiedzi:
Domyślne kodowanie wydaje się
latin1
:Podczas wprowadzania znaków Vim próbuje przekonwertować je z zestawu znaków przychodzących (prawdopodobnie Unicode) na Latin-1. To się nie udaje, ponieważ Latin-1 nie ma tych znaków. Stąd znaki zapytania.
Otwarcie istniejącego pliku (zapisanego za pomocą notatnika lub innego programu) powinno skutkować zniekształconym tekstem, ponieważ teraz Vim próbuje tylko odczytać bajty i zinterpretować je zgodnie z zestawem znaków Latin-1, a nie konwertować ich na zestaw Latin-1.
Będziesz chciał użyć
utf-8
lub kilka takich:Po czym skrypt malajalam wydaje się działać.
Pamiętaj, że nie spowoduje to działania wcześniej istniejących znaków zapytania. Naprawdę są one konwertowane na znaki zapytania (znak
0x3f
) na wejściu. Nie ma możliwości odzyskania tego, co zostało wprowadzone. Podejrzewam, że jest to źródłem pomieszania tego pytania.Zobacz także
:help 'encoding'
.Jako sidenoteut nieobsługiwane glify w czcionce są zwykle renderowane z wyraźnym glifem; różni się w zależności od czcionki, ale zazwyczaj jest to kwadratowy blok lub znak zapytania w innym stylu. widać różnicę między „prawdziwym” znakiem zapytania a nieobsługiwanym glifem
g8
, który pokaże kod znaku.źródło