Vim-Konfiguration in Terminal & iTerm2 langsam, aber nicht in MacVim

12

Idealerweise möchte ich Vim von Terminal oder iTerm2 verwenden. Es wird jedoch unerträglich langsam und ich musste auf MacVim zurückgreifen. An MacVim ist nichts auszusetzen, aber mein Arbeitsablauf wäre viel reibungsloser, wenn ich nur Terminal / iTerm2 verwenden würde.

Wenn es langsam ist

  • Das Laden von Dateien, insbesondere von Rails-Dateien, dauert etwa 1 bis 1,5 Sekunden. Das Entfernen von rails.vim verringert diese Zeit auf 0,5 - 1 s. In MacVim ist dies augenblicklich.

  • Scrollen durch die Zeilen und Spalten über h, j, k, l. Je länger ich die Tasten drücke, desto langsamer wird es. Schließlich beginnt es, Reihen zu springen. Ich habe die Tastenwiederholung auf Schnell und die Verzögerung bis zur Wiederholung auf Kurz eingestellt.

  • Nach 10 - 15 Minuten wird die Verwendung von Plugins wie ctrlp oder Command-T sehr verzögert. Ich tippe einen Buchstaben, warte 2-3 Sekunden und tippe dann den nächsten.

Mein Setup

11 "MacBook Air mit Mac OS X Version 10.7.3 (1,6 GHz Intel Core 2 Duo, 4 GB DDR3)

Meine Punktedateien .

> vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Nov 16 2011 16:44:23)
MacOS X (unix) version
Included patches: 1-333
Huge version without GUI.  Features included (+) or not (-):
+arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent 
-clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+conceal +cryptv -cscope +cursorbind +cursorshape +dialog_con +diff +digraphs 
-dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path 
+find_in_path +float +folding -footer +fork() -gettext -hangul_input +iconv 
+insert_expand +jumplist +keymap +langmap +libcall +linebreak +lispindent 
+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape 
+mouse_dec -mouse_gpm -mouse_jsbterm +mouse_netterm -mouse_sysmouse 
+mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg +path_extra -perl
 +persistent_undo +postscript +printer +profile +python -python3 +quickfix 
+reltime +rightleft +ruby +scrollbind +signs +smartindent -sniff +startuptime 
+statusline -sun_workshop +syntax +tag_binary +tag_old_static -tag_any_white 
-tcl +terminfo +termresponse +textobjects +title -toolbar +user_commands 
+vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore 
+wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp -xterm_clipboard 
-xterm_save 
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/local/Cellar/vim/7.3.333/share/vim"
Compilation: /usr/bin/llvm-gcc -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X_UNIX -no-cpp-precomp  -O3 -march=core2 -msse4.1 -w -pipe -D_FORTIFY_SOURCE=1      
Linking: /usr/bin/llvm-gcc   -L.     -L/usr/local/lib -o vim       -lm  -lncurses -liconv -framework Cocoa     -framework Python   -lruby

Ich habe versucht, ohne Plugins oder Syntaxhervorhebung auszuführen. Es öffnet Dateien viel schneller, aber immer noch nicht so schnell wie MacVim. Die beiden anderen Probleme bestehen jedoch weiterhin.

  1. Warum ist meine vim Konfiguration langsam?
  2. Wie kann ich die Geschwindigkeit meiner vim-Konfiguration in Terminal oder iTerm2 verbessern?
Jey Balachandran
quelle

Antworten:

8

Ich habe ein gutes Dutzend Mal versucht, Vim auf meinem Mac zu kompilieren, aber noch nie geschafft, ein brauchbares Vim zu erhalten: Jedes Mal funktionierte es, aber es war unerträglich langsam und verzögert.

Nachdem ich zu viel Zeit verloren hatte, um es zum Laufen zu bringen, ließ ich einfach das Handtuch fallen und erstellte einen Alias ​​für MacVims CLI-Programmpaket.

alias vim='/path/to/MacVim.app/Content/MacOS/Vim'

Es ist nicht nur schnell und reaktionsschnell, es verfügt auch über dieselben Funktionen wie MacVim, sofern dies in einem Terminal sinnvoll ist. Seitdem macht die Verwendung von MacVim und / oder Vim für mich keinen Unterschied, und ob ich das eine oder das andere verwende, hängt nur vom Kontext ab. Nicht indem einer besser ist als der andere.

