.bashrc
ผมทำงานในแผนกของฉัน ฉันย้ายนามแฝงของฉันไปที่.bash_aliases
(ซึ่งมีที่มา.bashrc
แต่ฉันไม่สามารถหาวิธีการเปิดใช้งานการเน้นไวยากรณ์สำหรับไฟล์นี้vim
ดูเหมือนว่าไม่สามารถคิดได้ว่าไฟล์ภาษานั้นทำงานได้ดีสำหรับ.bashrc
แนวคิดใดบ้าง
.bashrc
ผมทำงานในแผนกของฉัน ฉันย้ายนามแฝงของฉันไปที่.bash_aliases
(ซึ่งมีที่มา.bashrc
แต่ฉันไม่สามารถหาวิธีการเปิดใช้งานการเน้นไวยากรณ์สำหรับไฟล์นี้vim
ดูเหมือนว่าไม่สามารถคิดได้ว่าไฟล์ภาษานั้นทำงานได้ดีสำหรับ.bashrc
แนวคิดใดบ้าง
คำตอบ:
ไปที่กลุ่มและเรียกใช้:
:echo $VIMRUNTIME
โดยปกติค่าจะเป็นดังนี้:
/ usr / share / vim / vim72
จากนั้นแก้ไข (โดยใช้ root) ไฟล์/usr/share/vim/vim72/filetype.vim
ค้นหา bashrc
คุณจะพบบรรทัดที่มีลักษณะดังนี้:
au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash_profile*,.bash_logout*,*.bash,*.ebuild call SetFileTypeSH("bash")
แก้ไขบรรทัดและเพิ่มชื่อไฟล์ (.bash_aliases) ของคุณ
แค่นี้แหละมันควรจะใช้ได้แล้ว
คำตอบอยู่ในนี้: vimdoc - setfแต่จะทำให้คุณมีกระดูกถ้าคุณแค่ต้องการให้ไวยากรณ์ & การเน้นไวยากรณ์ทำงานคุณสามารถทำได้:
:setf bash
ความเป็นไปได้อีกอย่างที่ฉันเพิ่งรู้เมื่อฉันตอบคำถาม VIM อีกข้อคือคุณสามารถเพิ่มหัวข้อนี้ในไฟล์. vimrcของคุณและมันจะเปิดใช้งานการเน้นไวยากรณ์โดยอัตโนมัติสำหรับไฟล์. bash_aliasesทุกครั้งที่คุณแก้ไขโดยไม่ต้องใช้แบบจำลอง พิมพ์: setf bashทุกครั้งที่คุณเปิดไฟล์
if has("autocmd")
augroup bashalias
autocmd BufRead,BufNewFile .bash_aliases set filetype=bash
augroup END
endif
ประการที่สามในฐานะ Mugen Kenichi ด้านล่างในความคิดเห็นคุณสามารถเพิ่ม modeline ให้กับไฟล์. bash_aliasได้เช่นกัน:
# vim: set filetype=bash:
.vimrc
แก้ไขมีความน่าเชื่อถือมากกว่า แต่โมเดล VIM นั้นยอดเยี่ยมมาก! ขอบคุณ
เพิ่มบรรทัดต่อไปนี้ลงใน ~ / .vimrc (สร้างหากไม่มีอยู่)
au BufNewFile,BufRead .bash_aliases call SetFileTypeSH("bash")
ติดตามคำตอบของ @ Pharaun สำหรับไฟล์ vim 8 และหลาย alias เพื่อให้การเน้นถูกต้องมีการตั้งค่าสองอย่างที่ฉันต้องทำ ที่หนึ่งในไฟล์. bash_aliases ใหม่:
# vim: set filetype=bash
เช่นเดียวกับการตรวจสอบใน. vimrc ของฉัน
if has("autocmd")
augroup bashalias
autocmd BufRead,BufNewFile *_aliases set filetype=sh
augroup END
endif
ขอให้สังเกต filetype คือการดวลจุดโทษเช่นเดียวกับสัญลักษณ์แทน * ชื่อไฟล์หลาย
ไม่แน่ใจว่าทำไมจึงต้องมีการตั้งค่าทั้งสองนี้ ฉันพยายามใช้การตั้งค่าเดียว แต่ต้องใช้คอมโบทั้งสองเพื่อให้การเน้นถูกต้อง
bash
sh