การกำหนดค่า Vim นั้นช้าใน Terminal & iTerm2 แต่ไม่ได้อยู่ใน MacVim


12

เป็นการดีที่ฉันต้องการใช้ Vim จาก Terminal หรือ iTerm2 อย่างไรก็ตามมันช้าอย่างไม่น่าเชื่อดังนั้นฉันต้องใช้ MacVim ไม่มีอะไรผิดปกติกับ MacVim แต่ขั้นตอนการทำงานของฉันจะราบรื่นยิ่งขึ้นถ้าฉันใช้เฉพาะ Terminal / iTerm2

เมื่อมันช้า

  • การโหลดไฟล์โดยเฉพาะไฟล์ Rails ใช้เวลาประมาณ 1 - 1.5 วินาที การลบ rails.vim ลดเวลานี้เป็น 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 GB DDR3)

ฉันdotfiles

> 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 ของฉันภายใน Terminal หรือ iTerm2 ได้อย่างไร

คำตอบ:


8

ฉันพยายามหลายสิบครั้งในการรวบรวม Vim บน Mac ของฉัน แต่ฉันไม่เคยได้รับ Vim ที่ใช้ได้: ทุกครั้งที่ใช้งาน แต่มันช้าและทนไม่ไหว

หลังจากที่สูญเสียเวลามากเกินไปในการพยายามทำให้มันสำเร็จฉันก็แค่วางผ้าเช็ดตัวและสร้างนามแฝงสำหรับปฏิบัติการ CLI ที่มาพร้อมกับ CLI ของ MacVim

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

ไม่เพียง แต่รวดเร็วและตอบสนองเท่านั้น แต่ยังมีคุณสมบัติที่เหมือนกันทุกประการที่คุณพบใน MacVim ตราบใดที่ยังใช้งานได้ในเทอร์มินัล ตั้งแต่นั้นมาการใช้ MacVim และ / หรือ Vim ไม่ได้สร้างความแตกต่างให้กับฉันและไม่ว่าฉันจะใช้อย่างใดอย่างหนึ่งหรืออย่างอื่นจะถูกกำหนดโดยบริบทเท่านั้น ไม่ใช่คนที่ดีกว่าคนอื่น

ทำไมการกำหนดค่า vim ของฉันจึงช้า ฉันจะปรับปรุงความเร็วของการกำหนดค่า vim ของฉันภายใน Terminal หรือ iTerm2 ได้อย่างไร

โดยใช้ไบนารีที่คอมไพล์ล่วงหน้าของ MacVim

ลอง Linux สักวัน MacVim นั้นรวดเร็วถ้าคุณไม่เคยใช้ GVim หรือ Vim บนกล่อง linux


ฉันลองใช้เวอร์ชันของ MacVim เร็วขึ้นมาก! ยังไม่เร็วเท่ากับการใช้ MacVim เอง แต่ก็สามารถทนได้ อยากรู้อยากเห็นอะไรที่ทำให้ Vim บนกล่อง linux เร็วกว่า Vim ใน terminal X มาก?
Jey Balachandran

1
ฉันไม่รู้ ที่บ้านฉันเรียกใช้ Ubuntu ใน Dell Inspiron ขนาดเล็กและเก่าและทุกอย่างที่เกี่ยวข้องกับข้อความนั้นมีความรวดเร็วกว่าใน quad core Mac Pro ที่ฉันใช้ในที่ทำงาน MacVim / Gvim พิเศษที่ฉันใช้ทั้งวัน อาจจะเป็นระดับที่เป็นนามธรรมน้อยและ fraeworks ซ้อนกัน ฉันไม่รู้
romainl

ฉันต้องการดูโพสต์นี้เพิ่มเติม มันเป็นไปได้ที่จะทำให้ iTerm2 ทำงานเกือบจะเร็วเท่ากับ MacVim
xer0x

12

ฉันพบว่าปลั๊กอินหรือการตั้งค่าใด ๆ ที่ส่งผลกระทบต่อการแสดงผล (เคอร์เซอร์, เคอร์เซอร์, คอลัมน์สี, กลุ่มพลังงาน, กลุ่มสายการบิน, 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

ที่กล่าวว่าทำไมเสียงเรียกเข้าใน terminal ที่ช้ากว่าฉัน


6

ใน Mac Terminal Vim หากคุณตั้งค่าความทึบของหน้าต่างไว้มันจะลดความเร็วในการเลื่อนลงอย่างมาก หมุนopacity=100และblur=0ก็เร็วพอ ๆ กับ MacVim - ฉันหมดเวลาแล้ว


ในการชี้แจงนี้เป็นการอ้างถึงการตั้งค่าความทึบและเบลอของแอปพลิเคชันของเทอร์มินัลไม่ใช่การตั้งค่าของ Vim ทำงานเหมือนมีเสน่ห์ขอบคุณสำหรับเคล็ดลับ!
user72923

จับดีฉันกำลังมองหาสาเหตุของความช้าในเดือนและฉันพยายามทุกการตั้งค่ายกเว้นอันนี้ (มันโปร่งใสไม่มีภาพดังนั้นดูเหมือนทึบแสง แต่มันไม่ได้)
Ismael


2

set cursorline เป็นผู้ร้ายสำหรับฉัน

ฉันไม่ได้สังเกตเห็นปัญหาเกี่ยวกับมันจนกว่าจะมีไฟล์หนึ่งไฟล์ที่เริ่มเรนเดอร์ที่ 0.25 fps แต่ปิดการใช้งานเคอร์เซอร์ sped สำรองข้อมูล


1

ฉันยังพบ terminal MacVim ที่ช้าใน iTerm2 ฉันลองทุกอย่างแล้ว แต่ก็ไม่มีอะไรช่วยได้ ในที่สุดฉัน จำกัด ให้แคบลงเพื่อตั้งค่าใน.vimrc:

set cursorcolumn

ดังนั้นฉันจึงลบมันและเทอร์มินัล MacVim ของฉันก็เร็วขึ้นอย่างมากเมื่อไปที่ไฟล์ต่างๆ บางทีคนอื่นที่ได้ลองทุกอย่างและเปิดการตั้งค่านี้จะพบว่ามีประโยชน์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.