Configuración de Vim lenta en Terminal e iTerm2 pero no en MacVim


12

Idealmente, quiero usar Vim desde Terminal o iTerm2. Sin embargo, se vuelve insoportablemente lento, así que tuve que recurrir al uso de MacVim. No hay nada malo con MacVim, sin embargo, mi flujo de trabajo sería mucho más fluido si usara solo Terminal / iTerm2.

Cuando es lento

  • La carga de archivos, en particular los archivos Rails, demora entre 1 y 1.5 segundos. La eliminación de rails.vim disminuye este tiempo a 0.5 - 1s. En MacVim esto es instantáneo.

  • Desplazarse a través de las filas y columnas a través de h, j, k, l. Progresivamente se vuelve más lento cuanto más tiempo presiono las teclas. Finalmente, comienza a saltar filas. Tengo mi repetición de teclas establecida en Rápido y Retardo hasta que la repetición esté establecida en Corto.

  • Después de 10 a 15 minutos de uso, el uso de complementos como ctrlp o Command-T se vuelve muy lento. Escribiría una carta, esperaría 2 - 3s, luego escribiría la siguiente.

Mi configuración

MacBook Air de 11 "con Mac OS X versión 10.7.3 (1.6 Ghz Intel Core 2 Duo, DDR3 de 4 GB)

Mis archivos de puntos .

> 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

He intentado ejecutar sin ningún complemento o resaltado de sintaxis. Abre archivos mucho más rápido pero aún no tan rápido como MacVim. Pero los otros dos problemas aún existen.

  1. ¿Por qué mi configuración de vim es lenta?
  2. ¿Cómo puedo mejorar la velocidad de mi configuración de vim dentro de Terminal o iTerm2?

Respuestas:


8

He intentado una buena docena de veces compilar Vim en mi Mac, pero nunca he logrado obtener un Vim utilizable: cada vez que funcionó, pero fue insoportablemente lento y lento.

Después de perder demasiado tiempo tratando de hacerlo funcionar, simplemente dejé caer la toalla y creé un alias para el ejecutable CLI incluido de MacVim.

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

No solo es rápido y receptivo, sino que tiene exactamente las mismas características que podría encontrar en MacVim, siempre que tenga sentido en un terminal. Desde entonces, usar MacVim y / o Vim no hace ninguna diferencia para mí y si uso uno u otro solo lo dicta el contexto. No por que uno sea mejor que el otro.

¿Por qué mi configuración de vim es lenta? ¿Cómo puedo mejorar la velocidad de mi configuración de vim dentro de Terminal o iTerm2?

Mediante el uso del binario precompilado de MacVim.

Prueba también Linux algún día. MacVim es rápido solo si nunca ha usado GVim o Vim en una caja de Linux.


Intenté usar la versión de MacVim. ¡Mucho más rápido! Todavía no es tan rápido como usar MacVim, pero esto es tolerable. Curioso, ¿qué hace que Vim en una caja de Linux sea mucho más rápido que Vim en el terminal OS X?
Jey Balachandran

1
No lo sé. En casa, ejecuto Ubuntu en un Dell Inspiron pequeño y viejo y todo lo relacionado con el texto es mucho más ágil que en el Mac Pro de cuatro núcleos que uso en el trabajo. Especialmente MacVim / Gvim que uso todo el día. Tal vez menos niveles de abstracción y fraeworks apilados. No lo sé.
romainl

Me gustaría ver más publicaciones sobre esto. Debería ser posible hacer que iTerm2 funcione casi tan rápido como MacVim.
xer0x

12

Descubrí que cualquier complemento o configuración que afecte a la pantalla (cursorline, cursorcolumn, vim-powerline, vim-airline, matchit.vim, etc.) ralentiza Vim en el terminal de manera más significativa.

Aquí hay algunas líneas de mi .vimrc para mantener las cosas rápidas:

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

Ver también :help slow-terminal

Dicho esto, por qué Vim en la terminal es más lento está más allá de mí.


6

En Mac Terminal Vim, si tiene configurada la opacidad en la ventana, disminuye considerablemente la velocidad de desplazamiento. Gire opacity=100y blur=0, y es tan rápido como MacVim: lo cronometré.


Para aclarar, esto se refiere a la configuración de opacidad y desenfoque de la aplicación de terminal, no a la configuración de Vim. Sin embargo, funciona como un encanto, ¡gracias por la sugerencia!
user72923

Buena captura, he estado buscando la causa de la lentitud durante un mes y probé todas las configuraciones, excepto esta (era transparente sin imagen, por lo que parece opaca, pero no lo era)
Ismael

3

He tenido muy buenos resultados instalando MacVim a través de homebrew y luego usando alias vim="mvim -v".


2

set cursorline Fue el culpable para mí.

No había notado ningún problema hasta que un archivo específico comenzó a renderizarse a .25 fps, pero deshabilitar la línea del cursor aceleró las cosas.


1

También me he encontrado con un terminal lento MacVim en iTerm2. He intentado todo lo que pude conseguir, pero nada parecía ayudar. Finalmente, lo reduje a una configuración en mi .vimrc:

set cursorcolumn

Entonces, lo eliminé y mi terminal MacVim fue significativamente más rápido al navegar por los archivos. Tal vez alguien más, que haya intentado todo lo demás y tenga esta configuración activada, lo encuentre útil.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.