ฉันจะติดตั้งปลั๊กอินใน Vim ได้อย่างไร?
มันเป็นเรื่องสำคัญ:
- ไม่ว่าฉันจะใช้ vi หรือ Vim?
- ไม่ว่าฉันจะใช้ gVim?
- Vim รุ่นใดที่ฉันกำลังใช้อยู่
- ระบบปฏิบัติการของฉันคืออะไร
ฉันจะติดตั้งปลั๊กอินใน Vim ได้อย่างไร?
มันเป็นเรื่องสำคัญ:
คำตอบ:
ในการติดตั้งปลั๊กอินเราจำเป็นต้องรู้ว่ามันมาในรูปแบบใดมันอาจจะเป็น:
.vim
ไฟล์เดียวplugin/*
, syntax/*
ฯลฯ ) ( อะไรทำให้ปลั๊กอิน Vundle เข้ากันได้และตัวจัดการปลั๊กอินอื่น ๆ สามารถใช้แทนกันได้ ).vim
ไฟล์เดียวควรถูกวางไว้ใน.vim/plugin
ไดเรกทอรี
ไฟล์ Vimball สามารถติดตั้งได้:source %
โดยการเปิดในกลุ่มและทำงาน
ชุดของไฟล์ในรูปแบบไดเรกทอรีมาตรฐานสามารถติดตั้งได้ทั้งโดยการคัดลอกพวกเขาไป.vim
หรือใช้แพคเกจผู้จัดการปลั๊กอิน
ปลั๊กอินอาจขึ้นอยู่กับคุณสมบัติบางอย่าง ดังนั้น:
สำหรับปลั๊กอินส่วนใหญ่แม้ว่ามันอาจไม่สำคัญ
ฉันชอบใช้ตัวจัดการปลั๊กอินvim-plug
ปัญหาของการติดตั้งปลั๊กอินด้วยตนเองคือการลบปลั๊กอินนั้นค่อนข้างยาก คุณมักจะมีไฟล์หลายไฟล์ในไดเรกทอรีที่แตกต่างกันคุณจะต้องค้นหาด้วยตนเอง & ลบมัน
ปัญหาการอัพเกรดนั้นยากเหมือนกัน: จะเกิดอะไรขึ้นถ้าautoload/old-name.vim
เปลี่ยนชื่อเป็นautoload/new-name.vim
? ตอนนี้คุณมีทั้งปลั๊กอินรุ่นเก่าและใหม่
vim-plug
แก้ปัญหานี้โดยการจัดเก็บปลั๊กอินแต่ละตัวในไดเรกทอรีของตัวเอง นอกจากนี้ยังมีคำสั่งให้ติดตั้ง / ลบปลั๊กอินได้ง่ายคุณจึงไม่ต้องยุ่งกับการคลายการบีบอัดปลั๊กอินและสิ่งที่คล้ายกัน
ข้อได้เปรียบที่สำคัญของ vim-plug เหนือ Pathogenคือ vim-plug ช่วยให้คุณสามารถติดตั้งและลบปลั๊กอินได้ง่ายขึ้น สิ่งที่ Pathogen ทำคืออนุญาตให้ปลั๊กอินแต่ละตัวอยู่ในไดเรกทอรีที่มีอยู่แยกต่างหาก
vim-plug อาศัยgit ; สำหรับ MS Windows คุณต้องการ msysgit
คุณสามารถกำหนดปลั๊กอินใน vimrc ของคุณดังนี้:
call plug#begin('~/.vim/plugged')
" For MS Windows, this is probably better:
"call plug#begin('~/vimfiles/plugged')
Plug 'embear/vim-localvimrc'
Plug 'kchmck/vim-coffee-script'
" ... etc
call plug#end()
จากนั้นรีสตาร์ท Vim จากนั้นติดตั้งปลั๊กอินด้วย:
:PlugInstall
สิ่งนี้จะใส่ปลั๊กอินใน~/.vim/plugged
หรือ$HOME\vimfiles\plugged
สำหรับ MS Windows
คุณสามารถเพิ่ม
ตัวอย่างนี้จากคำถามที่พบบ่อยในไฟล์ vimrc ของคุณก่อนการplug#begin()
โทร:
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall
endif
โปรดทราบว่าคุณต้องการcurl
ให้สิ่งนี้ทำงาน มีให้ใช้งานบน Linux และ OSX เกือบทุกครั้ง แต่ไม่ใช่ใน MS Windows ดังนั้นเคล็ดลับนี้จะไม่ทำงานที่นั่น ...
หากต้องการลบปลั๊กอินให้ลบออกจากไฟล์ vimrc และรัน:
:PlugClean
โปรดทราบว่า vim-plug ไม่รองรับการติดตั้งสคริปต์จากเว็บไซต์สคริปต์ Vim แต่สคริปต์เหล่านั้นสะท้อนอยู่บน GitHubดังนั้นจึงไม่จำเป็นต้องทำเช่นนั้น
นอกจากนี้ยังมีข้อดีเพิ่มเติมบางประการเช่นการปรับปรุงปลั๊กอินให้ง่ายขึ้นและการโหลดตามความต้องการเพื่อประสิทธิภาพที่ดีขึ้น คุณสามารถคัดลอก vimrc ของคุณไปยังคอมพิวเตอร์เครื่องอื่นเรียกใช้:PlugInstall
และมีปลั๊กอินทั้งหมดของคุณได้อย่างง่ายดาย
หมายเหตุมีตัวจัดการปลั๊กอินเพิ่มเติม vim-plug
ผมก็จะใช้ ดูเพิ่มเติม: อะไรคือความแตกต่างระหว่างผู้จัดการแพ็คเกจที่เป็นกลุ่ม?
Pathogen เป็นตัวจัดการเส้นทางรันไทม์ซึ่งโหลดปลั๊กอินภายใน Vim มันทำให้การติดตั้งปลั๊กอินง่าย นี่คือวิธีการ:
หมายเหตุ: หากคุณกำลังใช้ Windows แทนที่ด้วย~/.vim
$HOME\vimfiles
คัดลอกไปpathogen.vim
~/.vim/autoload/pathogen.vim
สร้าง~/.vim/bundle
ไดเรกทอรีถ้าไม่มีอยู่แล้ว
เพิ่มบรรทัดต่อไปนี้ไปยังจุดเริ่มต้นของคุณ.vimrc
:
execute pathogen#infect()
คุณทำเสร็จแล้ว! เมื่อคุณต้องการเพิ่มปลั๊กอินเพียงแค่คัดลอกไดเรกทอรีของปลั๊กอินทั้งหมดไปที่~/.vim/bundle
นั่นหรือgit clone
ไปที่นั่น ตัวอย่างเช่น:
cd ~/.vim/bundle
git clone https://github.com/tpope/vim-surround
* Caveat: หากปลั๊กอินของคุณมาในรูปแบบของ.vim
ไฟล์มันจะไม่ทำงานกับ Pathogen คัดลอกไปที่~/.vim/plugin
แทน (คุณอาจต้องสร้างไดเรกทอรีนี้หากไม่มีอยู่)
git submodule add
(แทนgit clone
) หากการกำหนดค่า vim ของคุณเป็นส่วนหนึ่งของโครงการคอมไพล์ของคุณเอง
runtimepath
ตัวเลือกและนั่นคือทั้งหมด มันไม่ได้เกี่ยวข้องกับการอัปเดตเพิ่มดึงเอาปลั๊กอินออกเลย
เวอร์ชัน 8 นำเสนอกลไกแพ็กเกจใหม่ที่แทนที่ความต้องการตัวจัดการปลั๊กอินที่มีอยู่ส่วนใหญ่ (pathogen, vim-plug, vundle และอื่น ๆ ) ในขณะที่เขียน (2017)
จากเอกสาร :
แพ็คเกจ Vim เป็นไดเรกทอรีที่มีปลั๊กอินหนึ่งรายการขึ้นไป
ไดเรกทอรีแพ็คเกจประกอบด้วยไดเรกทอรีย่อยสองไดเรกทอรี:
start/
- มีปลั๊กอินที่จะถูกโหลดโดยอัตโนมัติopt/
- มีปลั๊กอินที่โหลดตามต้องการ :packadd
อาจดูเหมือนซับซ้อนเล็กน้อย แต่ในทางปฏิบัติสิ่งที่คุณต้องทำคือเพิ่มปลั๊กอินของคุณที่นี่ :
↓ package name
~/ .vim / pack / bundle / start / some-plugin
↑ packages dir ↑ plugin dir
บน Windows : ใช้~\vimfiles\pack\
แทน~/.vim/pack/
ตามแบบแผนเราได้ใช้ชื่อแพ็คเกจ "มัด" เป็นไดเรกทอรีที่จะมีปลั๊กอินทั้งหมดของเรา คุณสามารถใช้ชื่อใดก็ได้ที่คุณต้องการและคุณยังสามารถวางปลั๊กอินของคุณในไดเรกทอรีแพคเกจแยกต่างหากหากคุณต้องการ
mkdir -p ~/.vim/pack/bundle/start
cd ~/.vim/pack/bundle/start
git clone https://github.com/tpope/vim-sensible.git
บน Windows : ใช้~\vimfiles\pack\
แทน~/.vim/pack/
ครั้งต่อไปที่คุณเริ่มเป็นกลุ่มปลั๊กอินจะโหลดโดยอัตโนมัติ
.vim
อยู่ภายใต้การควบคุมเวอร์ชันคุณควรติดตั้งปลั๊กอินด้วย submodules ของ git ดูshapeshed.com/vim-packages/#adding-a-package
อย่าให้เราลืมสิ่งที่ยิ่งใหญ่ & ยิ่งใหญ่Vundle !
Vundle เป็นผู้จัดการปลั๊กอินที่สมบูรณ์พร้อมฟังก์ชั่นสำหรับ:
:PluginSearch
):PluginInstall
):PluginUpdate
):PluginClean
)อย่างที่คุณเห็นมันเป็นเหมือนตัวจัดการ vim-plug ที่ Carpetsmoker พูดถึง ฉันไม่รู้ว่าอันไหนมาก่อน แต่ API ของพวกเขาดูคล้ายกับฉันมากเช่นเดียวกับกระบวนการตั้งค่า
.vimrc
ได้ดังนั้นเมื่อติดตั้งบนเซิร์ฟเวอร์ใหม่สิ่งที่คุณต้องมีคือการติดตั้ง Vundle + .vimrc
เพื่อติดตั้งทุกอย่าง นอกจากนี้คุณสามารถแสดงความคิดเห็นปลั๊กอินของคุณและ 'ทำความสะอาด' แต่สามารถแสดงความคิดเห็นได้ในอีกไม่กี่เดือนหรือหลายปีต่อมาเมื่อคุณลืมชื่อมานาน
ส่วนใหญ่ปลั๊กอินของคุณจะเป็นไฟล์. vim ไฟล์เดียว
หากเป็นกรณีนี้ฉันค้นหาความช่วยเหลือและทดลองและคิดหาสิ่งต่อไปนี้ จากภายในเป็นกลุ่ม (โหมดคำสั่ง) พิมพ์:
:set runtimepath
สิ่งนี้จะแสดงชุดไดเรกทอรี บางไดเรกทอรีเหล่านี้จะมีplugin
ไดเรกทอรีย่อย การวางไฟล์. vim ใด ๆ ในหนึ่งในplugin
ไดเรกทอรีย่อยเหล่านี้จะถูกโหลดโดยอัตโนมัติเมื่อคุณเริ่มเรียกใช้จากที่ใดก็ได้
สำหรับฉันแล้วบน Ubuntu linux ฉันพบว่าใช้/usr/share/vim/vim74/plugin
งานได้ดีสำหรับผู้ใช้ทุกคน คุณอาจต้องขออนุญาตรูทเพื่อคัดลอกไฟล์ไปที่นี่ (คำนำหน้าcp
หรือmv
คำสั่งด้วยsudo
)
vim74
ซึ่งหมายความว่าเป็นรุ่นเฉพาะดังนั้นการอัพเกรดเป็น Vim 8.0 จะทำให้ปลั๊กอินนั้นหลวม วิธีที่พิสูจน์แล้วว่าต้องใช้การอัพเกรดมากกว่านี้/etc/vim/
(สร้างหากไม่มีอยู่และเพิ่มเส้นทางนั้นruntimepath
หากไม่สามารถใช้ได้/etc/vimrc
)
Most likely, your plugin will be a single .vim file
ฉันไม่เห็นด้วย ปลั๊กอินส่วนใหญ่มาพร้อมกับ.txt
ไฟล์ที่มีเอกสารและคุณต้องสร้างแท็กเพื่อรับเอกสารการทำงาน ยังมีปลั๊กอินจำนวนมากที่มาพร้อมกับautoload
ไดเรกทอรี ฉันคิดว่าการใช้ตัวจัดการปลั๊กอินเป็นทางออกที่ดีกว่าการจัดการ runtimepath ของคุณด้วยตนเอง
/usr/share/vim/vimXX
เป็นรันไทม์หุ้นและไม่ใช่สถานที่สำหรับการกำหนดค่าไซต์ / ปลั๊กอิน ควรกำหนดค่า / ปลั๊กอินของไซต์แทนตำแหน่งใด ๆ$VIM
บนระบบนั้น (ดู:h vimfiles
) โดยทั่วไปนี่เป็น/usr/share/vim
กรณีสำหรับ Ubuntu และถือ symlink /etc/vim
ไว้ โดยทั่วไป/usr/local/
เป็นสถานที่พฤตินัยสำหรับการตั้งค่าเว็บไซต์ภายนอกผู้จัดการแพคเกจ โปรดทราบว่า Neovim ใช้ประโยชน์จาก$XDG_(CONFIG|DATA)_DIRS
และsite
ไดเรกทอรีให้ค่าเริ่มต้นที่ดีกว่าออกจากกล่องสำหรับการกำหนดค่าเว็บไซต์
Vireใช้รูปแบบแพ็คล่าสุดเพื่อติดตั้งปลั๊กอินและรองรับ Vim และ Neovim คุณไม่จำเป็นต้องรู้ว่าจะมีอะไรเกิดขึ้น เพียงระบุ vimrc และ Vire จะดูแลส่วนที่เหลือ
vi
ลงบนกล่องที่ทันสมัยอาจจะเพิ่งเปิดตัวvim
พร้อมกับปิดคุณสมบัติบางอย่าง ฉันสงสัยว่าหลายคนมีโอกาสเข้าถึงVi จริงในปัจจุบัน