วิธีการดำเนินการคำสั่งในการเริ่มต้นเป็นกลุ่ม


11

ฉันเพิ่งติดตั้งปลั๊กอินสำหรับ python ซึ่งแสดงแผนผังวิธีการ ดังนั้นฉันต้องการเปิดแผนผังเมื่อเริ่มต้นจึงไม่จำเป็นต้องกดปุ่มทุกครั้งที่ฉันเปิด.pyไฟล์ แต่ฉันต้องการคำสั่งนี้จะถูกดำเนินการสำหรับ.pyไฟล์เท่านั้น นี่คือลักษณะชิ้น vimrc ของฉัน:

nmap <F8> :TagbarToggle<CR>

มีวิธีดำเนินการคำสั่งนี้เมื่อเริ่มต้นสำหรับ.pyไฟล์เท่านั้นหรือไม่


Antdy St. Antario คุณอาจต้องการทราบว่าคำตอบที่คุณยอมรับมีจำนวน upvotes น้อยกว่าคำตอบอื่น
ลูกไก่

คำตอบ:


8

เพิ่มในของคุณ.vimrc:

au BufEnter *.py :TagbarToggle<CR>

ที่ไหน

  • auคือautocmdรันคำสั่งโดยอัตโนมัติ

  • BufEnter คือเมื่อคุณป้อนไฟล์เป็นครั้งแรก

  • *.py สำหรับ filetype python

  • และส่วนที่เหลือเป็นคำสั่งที่จะดำเนินการ

2
วิธีนี้จะเพิ่มการเติมข้อความอัตโนมัติพิเศษและทุกครั้งที่.vimrcมีที่มา เพื่อป้องกันสิ่งนี้บรรทัดควรล้อมรอบด้วยกลุ่มที่ลบคำสั่ง :help augroup-deleteดู
รวย

: augroup testgroup: autocmd! : au BufEnter * .py: TagbarToggle <CR> ส่วนท้ายของกลุ่ม END มันโอเคไหม
ปิล

1
ดูดีกับผม!
รวย

11

ในความคิดของฉันวิธีที่สะอาดที่สุดในการทำเช่นนี้คือการเพิ่มคำสั่งลงในไฟล์ใน.vim/vimfilesไดเรกทอรีของคุณ:

~/.vim/after/ftplugin/python.vim

หรือสำหรับ Windows:

$HOME\vimfiles\after\ftplugin\python.vim

เทคนิคนี้มีการบันทึกไว้ใน:help ftplugin-overrule(รายการในรายการ 3) แม้ว่าบริบท (การเปลี่ยนแปลงการตั้งค่า) จะแตกต่างกันเล็กน้อย

มันมีประโยชน์ดังต่อไปมากกว่าเทคนิค autocommand อธิบายโดยพิล

  1. รหัสน้อย คุณเพิ่งเขียน Vimscript ที่คุณต้องการดำเนินการ คุณไม่จำเป็นต้องเขียนโค้ดอัตโนมัติและล้อมรอบมันด้วย คำสั่งaugroupและautocommand!ล้าง

  2. ค่าใช้จ่ายน้อย Vim กำลังตรวจจับชนิดไฟล์และตรวจสอบการมีอยู่ของafter/ftplugin/filetypeไฟล์: เหตุใดจึงต้องเพิ่มคำสั่งอัตโนมัติเพิ่มเติมและดำเนินการตามวัตถุประสงค์เดียวกัน

  3. .vimrcทำความสะอาด ฉันคิดว่าการแยกฟังก์ชันเฉพาะประเภทไฟล์ออกจากฉัน.vimrcดีกว่า (บางคนไม่เห็นด้วยกับสิ่งนี้แม้ว่า: ดูข้อเสียด้านล่าง)

นอกจากนี้ยังมีข้อเสียเล็กน้อยสองประการ:

  1. ใช้งานได้เฉพาะเมื่อคุณใช้การตรวจจับประเภทไฟล์ของ Vim เท่านั้น ( :help filetype)

    อย่างไรก็ตามนี่เป็นหนึ่งในการตั้งค่าแรกที่ผู้ใช้เปิดใช้งานใน. vimrc ของพวกเขาและฉันต้องการเดิมพันว่าผู้ใช้ Vim เกือบทั้งหมดได้เปิดใช้งานแล้ว

  2. บางคนชอบเก็บค่าทั้งหมดไว้ใน.vimrcไฟล์


1
+1 สำหรับftplugin/<filetype>.vimแยกที่ดีขึ้นของความกังวล :)
LEI
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.