ฉันสามารถใช้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 เพื่อให้คุณสามารถสลับทางเดียวหรืออย่างอื่นได้อย่างง่ายดาย