La configuration de Vim est lente dans Terminal & iTerm2 mais pas dans MacVim

12

Idéalement, je veux utiliser Vim de Terminal ou iTerm2. Cependant, cela devient insupportablement lent, j'ai donc dû recourir à MacVim. Il n'y a rien de mal avec MacVim, mais mon flux de travail serait beaucoup plus fluide si j'utilisais uniquement Terminal / iTerm2.

Quand c'est lent

  • Le chargement des fichiers, en particulier des fichiers Rails, prend environ 1 à 1,5 s. La suppression de rails.vim diminue cette fois à 0,5 - 1 s. Dans MacVim, cela est instantané.

  • Navigation dans les lignes et les colonnes par l' intermédiaire de h, j, k, l. Il ralentit progressivement plus je maintiens les touches enfoncées. Finalement, il commence à sauter des lignes. J'ai la répétition de ma clé réglée sur Rapide et Délai jusqu'à ce que la répétition soit réglée sur Court.

  • Après 10 à 15 minutes d'utilisation, l'utilisation de plugins tels que ctrlp ou Command-T devient très lente. Je voudrais taper une lettre, attendre 2 à 3 secondes, puis taper la suivante.

Ma configuration

MacBook Air 11 "exécutant Mac OS X version 10.7.3 (Intel Core 2 Duo 1,6 GHz, 4 Go DDR3)

Mes fichiers dot .

> 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

J'ai essayé de courir sans plugins ni coloration syntaxique. Il ouvre des fichiers beaucoup plus rapidement mais toujours moins vite que MacVim. Mais les deux autres problèmes existent toujours.

  1. Pourquoi ma configuration vim est-elle lente?
  2. Comment puis-je améliorer la vitesse de ma configuration vim dans Terminal ou iTerm2?
Jey Balachandran
la source

Réponses:

8

J'ai essayé une bonne douzaine de fois de compiler Vim sur mon Mac mais je n'ai jamais réussi à obtenir un Vim utilisable: à chaque fois que cela fonctionnait mais c'était insupportablement lent et lent.

Après avoir perdu trop de temps à essayer de le faire fonctionner, j'ai simplement laissé tomber la serviette et créé un alias pour l'exécutable CLI de MacVim.

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

Non seulement il est rapide et réactif, mais il a exactement les mêmes fonctionnalités que vous pouvez trouver dans MacVim, tant qu'il est logique dans un terminal. Depuis lors, l'utilisation de MacVim et / ou Vim ne fait aucune différence pour moi et si j'utilise l'un ou l'autre est dicté uniquement par le contexte. Pas par l'un étant meilleur que l'autre.

Pourquoi ma configuration vim est-elle lente? Comment puis-je améliorer la vitesse de ma configuration vim dans Terminal ou iTerm2?

En utilisant le binaire précompilé de MacVim.

Essayez également Linux un jour. MacVim n'est rapide que si vous n'avez jamais utilisé GVim ou Vim sur une box Linux.

romainl
la source
J'ai essayé d'utiliser la version de MacVim. Tellement plus vite! Toujours pas aussi rapide que d'utiliser MacVim lui-même, mais cela est tolérable. Curieux, qu'est-ce qui rend Vim sur une boîte Linux beaucoup plus rapide que Vim dans un terminal OS X?
Jey Balachandran
1
Je ne sais pas. À la maison, je lance Ubuntu sur un petit et ancien Dell Inspiron et tout ce qui concerne le texte est beaucoup plus vif que sur le quad core Mac Pro que j'utilise au travail. Spécialement MacVim / Gvim que j'utilise toute la journée. Peut-être moins de niveaux d'abstraction et de tâches empilées. Je ne sais pas.
romainl
J'aimerais voir plus de messages à ce sujet. Il devrait être possible de faire fonctionner iTerm2 presque aussi vite que MacVim.
xer0x
12

J'ai constaté que tous les plugins ou paramètres qui affectent l'affichage (curseur, colonne de curseur, vim-powerline, vim-compagnie aérienne, matchit.vim, etc.) ralentissent Vim dans le terminal de la manière la plus significative.

Voici quelques lignes de mon .vimrc pour garder les choses rapides:

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

Regarde aussi :help slow-terminal

Cela dit, pourquoi Vim dans le terminal est plus lent me dépasse.

Geai
la source
6

Dans Mac Terminal Vim, si l'opacité est définie dans la fenêtre, cela diminue considérablement la vitesse de défilement. Tournez opacity=100et blur=0, et c'est aussi rapide que MacVim - je l'ai chronométré.

user177393
la source
Pour clarifier, cela fait référence aux paramètres d'opacité et de flou de l'application terminale, et non aux paramètres de Vim lui-même. Fonctionne comme un charme, merci pour le conseil!
user72923
belle prise, j'ai cherché la cause de la lenteur pendant un mois et j'ai essayé tous les réglages, sauf celui-ci (il était transparent sans image, donc il semble opaque, mais ce n'était pas le cas)
Ismael
3

J'ai eu de très bons résultats en installant MacVim via homebrew puis en utilisant alias vim="mvim -v".

user770148
la source
2

set cursorline était le coupable pour moi.

Je n'avais pas remarqué de problème avec cela jusqu'à ce qu'un fichier spécifique commence à être rendu à 0,25 ips, mais la désactivation de la ligne de curseur a accéléré les choses.

csq
la source
1

J'ai également rencontré un terminal MacVim lent dans iTerm2. J'ai essayé tout ce que je pouvais mettre la main, mais rien ne semblait aider. Finalement, je l'ai réduit à un paramètre dans mon .vimrc:

set cursorcolumn

Je l'ai donc supprimé et mon terminal MacVim était beaucoup plus rapide lors de la navigation dans les fichiers. Peut-être que quelqu'un d'autre, qui a tout essayé et dont ce paramètre est activé, trouvera cela utile.

russianbandit
la source