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?

6 ответов6

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 в терминале медленнее, вне меня.

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.

6

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

3

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

2

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

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

1

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

set cursorcolumn

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .