Monospaced olmayan bir fontu Vim veya gVim'de kullanabilir miyim?


32

Ya olmayan bir monospace yazı kullanmak için herhangi bir yolu var mı vimyoksa gvim?

GVim için yazı tipini değiştirmeyi denedim:

:set guifont=Dejavu\ Serif\ 12

Ancak bu bana oldukça çirkin sonuçlar veriyor:

görüntü tanımını buraya girin

Menüyü kullanırsam aynı sonuçları alırım (Düzenle -> Yazı tipi seç)

:help guifont diyor:

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.

Bu yüzden yukarıdaki sonuçların "en iyi görünmüyor" olarak sayıldığını düşünüyorum? Bu bir şekilde geliştirilebilir mi?

Terminalimde monospace olmayan bir font ayarlamayı da denedim xterm, ancak kabaca aynı etkiye sahip görünüyor:

görüntü tanımını buraya girin

Bu btw için farklı bir terminal emülatörü kullanmıyorum.


burada zaten cevaplanmış görünüyor: superuser.com/questions/357571/…
guido

1
@guido Orada bir cevap göremiyorum ... En çok cevaplanan cevap sadece yazı tiplerinin ne olduğunun bir açıklaması (cevap değil) ve diğer "cevaplar" daha da kötüsü ...
Martin Tournoij

Yanıtlar:


25

Bunu mltermdestekleyen buldum . Emacs'ın yerleşik terminali (Mx terimi) dışında, bunu destekleyen tek terminal budur (15-20 farklı tane denedim).
Ben fark ettik mltermnedeniyle sceen oranı ayarlarına iyi Emacs daha çalışır ve de (yasal olarak izin verildiğini bile emin değilim) bir Emacs oturumu içinde Vim çalıştırmak zorunda kalmamak.

Ekran görüntüsü ( tarayıcıda ölçeklendirme nedeniyle tam boyutta açmazsanız çirkin görünüyor ):

görüntü tanımını buraya girin

Yine de, bazı yapılandırmak sevgi gerektirir. Başladıktan sonra, Ctrlherhangi bir yere + orta tıkladığınızda, yapılandırma ekranı açılacaktır. Bu seçenekleri ayarladım

Yazı Tipi sekmesinde:

  • "Anti-alias" seçeneğini işaretleyin
  • "Değişken sütun genişliği" kontrol edin; bu, diğer çoğu terminal emülatörlerinde eksik olan "temel özellik" dir.
  • Yazı tipini "DejaVu Sans Book 16" olarak ayarlayın (veya başka ne istersen)
  • "Yazı tipi boyutuna karşı ekran oranı" genişliğini 60 olarak ayarlayın; bu, terminalin genişliği ile ilgili programlara yatar, bunu yapmazsınız, sadece ekran boyutunun ~% 50'sini kullanırsınız. Bunun için en iyi değer kullanılan yazı tipine göre değişir, bu yüzden biraz deneyin ...

Sağ tıklatma yapılandırma ekranı biraz lapa lapa gibi görünüyor, ~/.mlterm/vaafontbu güncelleme olmadığı için benim de düzenleme yaptım :

ISO10646_UCS4_1 = 22,DejaVu Sans 18;21,DejaVu Sans 16;16,DejaVu Sans 16

Ve benim ~/.mlterm/main(bunlar yukarıda belirlediğim ayarların yanı sıra bazı kişisel tercihler):

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

Beklenilmesi gereken bazı eserler var, ancak bunun gibi e-postalar veya yazılar yazmak oldukça iyi çalışıyor gibi görünüyor!

Bunun için kabuğumda bir takma ad oluşturdum:

alias pvim mlterm -e vim

Ayrıca, çoğu UI kromunu kaldırmak için küçük bir işlev de oluşturdum:

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

Kabaca aynı olan goyo.vim de var , ancak bu benim için pek işe yaramadı (marjlarla çok fazla uğraşmadı). YMMV olsa.


Ubuntu depolarından MLTerm ile Ubuntu 18.04'te ortada değil, Ctrl + RightClick kullanmak zorunda kaldım. Aksi halde, sadece fare imlecinin etrafında tuhaf bir kare kare olur ve hiçbir iletişim kutusu olmaz.
Ruslan

Dikey bölme: ekran görüntüsü kullanırken komik (ve kullanılamaz) görünüyor . Ancak bunun terminal tabanlı bir çözümden olması bekleniyor.
Ruslan

7

GUI Vim'de kesinlikle desteklenmiyor ve umudunuzdaki orantılı fontları destekleyen avuç dolusu terminal emülatöründen daha fazlası olsaydı şaşıracağım: terminallerin hangi standart şeyleri kıracağı çok fazla Kullanılmış. Unix'in ve diğer komut satırı ortamlarının pek çok bölümü tek boşluklu fontlar varsaydığından, bu tür bir ekran genel amaçlı bir terminal olarak kullanılamaz, bu nedenle terminalin geliştiricisinin çok az fayda sağlayacak ek iş yapması gerekirdi.

Bununla birlikte, web teknolojileri ( Ajaxterm ) kullanılarak uygulanan en az bir Terminal emülatörü vardır ve bu, oluşturma için HTML / CSS kullandığından, CSS kullanarak orantılı bir font kullanmasını sağlamak mümkündür. CJS Hayward tam da bunu yaptı, ancak çok eski bir tarayıcı kullanmanız gerekiyor.

Vim'i böyle bir terminalde işletirseniz, istediğinizi elde edersiniz; Herhangi bir sütun tabanlı özellikleri kullandığınızda sadece tuhaf hijinx için hazır olun. (örn j. k, engelli görsel mod veya 'colorcolumn'seçenek)

GÜNCELLEME Orijinal soru sorucusu Carpetsmoker, bir yorumda dikkat çekti: Emacs uygun orantılı font desteğine sahip ve içinde Vim'i çalıştırabileceğiniz bir terminal emülatörü ( M-x term) de içeriyor . Özel orantılı yazı tipi meraklıları, Emacs içinde Vim benzeri bir deneyim elde etmek için Emac'in Kötülüğü'ne bakmak isteyebilirler .


4

Oransal fontlar, Oni , Neovim GUI'de desteklenmektedir . En iyi sonuçlar için "webgl" oluşturucuyu kullanın.

 "editor.renderer": "webgl"

Ayrıca bakınız https://github.com/onivim/oni/issues/2359


İlgi çekici görünüyor! Maalesef, bu projenin çalışmasını sağlayamıyorum ve bu hata ayıklamak için gerçekten zamanım yok :-(
Martin Tournoij

Github.com/onivim/oni/releases adresinde önceden oluşturulmuş arşivler bulunmaktadır .
Justin M. Keyes
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.