La configurazione di Vim è lenta in Terminal & iTerm2 ma non in MacVim


12

Idealmente, voglio usare Vim da Terminal o iTerm2. Tuttavia, diventa insopportabilmente lento, quindi ho dovuto ricorrere all'uso di MacVim. Non c'è niente di sbagliato in MacVim, tuttavia il mio flusso di lavoro sarebbe molto più fluido se usassi solo Terminal / iTerm2.

Quando è lento

  • Il caricamento dei file, in particolare i file Rails, richiede circa 1 - 1,5 secondi. La rimozione di rails.vim diminuisce questa volta a 0,5 - 1 s. In MacVim questo è istantaneo.

  • Scorrendo le righe e le colonne via h, j, k, l. Diventa progressivamente più lento più a lungo tengo premuti i tasti. Alla fine, inizia a saltare le file. La mia ripetizione chiave è impostata su Veloce e Ritardo fino a quando l'opzione Ripeti non è impostata su Breve.

  • Dopo 10-15 minuti di utilizzo, l'utilizzo di plugin come ctrlp o Command-T diventa molto lento. Scriverei una lettera, aspetterei 2-3 secondi, quindi scrivo il successivo.

La mia configurazione

MacBook Air da 11 "con Mac OS X versione 10.7.3 (1.6 Ghz Intel Core 2 Duo, 4 GB DDR3)

I miei dotfile .

> 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

Ho provato a correre senza plug-in o evidenziazione della sintassi. Apre i file molto più velocemente ma non così velocemente come MacVim. Ma gli altri due problemi esistono ancora.

  1. Perché la mia configurazione di VIM è lenta?
  2. Come posso migliorare la velocità della mia configurazione vim all'interno di Terminal o iTerm2?

Risposte:


8

Ho provato una buona dozzina di volte a compilare Vim sul mio Mac ma non sono mai riuscito a ottenere un Vim utilizzabile: ogni volta ha funzionato ma è stato insopportabilmente lento e lento.

Dopo aver perso troppo tempo cercando di farlo funzionare, ho semplicemente lasciato cadere l'asciugamano e ho creato un alias nell'eseguibile CLI in bundle di MacVim.

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

Non solo è veloce e reattivo, ma ha le stesse caratteristiche che potresti trovare in MacVim, purché abbia senso in un terminale. Da allora, usare MacVim e / o Vim non fa alcuna differenza per me e se uso l'uno o l'altro è dettato solo dal contesto. Non essendo l'uno migliore dell'altro.

Perché la mia configurazione di VIM è lenta? Come posso migliorare la velocità della mia configurazione vim all'interno di Terminal o iTerm2?

Utilizzando il binario precompilato di MacVim.

Prova anche Linux un giorno. MacVim è veloce solo se non hai mai usato GVim o Vim su un box Linux.


Ho provato ad usare la versione di MacVim. Molto più veloce! Ancora non veloce come usare MacVim stesso, ma questo è tollerabile. Curioso, cosa rende Vim su un box Linux molto più veloce di Vim nel terminale OS X?
Jey Balachandran,

1
Non lo so. A casa eseguo Ubuntu su un Dell Inspiron piccolo e vecchio e tutto ciò che riguarda il testo è molto più scattante rispetto al Mac Pro quad core che uso al lavoro. Specialmente MacVim / Gvim che uso tutto il giorno. Forse meno livelli di astrazione e fraework accatastati. Non lo so.
Romainl

Mi piacerebbe vedere altri post su questo. Dovrebbe essere possibile far funzionare iTerm2 quasi alla stessa velocità di MacVim.
xer0x,

12

Ho scoperto che qualsiasi plug-in o impostazione che influisce sul display (linea del cursore, colonna del cursore, vim-powerline, vim-compagnia aerea, matchit.vim, ecc.) Rallenta Vim nel terminale in modo molto significativo.

Ecco alcune righe del mio .vimrc per mantenere le cose veloci:

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

Vedi anche :help slow-terminal

Detto questo, il motivo per cui Vim nel terminal è più lento è oltre me.


6

In Mac Terminal Vim, se hai impostato l'opacità sulla finestra, diminuisce notevolmente la velocità di scorrimento. Gira opacity=100e blur=0, ed è veloce come MacVim, l'ho cronometrato.


Per chiarire, si tratta dell'opacità dell'applicazione del terminale e delle impostazioni di sfocatura, non delle impostazioni di Vim stesso. Funziona come un fascino, grazie per la punta!
user72923

bella cattura, sto cercando la causa della lentezza per il mese e ho provato tutte le impostazioni, tranne questa (era trasparente senza foto, quindi sembra opaco, ma non lo era)
Ismael

3

Ho ottenuto risultati abbastanza buoni installando MacVim tramite homebrew e quindi usando alias vim="mvim -v".


2

set cursorline è stato il colpevole per me.

Non avevo notato alcun problema fino a quando un file specifico non ha iniziato il rendering a 0,25 fps, ma la disabilitazione della linea del cursore ha velocizzato il backup.


1

Ho anche incontrato un terminale lento MacVim in iTerm2. Ho provato tutto ciò su cui potevo mettere le mani, ma nulla sembrava aiutare. Alla fine, l'ho ridotto a un'impostazione nel mio .vimrc:

set cursorcolumn

Quindi l'ho rimosso e il mio terminale MacVim è stato notevolmente più veloce durante la navigazione dei file. Forse qualcun altro, che ha provato tutto il resto e ha questa impostazione attivata, lo troverà utile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.