ฉันสามารถใช้vim -u filename
ที่จะใช้แทนการเริ่มต้นของฉันfilename
.vimrc
ฉันใช้วิธีนี้เมื่อเปลี่ยนบริบทผู้ใช้ ( su
) เพื่อใช้งานของฉัน .vimrc
แม้ว่าจะทำงานเป็น superuser
ฉันสามารถบรรลุเดียวกันยังโฟลเดอร์ซึ่งเริ่มต้นโดยเป็น~/.vim
เพื่อที่ฉันสามารถชี้เป็นกลุ่มจากบรรทัดคำสั่งไปยังโฟลเดอร์ทางเลือก?
สิ่งที่ฉันต้องการเพื่อให้บรรลุ
ตกลงสมมติว่าผู้ใช้joe
( HOME=/home/joe
) และผู้ใช้root
( HOME=/root
) ผู้ใช้joe
มีชุดนามแฝงvim
ซึ่งมีลักษณะดังนี้ (แต่เดิมตั้งค่าไว้โดยใช้$HOME
ตัวแปรเพื่อสร้างไดนามิก):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
จากนั้นผู้ใช้joe
ทำอะไรบางอย่างตามสายของsudo su -
( แต่ด้วยเวทมนตร์ที่เพิ่มขึ้น) ส่งผลให้.bashrc
และอื่น ๆ สารพัดจากที่จะโหลด/home/joe
ขณะนี้root
ผู้ใช้root
มีชื่อแทนเดียวกันที่แน่นอนสำหรับvim
ชุดดังที่แสดงด้านบน
ปัญหาคือว่าสิ่งนี้.vimrc
ถูกใช้ในระบบต่าง ๆ และในสถานการณ์ต่าง ๆ บ่อยครั้งที่บัญชีของโจถูกเรียกjoe
แต่บางครั้งก็จะเป็นสิ่งที่ชอบหรือสิ่งอื่นที่ส่งผลให้ค่าแตกต่างกันสำหรับlocal.joe
$HOME
ดังนั้นการเข้ารหัสเส้นทางที่แน่นอนไปยัง~/.vim
โฟลเดอร์จึงไม่ใช่ความคิดที่ดี อย่างไรก็ตามในสถานการณ์สมมติข้างต้นผู้ใช้ของเราroot
ไม่มีโฟลเดอร์/root/.vim
ซึ่งคาดว่าจะมีอยู่ตามค่าเริ่มต้นผ่านโหลด.vimrc
( /home/joe/.vimrc
)
สิ่งที่ฉันต้องการบรรลุ - โดยเฉพาะอย่างยิ่งในบรรทัดคำสั่ง - คือการให้ Vim ใช้ปลั๊กอิน ฯลฯ จากด้านล่าง/home/joe/.vim
เมื่อเริ่มต้นเป็นroot
(สมมติว่าalias
มีการตั้งค่าตามที่แสดง - กรณีอื่นสามารถละเว้นได้) หากมีวิธีการแบบไดนามิกผ่าน VimScript โปรดระบุพอยน์เตอร์ แต่การใช้ตัวแปรเช่น$HOME
จะนำไปสู่การจับ 22 ฉันคิดว่า
ln
คุณอาจจะได้รับนี้ทำกับดีเก่า เช่น 'mv ~ / .vim ~ / .vim-สิ่ง && LN -s ~ / .vim-สิ่งที่ ~ / .vim`.vimrc
แล้วทำเช่นเดียวกันสำหรับ ห่อทุกอย่างด้วยนามแฝง bash เพื่อให้คุณสามารถสลับทางเดียวหรืออย่างอื่นได้อย่างง่ายดาย