Czy jest jakiś sposób na użycie czcionki innej niż monospace w jednym vim
lub gvim
?
Próbowałem zmienić czcionkę dla gVim za pomocą:
:set guifont=Dejavu\ Serif\ 12
Ale to daje mi raczej brzydkie wyniki:
Otrzymuję te same wyniki, jeśli korzystam z menu (Edycja -> Wybierz czcionkę)
:help guifont
mówi:
Note that the fonts must be mono-spaced (all characters have the same
width). An exception is GTK 2: all fonts are accepted, but
mono-spaced fonts look best.
Więc uważam, że powyższe wyniki liczą się jako „nie wyglądają najlepiej”? Czy można to jakoś poprawić?
Próbowałem również ustawić czcionkę inną niż monospace w moim terminalu ( xterm
), ale wydaje się, że ma to mniej więcej taki sam efekt:
Nie mam nic przeciwko użyciu innego emulatora terminala dla tego btw.
Odpowiedzi:
Znalazłem
mlterm
, który to obsługuje. Oprócz wbudowanego terminala Emacsa (termin Mx) jest to jedyny terminal, który to obsługuje (próbowałem około 15-20 różnych).Przekonałem się, że
mlterm
działa lepiej niż Emacs ze względu na ustawienia współczynnika sceenów, a także unikasz konieczności uruchamiania Vima w sesji Emacsa (nawet nie jestem pewien, czy jest to prawnie dozwolone).Zrzut ekranu (wygląda brzydko, chyba że otworzysz go w pełnym rozmiarze ze względu na skalowanie w przeglądarce):
Wymaga to jednak trochę konfiguracji miłości. Po uruchomieniu naciśnij Ctrl+ środkowe kliknięcie w dowolnym miejscu, otworzy się ekran konfiguracji. Ustawiam te opcje
Na karcie Czcionka:
Ekran konfiguracji po kliknięciu prawym przyciskiem wydaje się nieco niestabilny, edytowałem również mój,
~/.mlterm/vaafont
ponieważ nie został zaktualizowany:I moje
~/.mlterm/main
(są to ustawienia, które ustawiłem powyżej, a także niektóre osobiste preferencje):Są pewne artefakty, których należy się spodziewać, ale pisanie takich e-maili lub postów wydaje się działać całkiem dobrze!
W tym celu utworzyłem alias w mojej powłoce:
Stworzyłem również małą funkcję do usuwania większości chrome UI:
Jest też goyo.vim, który działa mniej więcej tak samo, ale nie działało to dla mnie zbyt dobrze (zbyt dużo marnowania marginesów). Jednak YMMV.
źródło
Zdecydowanie nie jest obsługiwany w GUI Vim i byłbym zaskoczony, gdyby istniała więcej niż garść emulatorów terminali, które obsługują proporcjonalne czcionki w sposób, na jaki liczysz: zepsułoby to zbyt wiele standardowych rzeczy, dla których terminale są używany. Ponieważ tak wiele części Uniksa i innych środowisk wiersza poleceń zakłada czcionki o stałej szerokości, ten typ wyświetlania nie może być używany jako terminal ogólnego przeznaczenia, więc deweloper terminalu musiałby wykonać dodatkową pracę bez większych korzyści.
Istnieje jednak co najmniej jeden emulator terminala, który został zaimplementowany przy użyciu technologii internetowych ( Ajaxterm ), a ponieważ używa on HTML / CSS do renderowania, możliwe jest użycie proporcjonalnej czcionki za pomocą CSS. CJS Hayward właśnie to zrobił, ale wymaga użycia bardzo starej przeglądarki.
Gdybyś miał uruchomić Vima w takim terminalu, dostałbyś to, o co prosisz; po prostu bądź przygotowany na zwariowany hijinx, gdy korzystasz z funkcji opartych na kolumnach. (na przykład
j
,k
tryb blokowo wizualne lub'colorcolumn'
opcjonalnie)AKTUALIZACJA Jak zauważył pierwotny pytający pytający Carpetsmoker w komentarzu , Emacs ma odpowiednią proporcjonalną obsługę czcionek, a także zawiera emulator terminala (
M-x term
), w którym można uruchomić Vima. Miłośnicy dedykowanych czcionek proporcjonalnych mogą również chcieć przyjrzeć się Złu Emacsa, aby uzyskać wrażenia podobne do Vima w Emacsie.źródło
Czcionki proporcjonalne są obsługiwane w GUI Oni , Neovim. Aby uzyskać najlepsze wyniki, użyj mechanizmu renderującego „webgl”.
Zobacz także https://github.com/onivim/oni/issues/2359
źródło