Làm cách nào để chạy lệnh vim cụ thể khi mở tệp có phần mở rộng nhất định?


9

Tôi muốn tất cả các tệp của tôi kết thúc .texcó độ dài dòng 80. Vì vậy, bất cứ khi nào tôi mở một .textệp trong vim tôi gõ :set tw=79. Tôi sẽ đặt cái gì trong .vimrc để tự động hóa cái này?

Nếu tôi muốn nó làm việc với một danh sách cụ thể của các loại file, chẳng hạn, .md, .txt, và .tex?

Câu trả lời:


10

Thay vì kiểm tra tiện ích mở rộng và cài đặt băng thông phù hợp, bạn chỉ cần tạo tex.vimtệp (tên phải khớp với tệp filetype) trong .vim/ftplugin/hoặc cho Windows $HOME/vimfiles/ftplugin/và đặt băng thông văn bản ở đó. Điều này sẽ giúp bạn giữ sạch .vimrc của bạn.

Tệp của bạn .vim/ftplugin/tex.vimsẽ trông như sau:

setlocal textwidth=79

Như 8bittree đã nói trong các bình luận, bạn cũng phải kích hoạt filetype pluginstrong vimrc của mình (Tôi không biết tại sao mọi người không kích hoạt nó):

filetype plugin on

Đọc phần này để biết thêm thông tin: http://vim.wikia.com/wiki/Keep_your_vimrc_file_clean


2
Bạn cũng sẽ muốn chắc chắn plugins filetype được kích hoạt trong của bạn .vimrcvới filetype plugin on.
8bittree

8

Trong ~/.vimrcbạn có thể thêm dòng sau:

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

Đối với các lệnh bổ sung, tách chúng bằng cách |.

Điều này sẽ đặt cài đặt của bạn ngay sau khi đọc tệp hoặc mở tệp mới vào bộ đệm cho các tiện ích mở rộng cụ thể.


2
setcó thể mất bất kỳ số lượng cài đặt. Một cái gì đó như set tw=79 nowrap formatoptions+=jsẽ làm việc. Tất nhiên là không cần |(trừ khi bạn muốn gọi một lệnh khác) ;-)
Martin Tournoij
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.