สลับระหว่างการกำหนดค่า vim ที่ต่างกันสองแบบ?


9

ฉันมีโฟลเดอร์. vimrc และ. vim ฉันได้รับการปรับแต่งสักพักหนึ่ง แต่ในเครื่องของฉันที่งานใหม่ฉันเพิ่งติดตั้งdotfiles ของ ryanb (ซึ่งมีไฟล์ config สำหรับ vim, git และอื่น ๆ ) มีสิ่งที่ฉันชอบในแต่ละการกำหนดค่าดังนั้นท้ายที่สุดฉันต้องการรวมพวกเขาเข้ากับการกำหนดค่าส่วนบุคคลใหม่ ในขณะเดียวกันฉันต้องการที่จะสลับไปมา

มีคำสั่งง่าย ๆ สำหรับสิ่งนี้ใน vim - "ใช้ไดเรกทอรี. vimrc และ. vim" ต่อไปนี้หรือไม่

คำตอบ:


7

-uตัวเลือกที่จะช่วยให้คุณสามารถระบุไฟล์การกำหนดค่าอื่น ๆ กว่า ~ / .vimrc แต่มีตัวเลือกในการระบุทางเลือกในการไดเรกทอรี ~ / .vim ไม่มี อย่างไรก็ตามคุณสามารถให้ Vim ใช้ไดเรกทอรีอื่นโดยแก้ไขตัวเลือก 'runtimepath' ('rtp') ในแต่ละไฟล์การกำหนดค่าของคุณ ตัวอย่างเช่นคุณสามารถใช้คำสั่งนี้

let &rtp = substitute(&rtp, '\.vim\>', '.vim1', 'g')

ในหนึ่งในไฟล์การกำหนดค่าของคุณเพื่อบอกให้ Vim ใช้ไดเรกทอรี ~ / .vim1 แทนไดเรกทอรี ~ / .vim


ฉันเดาฉันสามารถใช้นี้เพื่อให้ทุกอย่างใน Dropbox :)
ไมเคิลรอน

1
@Michael Caron - คุณสามารถเก็บ.vimrcและ.vimทุกที่ที่คุณต้องการตราบใดที่คุณมีการเชื่อมโยงในโฟลเดอร์บ้านของคุณไปทุกที่ที่คุณใส่พวกเขา ส่วนตัวฉันใช้เคล็ดลับนี้เพื่อเก็บการกำหนดค่าทั้งหมดของฉันไว้ใน.dotfilesโฟลเดอร์ซึ่งฉันสามารถซิงค์กับ Github ได้
นาธานลอง

3

-u แจ้งให้ vim ใช้ไฟล์ vimrc สำรอง


ฉันเพิ่งเรียนรู้ว่าจะvim -u "NONE"เปิดวานิลลาเป็นกลุ่มโดยไม่มีการกำหนดค่า สิ่งนี้มีประโยชน์หากคุณมีการกำหนดค่าที่ซับซ้อนและต้องการทราบว่าพฤติกรรมบางอย่างเป็นของ Vim หรือไม่ (ใช้ได้กับ MacVim - ฉันยังไม่ได้ลอง Gvim บน Linux)
Nathan Long

1

สลับการกำหนดค่าโดยการแทนที่ Directory Symlink

ฉันมีการตั้งค่าต่อไปนี้:

❯ tree -L  2 ~/.vim-configs
~/.vim-configs
├── nathanl
│   ├── .git
│   ├── gvimrc
│   ├── pack
│   └── vimrc
├── ryanb
│   ├── autoload
│   ├── ...
│   └── vimrc
└── minimal
    ├── autoload
    ├── cache
    ├── doc
    ├── plugin
    └── vimrc

❯ ls -l ~/.vim
lrwxr-xr-x  1 hotschke  staff  42 Apr  3 16:35 .vim -> /Users/hotschke/.vim-configs/minimal

หากคุณต้องการเปลี่ยนการกำหนดค่าที่แตกต่างกันคุณก็ต้องดำเนินการ

❯ ln -snf ~/.vim-configs/configX ~/.vim

ทางเลือก: ฟังก์ชันเชลล์พร้อมแท็บเสร็จสมบูรณ์สำหรับการสลับการกำหนดค่า

หากคุณมีความทะเยอทะยานคุณสามารถเขียนฟังก์ชันเชลล์ขั้นต่ำด้วยการเติมข้อความอัตโนมัติเพื่อทำให้สุดยอดนี้ ตัวอย่างเช่นถ้าคุณใช้ zsh คุณสามารถใช้

# Swim - Switch Vim Configs
compdef '_path_files -/ -W ~/.vim-configs' swim
function swim {
  if [ $# -eq 0 ]
  then
    zmodload zsh/stat
    active=$(stat +link "$HOME/.vim")
    echo "Swimming with ${${active}:t}"
    echo "$HOME/.vim -> $active"
    zmodload -u zsh/stat
  else
    echo "Swimming with $1"
    ln -snfv ~/.vim-configs/$1 ~/.vim
  fi
}

มีแท็บที่สมบูรณ์แล้วและใช้งานได้ทุกที่ในระบบไฟล์ของคุณ:

❯ pwd
<somewhere in your filesystem not necessarily $HOME or $HOME/.vim>
❯ swim <Tab>
-- directory --
minimal/  nathanl/  ryanb/
❯ swim minimal
Swimming with minimal
/Users/hotschke/.vim -> /Users/hotschke/.vim-configs/minimal
❯ swim
Swimming with minimal
/Users/hotschke/.vim -> /Users/hotschke/.vim-configs/minimal

(ชื่อฟังก์ชั่นถูกขโมยจากhttps://github.com/dawsbot/swim )


ทางออกที่ดีฉันขอแนะนำให้เพิ่มนามแฝงสำหรับแต่ละการตั้งค่าเช่นเพื่อให้คุณสามารถเปลี่ยนการตั้งค่าของคุณเพียงแค่พิมพ์ชื่อแทนเช่นalias vimbasic="ln -snf ~/.vim-configs/basic/ ~/.vim && vim" vimbasic
ตัน

1

Vim Plugin Manager Volt

https://github.com/vim-volt/volt

การติดตั้งบน macOS: $ brew install volt

คุณลักษณะ“ โปรไฟล์” บันทึกชุดของปลั๊กอิน vimrc และ gvimrc

คุณสามารถสลับชุดค่าผสมด้วยคำสั่งเดียว ตัวอย่างเช่นคุณสามารถเปลี่ยนจากการตั้งค่าการพัฒนาเว็บเป็นปลั๊กอินที่จำเป็น + vimrc หรือ vanilla vim

นอกจากนี้ยังเป็นประโยชน์ในการสร้างการกำหนดค่าขั้นต่ำเมื่อตั้งคำถามเกี่ยวกับเครือข่าย stackexchange หรือปัญหาใน github สำหรับปลั๊กอิน vim / vim

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