Конфигурация Vim медленная в Terminal & iTerm2, но не в MacVim


12

В идеале я хочу использовать Vim из терминала или iTerm2. Однако, это становится невыносимо медленным, поэтому мне пришлось прибегнуть к использованию MacVim. В MacVim нет ничего плохого, однако мой рабочий процесс был бы намного более плавным, если бы я использовал только Terminal / iTerm2.

Когда его медленно

  • Загрузка файлов, в частности файлов Rails, занимает от 1 до 1,5 с. Удаление rails.vim уменьшает это время до 0,5 - 1 с. В MacVim это происходит мгновенно.

  • Прокрутка строк и столбцов с помощью h, j, k, l. Это постепенно становится медленнее, чем дольше я удерживаю клавиши. В конце концов, он начинает прыгать строки. У меня есть Key Repeat, установленный на Fast, и Delay In Repeat, установленный на Short.

  • После 10 - 15 минут использования использование плагинов, таких как ctrlp или Command-T, становится очень медленным. Я набираю письмо, жду 2 - 3 секунды, затем набираю следующее.

Моя настройка

11-дюймовый MacBook Air под управлением Mac OS X версии 10.7.3 (1,6 ГГц Intel Core 2 Duo, 4 ГБ DDR3)

Мои точечные файлы .

> 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

Я попытался запустить без каких-либо плагинов или подсветки синтаксиса. Он открывает файлы намного быстрее, но все же не так быстро, как MacVim. Но две другие проблемы все еще существуют.

  1. Почему моя конфигурация vim медленная?
  2. Как я могу улучшить скорость моей конфигурации VIM в терминале или iTerm2?

Ответы:


8

Я десятки раз пытался скомпилировать Vim на своем Mac, но мне так и не удалось получить Vim, пригодный для использования: каждый раз, когда он работал, он был невыносимо медленным и медленным.

Потеряв слишком много времени, пытаясь заставить его работать, я просто уронил полотенце и создал псевдоним связанного исполняемого файла MacVim CLI.

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

Он не только быстрый и отзывчивый, но и обладает теми же функциями, которые вы можете найти в MacVim, при условии, что он имеет смысл в терминале. С тех пор использование MacVim и / или Vim не имеет значения для меня, и то, что я использую одно или другое, определяется только контекстом. Не одним лучше другого.

Почему моя конфигурация vim медленная? Как я могу улучшить скорость моей конфигурации VIM в терминале или iTerm2?

Используя предварительно скомпилированный двоичный файл MacVim.

Также попробуйте Linux один день. MacVim работает быстро, только если вы никогда не использовали GVim или Vim для Linux.


Я пытался использовать версию MacVim. Так намного быстрее! Все еще не так быстро, как использование самого MacVim, но это терпимо. Любопытно, что делает Vim на linux box намного быстрее, чем Vim в терминале OS X?
Джей Балахандран

1
Я не знаю. Дома я запускаю Ubuntu на маленьком и старом Dell Inspiron, и все, что связано с текстом, намного быстрее, чем на четырехъядерном Mac Pro, который я использую на работе. Специально MacVim / Gvim, который я использую весь день. Может быть, меньше уровней абстракции и сложенных фрейворков. Я не знаю.
romainl

Я хотел бы видеть больше сообщений об этом. Должно быть возможно заставить iTerm2 работать почти так же быстро, как MacVim.
xer0x

12

Я обнаружил, что любые плагины или настройки, которые влияют на отображение (курсорная строка, курсорная колонка, vim-powerline, vim-Airlines, matchit.vim и т. Д.), Значительно замедляют работу Vim в терминале.

Вот несколько строк из моего .vimrc, чтобы ускорить процесс:

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

Также см :help slow-terminal

Тем не менее, почему Vim в терминале медленнее, вне меня.


6

В Mac Terminal Vim, если в окне установлена ​​прозрачность, это значительно снижает скорость прокрутки. Включите opacity=100и blur=0, и это так же быстро, как MacVim - я рассчитал это.


Для пояснения это относится к настройкам непрозрачности и размытия в терминальном приложении, а не к настройкам самого Vim. Работает как шарм, хотя, спасибо за совет!
user72923

хороший улов, я искал причину замедления в течение месяца, и я перепробовал все настройки, кроме этой (она была прозрачной без изображения, поэтому она выглядит непрозрачной, но это не так)
Исмаэль

3

У меня были довольно хорошие результаты, установив MacVim с помощью homebrew и затем используя alias vim="mvim -v".


2

set cursorline был виновником для меня.

Я не заметил проблемы с ним, пока один конкретный файл не начал рендерить со скоростью .25 кадров в секунду, но отключение курсора снова ускорило процесс.


1

Я также столкнулся с медленным терминалом MacVim в iTerm2. Я перепробовал все, что мог, но ничего не помогло. В конце концов, я сузил его до настройки в моем .vimrc:

set cursorcolumn

Итак, я удалил его, и мой терминал MacVim был значительно быстрее при навигации по файлам. Может быть, кто-то другой, кто перепробовал все остальное и включил этот параметр, найдет это полезным.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.