Warum ist meine vim Konfiguration langsam? Wie kann ich die Geschwindigkeit meiner vim-Konfiguration in Terminal oder iTerm2 verbessern?

Mit der vorkompilierten Binärdatei von MacVim.

Probieren Sie auch Linux eines Tages aus. MacVim ist nur dann schnell, wenn Sie GVim oder Vim noch nie auf einer Linux-Box verwendet haben.

romainl
quelle
Ich habe versucht, die MacVim-Version zu verwenden. So viel schneller! Immer noch nicht so schnell wie mit MacVim selbst, aber das ist erträglich. Neugierig, was macht Vim auf einer Linux-Box so viel schneller als Vim im OS X-Terminal?
Jey Balachandran
1
Ich weiß es nicht. Zuhause führe ich Ubuntu auf einem kleinen und alten Dell Inspiron aus und alles, was mit Text zu tun hat, ist viel schneller als auf dem Quad-Core-Mac Pro, den ich bei der Arbeit verwende. Speziell MacVim / Gvim, das ich den ganzen Tag benutze. Vielleicht weniger Abstraktionsebenen und gestapelte Bruchstücke. Ich weiß es nicht.
Romainl
Ich würde gerne mehr Beiträge dazu sehen. Es sollte möglich sein, iTerm2 fast so schnell wie MacVim laufen zu lassen.
xer0x
12

Ich habe festgestellt, dass Plugins oder Einstellungen, die sich auf die Anzeige auswirken (Cursorzeile, Cursorspalte, Vim-Powerline, Vim-Airline, matchit.vim usw.), Vim im Terminal am stärksten verlangsamen.

Hier sind einige Zeilen aus meiner .vimrc-Datei, um die Sache zu beschleunigen:

let loaded_matchparen=1 " Don't load matchit.vim (paren/bracket matching)
set noshowmatch         " Don't match parentheses/brackets
set nocursorline        " Don't paint cursor line
set nocursorcolumn      " Don't paint cursor column
set lazyredraw          " Wait to redraw
set scrolljump=8        " Scroll 8 lines at a time at bottom/top
let html_no_rendering=1 " Don't render italic, bold, links in HTML

Siehe auch :help slow-terminal

Das heißt, warum Vim im Terminal langsamer ist, ist mir ein Rätsel.

Jay
quelle
6

Wenn Sie in Mac Terminal Vim die Deckkraft für das Fenster eingestellt haben, wird die Bildlaufgeschwindigkeit erheblich verringert. Drehen opacity=100und blur=0, und es ist so schnell wie MacVim - ich habe es zeitlich festgelegt.

user177393
quelle
Zur Verdeutlichung bezieht sich dies auf die Einstellungen für Deckkraft und Unschärfe der Terminalanwendung, nicht auf die Einstellungen von Vim selbst. Funktioniert aber wie ein Zauber, danke für den Tipp!
user72923
netter Fang, ich habe monatelang nach der Ursache der Langsamkeit gesucht und alle Einstellungen ausprobiert, bis auf diese (es war transparent ohne Bild, sieht also undurchsichtig aus, war es aber nicht)
Ismael
3

Ich habe ziemlich gute Ergebnisse erzielt, wenn ich MacVim über Homebrew installiert und dann verwendet habe alias vim="mvim -v".

user770148
quelle
2

set cursorline war der Täter für mich.

Ich hatte kein Problem damit bemerkt, bis eine bestimmte Datei mit .25 fps gerendert wurde, aber das Deaktivieren der Cursorlinie beschleunigte die Sicherung.

csq
quelle
1

Ich habe auch ein langsames Terminal MacVim in iTerm2 angetroffen. Ich habe alles versucht, was ich in die Hände bekommen konnte, aber nichts schien zu helfen. Schließlich habe ich es auf eine Einstellung in meinem eingegrenzt .vimrc:

set cursorcolumn

Also habe ich es entfernt und mein Terminal MacVim war beim Navigieren in Dateien bedeutend schneller. Vielleicht findet jemand anderes, der alles andere ausprobiert hat und diese Einstellung aktiviert hat, dies nützlich.

russianbandit
quelle