web-dev-qa-db-ja.com

ターミナルとiTerm2ではVimの設定が遅いが、MacVimでは遅くない

理想的には、ターミナルまたはiTerm2のVimを使用したいと思います。しかし、それは耐えられないほど遅くなるので、私はMacVimを使用することに頼らなければなりませんでした。 MacVimには何の問題もありませんが、Terminal/iTerm2のみを使用すると、ワークフローがはるかにスムーズになります。

遅いとき

  • ファイルのロード、特にRailsファイルは約1〜1.5秒かかります。Rails.vimを削除すると、この時間が0.5〜1秒に短縮されます。MacVimではこれは瞬時に行われます。

  • hjklを介して行と列をスクロールします。キーを長押しするほど、徐々に遅くなります。最終的に、それは行をジャンプし始めます。キーリピートを高速に設定し、リピートまで遅延をショートに設定しています。

  • 10〜15分の使用後、ctrlpやCommand-Tなどのプラグインの使用は非常に遅くなります。文字を入力し、2〜3秒待ってから、次の文字を入力します。

私のセットアップ

Mac OSXバージョン10.7.3(1.6 Ghz Intel Core 2 Duo、4 GB DDR3)を実行する11インチMacBook Air

私の ドットファイル

> 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ほど速くはありません。しかし、他の2つの問題はまだ存在しています。

  1. Vimの設定が遅いのはなぜですか?
  2. ターミナルまたはiTerm2内のvim構成の速度を向上させるにはどうすればよいですか?
12

私はMacでVimをコンパイルするために何十回も試しましたが、決して使用可能なVimを取得することができました:毎回動作しましたが、耐えられないほど遅くて遅れました。

それを機能させるために多くの時間を失った後、私は単にタオルを落とし、MacVimのバンドルされたCLI実行可能ファイルのエイリアスを作成しました。

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

高速で応答性が高いだけでなく、端末で意味がある限り、MacVimにあるのとまったく同じ機能を備えています。それ以来、MacVimやVimを使用しても違いはなく、どちらを使用するかはコンテキストによってのみ決まります。一方が他方より優れているということではありません。

Vimの設定が遅いのはなぜですか?ターミナルまたはiTerm2内のvim構成の速度を向上させるにはどうすればよいですか?

MacVimのコンパイル済みバイナリを使用する。

また、いつかLinuxを試してみてください。 MacVimは、LinuxボックスでGVimまたはVimを使用したことがない場合にのみ高速です。

8
romainl

表示に影響を与えるプラグインや設定(cursorline、cursorcolumn、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も参照してください

そうは言っても、whyターミナルのVimが遅いのは私を超えています。

12
Jay

Mac Terminal Vimでは、ウィンドウに不透明度を設定すると、スクロール速度が大幅に低下します。順番 opacity=100およびblur=0、そしてそれはMacVimと同じくらい速いです-私はそれを計時しました。

6
user177393

自作でMacVimをインストールしてからalias vim="mvim -v"を使用するとかなり良い結果が得られました。

3
user770148

set cursorlineは私にとっての犯人でした。

1つの特定のファイルが.25fpsでレンダリングを開始するまで、問題に気づいていませんでしたが、カーソルラインを無効にすると、処理が速くなりました。

2
csq

また、iTerm2で遅い端末のMacVimに遭遇しました。手に入るすべてのことを試しましたが、何も役に立たなかったようです。最終的に、私はそれを私の.vimrcの設定に絞り込みました。

set cursorcolumn

それで、私はそれを削除しました、そして私のターミナルMacVimはファイルをナビゲートするときかなり速くなりました。たぶん、他のすべてを試し、この設定をオンにしている他の誰かが、これが役立つと思うでしょう。

1
russianbandit