วิธีเปิดใช้งานตัวจัดการปลั๊กอินโดยไม่มี ~/.vimrc

หลังจากใช้ vim มาระยะหนึ่งแล้ว ~/.vim/ ของฉันที่เริ่มต้นด้วยการทดลองครั้งแรกกับ vim ก็ยุ่งวุ่นวายเมื่อเวลาผ่านไป ดังนั้นฉันจึงคิดว่าถึงเวลาที่จะต้องจัดระเบียบให้เรียบร้อยและเริ่มต้นด้วยตัวจัดการปลั๊กอินที่มีการกำหนดค่าใหม่ทั้งหมด

เนื่องจากฉันแชร์การกำหนดค่าผ่านเครื่องหลายเครื่อง ฉันจึงมักจะจัดการเส้นทาง ~/.vim/ ด้วย git repo เพื่อหลีกเลี่ยง .vimrc ขนาดใหญ่ ฉันจึงใส่การกำหนดค่าของตัวเองไว้ใต้ ~/.vim/plugin/ สิ่งนี้ทำให้ฉันสามารถเก็บการกำหนดค่าที่ใช้ร่วมกันทั้งหมดของฉันไว้ในโฟลเดอร์นี้ และใช้ ~/.vimrc สำหรับการกำหนดค่าที่ขึ้นอยู่กับเครื่องเท่านั้น

เริ่มต้นด้วย VAM บน NeoBundle และตอนนี้ Vundle ฉันประสบปัญหาเดียวกันมาตลอด หากฉันเพิ่มการกำหนดค่าที่จำเป็นภายใต้ ~/.vim/plugin/pluginmanager.vim แทนที่จะเป็น ~/.vimrc ปลั๊กอินที่ติดตั้งจะไม่โหลดหรือโหลดเพียงบางส่วนเท่านั้น คำสั่ง :echo &rtp แสดงรายการบันเดิลที่ถูกต้อง แต่ :scriptnames ไม่รวมปลั๊กอินที่ติดตั้ง ถ้าฉันดำเนินการ mv ~/.vim/plugin/pluginmanager.vim ~/.vimrc ทุกอย่างทำงานได้ตามที่คาดไว้

ใครสามารถอธิบายพฤติกรรมนี้และอาจเสนอวิธีแก้ไขได้หรือไม่

pluginmanager.vim ของฉันมีลักษณะดังนี้:

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
Plugin 'bling/vim-airline'
Plugin 'MarcWeber/vim-addon-mw-utils'
Plugin 'tomtom/tlib_vim'
Plugin 'garbas/vim-snipmate'
Plugin 'honza/vim-snippets'

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required

การติดตั้ง vim ของฉันคือเวอร์ชัน 7.4.52


person Trendfischer    schedule 17.03.2015    source แหล่งที่มา
comment
คุณไม่ต้องการใช้ ~/.vim/vimrc ด้วยเหรอ?   -  person FDinoff    schedule 18.03.2015
comment
ขอบคุณ ไม่รู้เกี่ยวกับ ~/.vim/vimrc ดูเหมือนจะเป็นทางออกที่ดีที่สุด เดาว่าฉันต้องอัปเดตชื่อคำถามของฉัน   -  person Trendfischer    schedule 18.03.2015


คำตอบ (2)


ปัญหาอยู่ในลำดับการเริ่มต้น หลังจากที่ ~/.vimrc ของคุณถูกดำเนินการแล้ว (เป็นสิ่งแรกระหว่างการเริ่มต้น) Vim จะดำเนินการบางอย่างเช่น :runtime! plugin/*.vim เพื่อโหลดปลั๊กอิน เนื่องจากตัวจัดการปลั๊กอินของคุณจะถูกเรียกใช้เท่านั้น การเปลี่ยนแปลงใน 'runtimepath' จะไม่ไปถึงคำสั่งที่ทริกเกอร์ :runtime อีกต่อไป และปลั๊กอินไม่สามารถโหลดได้

มีวิธีแก้ไขปัญหามากมาย:

  • ย้ายสคริปต์ของคุณไปที่ ~/.vim/pluginmanager.vim และ :runtime pluginmanager.vim อย่างชัดเจนจาก (แต่ละสำเนา) ของคุณ ~/.vimrc
  • ทริกเกอร์อีกครั้งผ่าน :runtime! plugin/*.vim

แต่ฉันเห็นด้วยกับ @brettanomyces ว่าทางออกที่ดีที่สุดคือการใช้ ~/.vimrc ตามที่ตั้งใจไว้ และวางการกำหนดค่าเฉพาะระบบลงในสคริปต์อื่นแทน

person Ingo Karkat    schedule 18.03.2015
comment
ใช่นั่นอธิบายพฤติกรรม ขอบคุณสำหรับความเข้าใจ แต่เป็นวิธีแก้ปัญหา ฉันจะใช้ ~/.vim/vimrc เหมือนที่ @FDinoff แนะนำในความคิดเห็นของเขา ที่เข้ากันได้กับแนวทางระบบควบคุมเวอร์ชัน - person Trendfischer; 18.03.2015
comment
ใช่ นั่นเป็นวิธีแก้ปัญหาที่ดี หากคุณมี Vim เวอร์ชันปัจจุบันในทุกระบบ เนื่องจากนี่เป็นฟีเจอร์ที่ค่อนข้างใหม่ - person Ingo Karkat; 18.03.2015
comment
อาจุดที่ดี ฉันทดสอบเวอร์ชันต่างๆ คำสั่ง :version มีประโยชน์ โดยจะแสดงรายการไฟล์ vimrc ที่ใช้อยู่ - person Trendfischer; 19.03.2015

ฉันอยากจะแนะนำให้ใช้ไฟล์ ~/.vimrc สำหรับการกำหนดค่าทั่วไปและมีไฟล์อื่นเช่น ~/.vimrc.local กับการกำหนดค่าเฉพาะเครื่องของคุณ คุณสามารถจัดหา ~/.vimrc.local ได้โดยการเพิ่มสิ่งต่อไปนี้ใน ~/.vimrc ของคุณ

if filereadable(glob("~/.vimrc.local")) 
    source ~/.vimrc.local
endif

เครดิต: http://blog.sanctum.geek.nz/local-vimrc-files/


เพื่อแก้ไขปัญหาของคุณ ให้ลองเพิ่ม runtime! bundle/**/*.vim ต่อท้ายไฟล์ pluginmanager.vim ของคุณ

ดูเพิ่มเติมที่: :help init

person Brett Y    schedule 17.03.2015
comment
ขอบคุณสำหรับคำตอบ. การจัดหาไฟล์อื่นๆ เป็นวิธีที่ดีและเป็นวิธีแก้ปัญหาที่ถูกต้องตามกฎหมาย แต่ความตั้งใจของฉันคือการหลีกเลี่ยง .vimrc หากไม่มีตัวจัดการปลั๊กอิน ฉันก็ไม่ควรพลาดและการกำหนดค่าต่างๆ ของฉันก็ได้รับการจัดระเบียบที่ดีขึ้นในไดเร็กทอรีปลั๊กอิน แต่อาจเป็นความชอบส่วนบุคคล - person Trendfischer; 18.03.2015
comment
@Trendfischer: เพียงเชื่อมโยง ~/.vimrc กับบางสิ่งใน repo Git ของคุณ - person Kevin; 18.03.2015