Конфігурація Vim повільна в Terminal & iTerm2, але не в MacVim


12

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

Коли його повільно

  • Завантаження файлів, зокрема файлів Rails, займає приблизно 1 - 1,5 с. Видалення рейок.вім зменшує цей час до 0,5 - 1с. У MacVim це миттєво.

  • Прокрутка рядків і стовпців з допомогою h, j, k, l. Це поступово стає повільніше, чим довше я утримую клавіші. Врешті-решт, він починає стрибати рядами. У мене для параметра "Повтор ключів" встановлено значення "Швидке та затримкове", поки "Повторення" не встановлено "Коротке".

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

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

11-дюймовий MacBook Air під керуванням Mac OS X версії 10.7.3 (1.6 Ghz 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: кожен раз, коли вона працювала, але це було нестерпно повільно і мляво.

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

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 набагато швидшим, ніж Vim в терміналі OS X?
Джей Балачандран

1
Не знаю. Вдома я запускаю Ubuntu на маленькому і старому Dell Inspiron, і все, що стосується тексту, набагато швидше, ніж на чотирьохядерному Mac Pro, який я використовую на роботі. Особливо MacVim / Gvim, якими я користуюся цілий день. Можливо, менше рівнів абстракції та складених фрейдворків. Не знаю.
romainl

Я хотів би побачити більше публікацій з цього приводу. Потрібно зробити можливість iTerm2 працювати майже так само швидко, як MacVim.
xer0x

12

Я виявив, що будь-які плагіни або налаштування, які впливають на дисплей (курсорна лінія, курсорна колонка, vim-powerline, vim-airline, 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.