Bagaimana cara menjalankan perintah vim tertentu ketika membuka file dengan ekstensi yang diberikan?

9

Saya ingin semua file saya berakhir .texdengan panjang garis 80. Jadi, setiap kali saya membuka .texfile di vim saya mengetik :set tw=79. Apa yang akan saya masukkan ke dalam .vimrc saya untuk mengotomatisasi ini?

Bagaimana jika saya ingin bekerja dengan daftar spesifik tipe file, katakanlah, .md, .txt, dan .tex?

JeremyKun
sumber

Jawaban:

10

Alih-alih memeriksa ekstensi dan mengatur bandwidth sesuai Anda bisa membuat file tex.vim(nama harus cocok dengan filetype) di .vim/ftplugin/atau untuk Windows $HOME/vimfiles/ftplugin/dan mengatur bandwidth di sana. Ini akan membantu Anda menjaga .vimrc Anda bersih.

.vim/ftplugin/tex.vimFile Anda akan terlihat seperti:

setlocal textwidth=79

Seperti yang 8bittree katakan dalam komentar Anda juga harus mengaktifkan filetype pluginsdi vimrc Anda (saya tidak tahu mengapa ada orang yang tidak mengaktifkannya):

filetype plugin on

Baca ini untuk informasi lebih lanjut: http://vim.wikia.com/wiki/Keep_your_vimrc_file_clean

ap0
sumber
2
Anda juga ingin memastikan plugin tipe file diaktifkan di .vimrcdengan Anda filetype plugin on.
8bittree
8

Di ~/.vimrcAnda dapat menambahkan baris berikut:

au BufReadPost,BufNewFile *.md,*.txt,*.tex setlocal tw=79

Untuk perintah tambahan, pisahkan dengan |.

Ini akan mengatur pengaturan Anda tepat setelah membaca file, atau membuka file baru ke buffer untuk ekstensi tertentu.

kenorb
sumber
2
setdapat mengambil sejumlah pengaturan. Sesuatu seperti set tw=79 nowrap formatoptions+=jakan bekerja. Tidak perlu untuk |(kecuali jika Anda ingin memanggil perintah yang berbeda, tentu saja) ;-)
Martin Tournoij