ปิด `filetype เยื้อง` ของ vim สำหรับประเภทไฟล์เฉพาะ


3

ในตัวฉัน .vimrc ฉันมี

filetype indent on

ตอนนี้วิธีที่จะพยายามเยื้องอัตโนมัติ yaml ไฟล์สับสนมากสำหรับฉันดังนั้นฉันต้องการเปิด filetype indent ปิด แต่สำหรับ yaml ไฟล์ไม่ใช่สำหรับไฟล์อื่น

ฉันจะบอกได้อย่างไรในตัวฉัน .vimrc?

คำตอบ:


4

คำตอบของ @ maiki ให้ทางออกที่ถูกต้อง ถ้าคุณต้องการเก็บสิ่งนี้ไว้ ~/.vimrcต่อไปนี้เทียบเท่า:

autocmd FileType yaml let b:did_indent = 1

หากวิธีนี้ไม่ได้ผลคุณสามารถลองล้างวิธีการเยื้องในภายหลัง:

autocmd FileType yaml setlocal indentexpr=

ฉันยังคงแนะนำให้คุณพิจารณาเปลี่ยนการตั้งค่าของคุณให้ดีกว่าของคุณ .vimrc สามารถซิงค์ได้อย่างง่ายดาย พิจารณาว่าคุณอาจต้องการใช้ปลั๊กอินหรือการกำหนดค่าอื่น ๆ (เช่น ~/.gitconfig ) ในอนาคต. มีอยู่หลายวิธีในการซิงค์การกำหนดค่าผู้ใช้ข้ามระบบ ผู้ใช้หลายคนมีพวกเขาในพื้นที่เก็บข้อมูลส่วนกลาง (Git) และใช้ symlink เพื่อติดตั้ง


1
สิ่งนี้ไม่ได้ผลสำหรับฉัน อย่างไรก็ตาม setlocal indentexpr= แทน let b:did_indent = 1 ทำงาน
Antonis Christofides

คุณพิมพ์ลงในหรือใส่ใน. vimrc จริง ๆ หรือไม่ เป็นสิ่งสำคัญที่ autocmd นี้ถูกกำหนดไว้ก่อน อย่างไรก็ตามคุณพบวิธีแก้ปัญหาแล้ว! ฉันได้เพิ่มเข้าไปในคำตอบของฉัน
Ingo Karkat

เหมือนกันที่นี่ let b:did_indent = 1 ใน ~/.vimrc ไม่ทำงาน. ฉันลองวางก่อนและหลัง filetype plugin indent onไม่ทำงาน อย่างไรก็ตาม autocmd FileType yaml setlocal indentexpr= ทำงานได้ดี มันจะต้องเพิ่มหลังจาก filetype plugin indent on.
wisbucky

3

สิ่งนี้ควรทำเคล็ดลับ

echo 'let b:did_indent = 1' > ~/.vim/indent/yaml.vim

แหล่ง


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