Legen Sie die gvim-Schriftart in der .vimrc-Datei fest

174

Ich verwende gVim 7.2 unter Windows 7. Ich kann die GUI-Schriftart über das Menü als Consolas 10 (Schriftgröße) festlegen. Ich versuche dies .vimrcwie folgt in eine Datei zu setzen :

set guifont=Consolas\ 10

Aber es funktioniert nicht. Weiß jemand, wie man das einstellt?

Yongwei Xing
quelle

Antworten:

306

Ich verwende Folgendes (Verwendet Consolas Größe 11 unter Windows, Menlo Regular Größe 14 unter Mac OS X und Inconsolata Größe 12 überall sonst):

if has("gui_running")
  if has("gui_gtk2")
    set guifont=Inconsolata\ 12
  elseif has("gui_macvim")
    set guifont=Menlo\ Regular:h14
  elseif has("gui_win32")
    set guifont=Consolas:h11:cANSI
  endif
endif

Bearbeiten: Und wenn Sie schon dabei sind, können Sie sich den Bloging-Beitrag von Coding Horror's Programming Fonts ansehen .

Edit²: MacVim hinzugefügt.

Morten Siebuhr
quelle
12
Für Windows ist alles, was Sie brauchen, um set guifont=Consolas:h11:cANSIdie ~/.vimrcDatei hinzuzufügen
Jasdeep Khalsa
9
Es ist noch besser, dies von zu tun .gvimrc.
Alexei Averchenko
1
Hier ist ein aktualisierter Codding Horror Programming Fonts Blog Post
fratrik
1
Bei Vim 8 mit GTK 3 müssen Sie auch nachsehen "gui_gtk3".
Ruud
2
Können Sie eine Erklärung hinzufügen, warum cANSIverwendet und ob es überhaupt benötigt wird?
Anishpatel
83

Versuchen Sie, Ihre Schriftart über das Menü einzustellen und dann einzugeben

:set guifont?

Dies sollte Ihnen die Zeichenfolge anzeigen, auf die Vim diese Option festgelegt hat. Sie müssen alle Leerzeichen entkommen.

Greg Sexton
quelle
43

Ich versuche dies in der .vimrc-Datei wie unten einzustellen

Verwenden Sie für GUI-spezifische Einstellungen .gvimrcanstelle von .vimrc, was unter Windows entweder $HOME\_gvimrcoder ist $VIM\_gvimrc.

Überprüfen Sie die :help .gvimrcfür Details. Im Wesentlichen liest VIM beim Start die .vimrc. Wenn danach die GUI aktiviert ist, liest sie auch die .gvimrc. IOW, alle allgemeinen VIM-Einstellungen sollten beibehalten werden .vimrc, alle GUI-spezifischen Dinge in .gvimrc. (Wenn Sie jedoch kein Konsolen-VIM verwenden, können Sie das einfach vergessen .vimrc.)

setze guifont = Consolas \ 10

Die Syntax ist falsch. Danach können :set guifont=*Sie immer die richtige Syntax für die Schriftart mit überprüfen :set guifont?. VIM Windows-Syntax ist :set guifont=Consolas:h10. Ich sehe keine genaue Spezifikation dafür, obwohl es in der erwähnt wird :help win32-faq.

Dummy00001
quelle
37
  1. Starten Sie eine grafische VIM-Sitzung.
  2. Machen :e $MYGVIMRC Enter
  3. Verwenden Sie das Dialogfeld zur Auswahl grafischer Schriftarten, um eine Schriftart auszuwählen.
  4. Typ :set guifont= Tab Enter.
  5. Geben Sie ein G o, um eine neue Zeile am Ende der Datei zu beginnen.
  6. Geben Sie Ctrl+ Rgefolgt von ein :.

Der Befehl in Schritt 6 fügt den Inhalt des :Sonderregisters ein, das den zuletzt verwendeten Ex-Modus-Befehl enthält. Hier ist dies der Befehl aus Schritt 4, der den korrekt formatierten Schriftnamen hat, da die Registerkarte den zuvor über das GUI-Dialogfeld festgelegten Wert vervollständigt.

qqx
quelle
Ich denke, das liegt daran, dass die Verwendung des grafischen Dialogfelds zur Auswahl von Schriftarten dazu führt, dass ein Befehl ausgeführt wird, wie die meisten (alle?) Ähnlichen GUI- und Menüelemente in gvim. Manchmal kann man ihre Echos sehen.
Evgeni Sergeev
1
Ich bin sicher, dass das Menü einen Befehl ausführt, aber das ist hier irrelevant. Der einzige Effekt der hier verwendeten grafischen Oberfläche besteht darin, dass sie die guifontOption festlegt und keinen bestimmten Befehl ausführt.
qqx
Ich musste ":pfür Schritt 6 tun , um den letzten Ex-Modus-Befehl zu erhalten. Siehe diese Antwort .
Erik
@erik Das ist ein normaler Modusbefehl und hätte dort nicht funktionieren sollen, da Sie in Schritt 5 in den Einfügemodus versetzt würden. Es wird auch nicht sichergestellt, dass sich der eingefügte Befehl in einer separaten Zeile befindet.
qqx
@qqx: Ok, meine Schuld. Ich habe den Einfügemodus irgendwie verlassen. Du hast recht. Hervorragende Lösung!
Erik
11

Gehen Sie für Windows wie folgt vor:

  1. Notieren Sie sich den Schriftnamen und die Schriftgröße im Menü "Edit-Select Font ..." von "gvim.exec".
  2. Dann mach :e $MYGVIMRC
  3. Suchen Sie nach der Zeichenfolge "guifont" und ändern Sie sie in set guifont=<font name as noted>:h<font size>
  4. Speichern Sie die Datei und beenden Sie sie.
  5. Wenn Sie das nächste Mal gvim.exec ausführen, sehen Sie den Effekt.
Hradayeshkumar Sharma
quelle
6

Obwohl dies ein alter Thread ist, dachte ich, ich würde einen Kommentar hinzufügen, da ich beim Versuch, ein ähnliches Problem zu lösen, darauf gestoßen bin. Dies könnte allen anderen helfen, die sich hier befinden:

Das Backslash-Zeichen wird verwendet, um das nächste Zeichen zu ignorieren. Einmal zum Schriftnamen in meinem gvimrc hinzugefügt, hat es funktioniert. Ich bin auf einem GNU / Linux-Computer, der keine Leerzeichen mag. Ich vermute, dass der erste Beitrag ein Fehler war, weil auf einem Windows-Computer ein Schrägstrich verwendet wurde.

Zum Beispiel:

:set guifont?  ## From gvim command, would give the following:

setze guifont = DejaVu Sans Mono für Powerline 11

Wo ich diese Zeile zur gvimrc-Datei hinzufügen musste, damit sie gelesen werden konnte:

set guifont=DejaVu\ Sans\ Mono\ for\ Powerline\ 11
iain
quelle
0

Ubuntu 14.04 LTS

:/$ cd etc/vim/
:/etc/vim$ sudo gvim gvimrc

Geben Sie nach dem if - endif- Block Folgendes ein

set guifont=Neep\ 10

Speichern Sie die Datei (: wq!). Hier ist "Neep" (Ihre Wahl) der Schriftstil und "10" ist die Respektgröße der Schrift. Erstellen Sie dann den Font-Cache erneut.

:/etc/vim$ fc-cache -f -v

Ihre gewünschte Schriftart wird auf gvim gesetzt.

Saket
quelle
0

Am Ende musste ich Folgendes tun: set guifont = Courier: h10: cANSI

SuperManu
quelle