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:
- Zaznacz „Anti-alias”
- Zaznacz „Zmienna szerokość kolumny”; jest to „kluczowa funkcja”, której brakuje w większości innych emulatorów terminali
- Ustaw czcionkę na „DejaVu Sans Book 16” (lub cokolwiek innego, co wolisz)
- Ustaw „proporcje ekranu w stosunku do rozmiaru czcionki” na 60; dotyczy to programów o szerokości terminala, jeśli tego nie robisz, używasz tylko ~ 50% wielkości ekranu. Najlepsza wartość zależy od użytej czcionki, więc eksperymentuj trochę ...
Ekran konfiguracji po kliknięciu prawym przyciskiem wydaje się nieco niestabilny, edytowałem również mój, ~/.mlterm/vaafont
ponieważ nie został zaktualizowany:
ISO10646_UCS4_1 = 22,DejaVu Sans 18;21,DejaVu Sans 16;16,DejaVu Sans 16
I moje ~/.mlterm/main
(są to ustawienia, które ustawiłem powyżej, a także niektóre osobiste preferencje):
type_engine = xft
bel_mode = none
scrollbar_mode = none
fontsize = 22
use_anti_alias = true
use_variable_column_width = true
line_space = 5
use_multi_column_char = true
col_size_of_width_a = 1
screen_width_ratio = 50
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:
alias pvim mlterm -e vim
Stworzyłem również małą funkcję do usuwania większości chrome UI:
fun! WriteMode()
" Disable a lot of stuff
setlocal nocursorline nocursorcolumn statusline= showtabline=0 laststatus=0 noruler
" Hack a right margin with number
setlocal number
setlocal numberwidth=3
" White text, so it's 'invisible'
highlight LineNr ctermfg=15
" If you're using a black background:
" highlight LineNr ctermfg=1
endfun
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.