ฉันจะทำให้ Vim ปรับให้เข้ากับลักษณะการเยื้องในปัจจุบันของไฟล์ที่ฉันแก้ไขได้อย่างไร


39

ฉันทำงานกับโปรเจ็กต์ JavaScript หลายประเภท ในโครงการส่วนใหญ่การเยื้องของไฟล์ JavaScript คือ 2 ช่องว่างดังนั้นฉันจึงตั้งค่าความกว้างของการเยื้องเป็นค่าเริ่มต้น อย่างไรก็ตามมันจะกลายเป็น 1 หรือ 4 ในบางโครงการอื่น ๆ

มีวิธีให้ Vim เปลี่ยนสไตล์การเยื้องตามสไตล์ที่ใช้ไปแล้วในไฟล์ปัจจุบันหรือไม่?


ทำไมคุณไม่เพิ่มการตั้งค่าใน. vimrc สำหรับไฟล์ประเภทใดประเภทหนึ่ง? :au BufEnter *.js :set shiftwidth=2. สิ่งนี้ใช้ได้กับทุกโครงการ
SibiCoder

1
@SibiCoder: เพราะแม้แต่ไฟล์ประเภทเดียวกันก็สามารถมีรูปแบบการเยื้องที่แตกต่างกันในโครงการที่แตกต่างกัน (เช่น: โครงการที่ไม่ได้เป็นของ บริษัท เดียวกัน)
2559

*.*เป็นเพียงรูปแบบ คุณสามารถใช้ชื่อไฟล์หรือเส้นทางได้เช่นกัน หรือคุณสามารถใช้คำสั่งอัตโนมัติที่คล้ายกันเช่นเดียวกับที่ฉันให้สำหรับแต่ละไฟล์ คุณสามารถสั่งให้คำสั่งอัตโนมัติเพื่อใช้แบนด์วิดท์ของไฟล์ปัจจุบันและวางไว้สำหรับพา ธ ของไฟล์นี้ มันค่อนข้างง่าย
SibiCoder

คำตอบ:


28

หากต้องการเพิ่มคำตอบของ @Undo ด้านบน Tim Pope ก็มีปลั๊กอินที่พยายามทำเช่นเดียวกันกับtpope / vim-sleuth


5
Sleuth ดูเหมือนจะทำงานได้ดีกว่า detectindent เล็กน้อยในประสบการณ์ของฉันและจะพยายามกำหนดการตั้งค่าเยื้องที่เหมาะสมสำหรับไฟล์ใหม่โดยดูที่ไฟล์อื่น ๆ ในระบบไฟล์
jamessan

@jamessan ไม่รู้ว่าดีน่ารู้
Dhruva Sagar

2
โปรดอ่านนโยบายของเราเกี่ยวกับคำตอบปลั๊กอินคำแนะนำและเพิ่มรายละเอียดเกี่ยวกับวิธีการใช้ปลั๊กอินที่แนะนำของคุณเพื่อแก้ปัญหา
200_success

15

ฉันไม่ได้ใช้ แต่ciaranm / detectindentอาจเป็นสิ่งที่คุณกำลังมองหา ดูเหมือนว่าจะใช้งานได้ (อัปเดตล่าสุด 25 วันที่ผ่านมา) และดูเหมือนว่าจะเป็นสิ่งที่คุณต้องการ:

ปลั๊กอิน Vim สำหรับตรวจจับการตั้งค่าเยื้องโดยอัตโนมัติ ปลั๊กอินนี้เพิ่มคำสั่ง: DetectIndent ซึ่งพยายามตั้งค่าตัวเลือก 'shiftwidth', 'expandtab' และ 'tabstop' อย่างชาญฉลาดตามการตั้งค่าที่ใช้งานอยู่ในไฟล์ที่ใช้งานอยู่


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