เพื่อให้มั่นใจว่าพฤติกรรมไม่ได้รับผลกระทบจากการกำหนดค่าส่วนตัวของฉันฉันต้องการเริ่ม Vim ด้วยวิธีที่ละเว้นไฟล์ config ที่ผู้ใช้ติดตั้งทั้งหมดของฉันราวกับว่า Vim เพิ่งถูกติดตั้งใหม่เป็นครั้งแรกและผู้ใช้เรียกใช้ ทันที
นี่คือการแก้ไขในคำถามที่พบบ่อยซึ่งแสดงให้เห็นว่าคำตอบคือการเริ่มต้นเป็นกลุ่มด้วยคำสั่งต่อไปนี้:
vim -u NONE -U NONE -N -i NONE
วิธีนี้ได้รับมากที่สุดแต่runtimepath
ตัวเลือกยังคงมี~/.vim
และโดยเฉพาะอย่างยิ่ง~/.vim/after
(เช่นถ้าฉันเปิดการตรวจสอบประเภทไฟล์และเปลี่ยนประเภทไฟล์รหัสใน~/.vim/after/syntax/the_relevant_filetype.vim
จะถูกดำเนินการ)
ฉันสามารถแก้ไขปัญหาเฉพาะนี้ได้โดยเรียกใช้คำสั่งต่อไปนี้เมื่อเริ่มต้น *:
:set runtimepath-=~/.vim
:set runtimepath-=~/.vim/after
... แต่ฉันไม่แน่ใจว่า:
- นี่เป็นโซลูชันที่มีประสิทธิภาพ: เส้นทางเหล่านี้เป็นเส้นทางเดียวที่ทำให้การกำหนดค่าผู้ใช้มีผลหรือไม่ มีอะไรอีกที่ฉันไม่ได้คิด?
- มีวิธีที่ดีกว่าในการบรรลุผลลัพธ์ที่ต้องการ
* โดยใช้--cmd
หรือ-u vimrc
เชลล์อาร์กิวเมนต์หรือเพียงพิมพ์ด้วยตนเอง
แก้ไข : นี่คือตัวอย่างหนึ่งของปัญหาที่ฉันกำลังพยายามแก้ไข (แม้ว่าฉันต้องการวิธีการแก้ไขปัญหาที่เป็นไปได้อื่น ๆ ที่ฉันอาจยังไม่ได้พบ):
สร้างไฟล์ ~ / .vim / after / ftplugin / c.vim ที่มีเนื้อหา:
noremap i :echom "This is not default behaviour"<CR>
ตอนนี้เรามีการกำหนดค่าที่ผู้ใช้ติดตั้งซึ่งเราต้องการเพิกเฉย ลองทดสอบวิธีแก้ปัญหาที่แนะนำโดย FAQ
เรียกใช้ Vim ด้วยคำสั่ง:
vim -u NONE -U NONE -N -i NONE
ป้อนคำสั่ง:
:filetype plugin on :set ft=c i
พฤติกรรมที่ต้องการ : กลุ่มควรเข้าสู่โหมดแทรก นี่คือสิ่งที่จะทำถ้าไม่มีการกำหนดค่าผู้ใช้
ลักษณะการทำงานที่สังเกต : Vim พิมพ์ "นี่ไม่ใช่ลักษณะการทำงานเริ่มต้น"
:cd ~
แต่ตำแหน่งเริ่มต้นของviminfo
ไฟล์อยู่ใน $ HOME ซึ่งอาจทำให้เกิด E138 ฉันเดาว่าการสร้างไดเรกทอรีใหม่ที่ว่างเปล่าและการใช้สิ่งนั้นสำหรับ $ HOME อาจเป็นทางออกที่ดีที่สุด
-u NONE
เหรอ?
/tmp
อาจจะดีกว่ามันเป็นความคิดแรกของฉัน แต่จากนั้นฉันเลือก / dev / null เป็นหลุมดำ ... หรืออะไรทำนองHOME=$(mktemp -d) vim ...
นั้น
-u NONE
? ฉันคิดว่ามันขึ้นอยู่กับพฤติกรรมที่คุณต้องการ
HOME=/dev/null vim -u NONE
?