Configuração do Vim lenta no Terminal e no iTerm2, mas não no MacVim

12

Idealmente, quero usar o Vim do Terminal ou do iTerm2. No entanto, torna-se insuportavelmente lento, então tive que recorrer ao MacVim. Não há nada errado com o MacVim, no entanto, meu fluxo de trabalho seria muito mais suave se eu usasse apenas o Terminal / iTerm2.

Quando é lento

  • O carregamento de arquivos, em particular os arquivos do Rails, leva de 1 a 1,5s. A remoção do rails.vim diminui esse tempo para 0,5 - 1s. No MacVim, isso é instantâneo.

  • Percorrendo as linhas e colunas via h, j, k, l. Progressivamente, fica mais lento quanto mais tempo eu pressiono as teclas. Eventualmente, ele começa a pular linhas. Eu tenho minha Repetição de tecla definida como Rápida e Atraso até Repetição definida como Curta.

  • Após 10 a 15 minutos de uso, o uso de plug-ins como ctrlp ou Command-T fica muito lento. Eu digitava uma letra, aguarde 2 - 3s e digite a próxima.

Minha configuração

MacBook Air de 11 "com Mac OS X versão 10.7.3 (Intel Core 2 Duo de 1,6 Ghz, DDR3 de 4 GB)

Meus arquivos de ponto .

> 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

Eu tentei correr sem nenhum plug-in ou destaque de sintaxe. Abre arquivos muito mais rápido, mas ainda não tão rápido quanto o MacVim. Mas os outros dois problemas ainda existem.

  1. Por que minha configuração do vim é lenta?
  2. Como posso melhorar a velocidade da minha configuração vim no Terminal ou no iTerm2?
Jey Balachandran
fonte

Respostas:

8

Tentei uma dúzia de vezes compilar o Vim no meu Mac, mas nunca consegui obter um Vim utilizável: cada vez que funcionava, era insuportavelmente lento e lento.

Depois de perder muito tempo tentando fazê-lo funcionar, simplesmente larguei a toalha e criei um alias para o executável CLI do MacVim.

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

Não é apenas rápido e ágil, mas possui exatamente os mesmos recursos que você pode encontrar no MacVim, desde que faça sentido em um terminal. Desde então, o uso do MacVim e / ou do Vim não faz diferença para mim e se eu uso um ou outro é ditado apenas pelo contexto. Não por um ser melhor que o outro.

Por que minha configuração do vim é lenta? Como posso melhorar a velocidade da minha configuração vim no Terminal ou no iTerm2?

Usando o binário pré-compilado do MacVim.

Tente também o Linux um dia. O MacVim é rápido apenas se você nunca usou o GVim ou o Vim em uma caixa Linux.

romainl
fonte
Eu tentei usar a versão do MacVim. Muito mais rápido! Ainda não é tão rápido quanto usar o próprio MacVim, mas isso é tolerável. Curioso, o que torna o Vim em uma caixa Linux muito mais rápido que o Vim no terminal OS X?
Jey Balachandran
1
Eu não sei. Em casa, eu corro o Ubuntu em um Dell Inspiron pequeno e antigo e tudo relacionado ao texto é muito mais rápido do que no Mac Pro quad core que uso no trabalho. Especialmente MacVim / Gvim que uso o dia inteiro. Talvez menos níveis de abstração e fraeworks empilhados. Eu não sei.
Romainl
Eu gostaria de ver mais postagens sobre isso. Deve ser possível fazer o iTerm2 rodar quase tão rápido quanto o MacVim.
Xer0x
12

Descobri que quaisquer plugins ou configurações que afetam a exibição (linha do cursor, coluna do cursor, vim-powerline, vim-airlines, matchit.vim etc.) tornam o Vim mais lento no terminal.

Aqui estão algumas linhas do meu .vimrc para manter as coisas 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

Veja também :help slow-terminal

Dito isto, por que o Vim no terminal é mais lento está além de mim.

Jay
fonte
6

No Mac Terminal Vim, se a opacidade estiver definida na janela, ela diminuirá bastante a velocidade de rolagem. Gire opacity=100e blur=0, e é tão rápido quanto o MacVim - eu cronometrei.

user177393
fonte
Para esclarecer, isso se refere às configurações de opacidade e desfoque do aplicativo de terminal, não às configurações do próprio Vim. Funciona como um encanto, obrigado pela dica!
user72923
prendedor agradável, eu tenho estar procurando a causa da lentidão por mês e eu tentei cada configurações, exceto este (era transparente, sem imagem, de modo que parece opaco, mas não foi)
Ismael
3

Eu tive bons resultados instalando o MacVim via homebrew e depois usando alias vim="mvim -v".

user770148
fonte
2

set cursorline foi o culpado por mim.

Eu não havia notado um problema com isso até que um arquivo específico começou a renderizar a 0,25 fps, mas a desativação da linha do cursor acelerou as coisas.

csq
fonte
1

Eu também encontrei um terminal lento do MacVim no iTerm2. Eu tentei tudo o que pude colocar em minhas mãos, mas nada parecia ajudar. Eventualmente, reduzi-o a uma configuração no meu .vimrc:

set cursorcolumn

Então, eu o removi, e meu terminal MacVim foi significativamente mais rápido ao navegar pelos arquivos. Talvez alguém que tenha tentado de tudo e que tenha essa configuração ativada ache isso útil.

russianbandit
fonte