Konfiguracja Vima jest wolna w Terminalu i iTerm2, ale nie w MacVimie

12

Idealnie chcę używać Vima z terminala lub iTerm2. Jednak staje się nieznośnie powolny, więc musiałem skorzystać z MacVima. W MacVimie nie ma nic złego, ale mój przepływ pracy byłby znacznie płynniejszy, gdybym używał tylko terminala / iTerm2.

Kiedy jest wolny

  • Ładowanie plików, w szczególności plików Rails, zajmuje około 1 - 1,5 s. Usunięcie rails.vim zmniejsza ten czas do 0,5 - 1 s. W MacVim jest to natychmiastowe.

  • Przewijanie wierszy i kolumn za pomocą h, j, k, l. Stopniowo zwalnia, im dłużej przytrzymuję klawisze. W końcu zaczyna skakać w rzędach. Mam Key Repeat ustawioną na Fast i Delay, dopóki Repeat ustawię na Short.

  • Po 10–15 minutach używania używanie wtyczek takich jak ctrlp lub Command-T staje się bardzo opóźnione. Napiszę list, poczekam 2-3 sekundy, a następnie wpiszę następny.

Moja konfiguracja

MacBook Air 11 "z systemem Mac OS X w wersji 10.7.3 (Intel Core 2 Duo 1,6 GHz, 4 GB DDR3)

Moje pliki 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

Próbowałem działać bez wtyczek i podświetlania składni. Otwiera pliki znacznie szybciej, ale wciąż nie tak szybko jak MacVim. Ale pozostałe dwa problemy wciąż istnieją.

  1. Dlaczego moja konfiguracja vima jest wolna?
  2. Jak mogę poprawić szybkość mojej konfiguracji vim w Terminalu lub iTerm2?
Jey Balachandran
źródło

Odpowiedzi:

8

Kilkanaście razy próbowałem skompilować Vima na moim komputerze Mac, ale nigdy nie udało mi się uzyskać użytecznego Vima: za każdym razem, gdy działało, ale było nieznośnie wolne i opóźnione.

Po tym, jak straciłem zbyt dużo czasu, próbując go uruchomić, po prostu upuściłem ręcznik i utworzyłem alias do dołączonego pliku wykonywalnego CLI MacVima.

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

Jest nie tylko szybki i responsywny, ale ma dokładnie te same funkcje, które można znaleźć w MacVimie, o ile ma to sens w terminalu. Od tego czasu używanie MacVima i / lub Vima nie ma dla mnie znaczenia, a to, czy używam jednego czy drugiego, jest podyktowane tylko kontekstem. Nie jedno jest lepsze od drugiego.

Dlaczego moja konfiguracja vima jest wolna? Jak mogę poprawić szybkość mojej konfiguracji vim w Terminalu lub iTerm2?

Korzystając ze skompilowanego pliku binarnego MacVim.

Spróbuj także Linuxa pewnego dnia. MacVim jest szybki tylko wtedy, gdy nigdy nie używałeś GVima ani Vima na Linuksie.

romainl
źródło
Próbowałem użyć wersji MacVima. O wiele szybciej! Nadal nie jest tak szybki, jak używanie samego MacVima, ale jest to tolerowane. Ciekawe, co sprawia, że ​​Vim na Linuksie jest znacznie szybszy niż Vim w terminalu OS X?
Jey Balachandran
1
Nie wiem W domu używam Ubuntu na małym i starym Dell Inspiron, a wszystko, co dotyczy tekstu, jest znacznie szybsze niż na czterordzeniowym Mac Pro, którego używam w pracy. Szczególnie MacVim / Gvim, którego używam przez cały dzień. Może mniej poziomów abstrakcji i ułożonych dokumentów. Nie wiem
romainl,
Chciałbym zobaczyć więcej postów na ten temat. Powinno być możliwe, aby iTerm2 działał prawie tak szybko, jak MacVim.
xer0x
12

Przekonałem się, że wszelkie wtyczki lub ustawienia, które wpływają na wyświetlanie (kursor, kolumna kursora, vim-powerline, vim-airline, matchit.vim itp.) Najbardziej spowalniają Vima w terminalu.

Oto kilka wierszy z mojego .vimrc, aby przyspieszyć:

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

Zobacz także :help slow-terminal

To powiedziawszy, dlaczego Vim w terminalu jest wolniejszy, jest poza mną.

Sójka
źródło
6

W Mac Terminal Vim, jeśli masz ustawione krycie w oknie, znacznie zmniejsza prędkość przewijania. Skręć opacity=100i blur=0, i to tak szybko, jak MacVim - wyliczyłem czas.

użytkownik177393
źródło
Aby to wyjaśnić, odnosi się to do ustawień krycia i rozmycia aplikacji terminalowej, a nie ustawień samego Vima. Działa jak urok, dzięki za wskazówkę!
user72923,
niezły haczyk, szukałem przyczyny spowolnienia od miesiąca i wypróbowałem wszystkie ustawienia, z wyjątkiem tego (było przezroczyste bez zdjęcia, więc wygląda na nieprzejrzyste, ale nie było)
Ismael
3

Miałem całkiem dobre wyniki instalując MacVima przez homebrew, a następnie używając alias vim="mvim -v".

użytkownik770148
źródło
2

set cursorline był dla mnie winowajcą.

Nie zauważyłem problemu, dopóki jeden konkretny plik nie zaczął renderować z szybkością .25 fps, ale wyłączenie przyspieszenia kursora przyspieszyło.

csq
źródło
1

W iTerm2 spotkałem również wolny terminal MacVim. Próbowałem wszystkiego, co mogłem, ale nic nie pomagało. W końcu zawęziłem ją do ustawienia w moim .vimrc:

set cursorcolumn

Więc go usunąłem, a mój terminal MacVim był znacznie szybszy podczas nawigacji po plikach. Może ktoś inny, kto wypróbował wszystko inne i ma włączone to ustawienie, uzna to za przydatne.

rosyjskibandit
źródło