2010-05-22 34 views
44

Tôi sẽ đọc hết các dấu chấm của tôi để dọn dẹp chúng. Tôi đã nhận thấy rằng qua thời gian tôi đã thêm các cài đặt cụ thể của các loại tệp theo nhiều cách không nhất quán. Giả sử tôi đang tùy chỉnh cho Python:Cách tốt nhất để sắp xếp các cài đặt filetype trong .vim và .vimrc?

  • au BufRead,BufNewFile *.py (do something). Tôi không thích điều này vì một số tệp Python có thể không có kết thúc .py.

  • au FileType python (do something). Điều này có vẻ là một lựa chọn tốt hơn bởi vì nó không phụ thuộc vào tệp có kết thúc .py. Nhược điểm là Vim không biết về một số loại tệp. Tôi có thể làm cho Vim nhận ra các loại tệp bổ sung, nhưng tôi cũng có nhiều cách khác nhau để thực hiện: một tệp .vim/filetype.vim, một tệp khác trong .vim/after/filetype.vim và các lệnh set filetype khác nhau trong .vimrc.

  • Thêm tệp .vim/ftplugin/python.vim với cài đặt cụ thể cho loại tệp. Tôi hiểu rằng $VIMRUNTIME/ftplugin/python.vim có thể ghi đè bất kỳ cài đặt nào tôi thực hiện tại đây. Một vấn đề là tôi không chắc chắn cách tương tác này với .vim/filetype.vim.vim/after/filetype.vim.

  • Thêm .vim/after/ftplugin/python.vim. Tôi hiểu rằng điều này được tải sau $VIMRUNTIME/ftplugin/python.vim để nó có thể ghi đè cài đặt từ đó. Như trong phương pháp trước, tôi không chắc cách nó tương tác với các tệp filetype.vim.

Vì vậy, tôi có ít nhất bốn cách để thực hiện việc này, không đề cập đến tệp cú pháp và plugin cụ thể theo loại tệp. Dường như với tôi cách tốt nhất để làm điều này là đặt các cài đặt cụ thể của tôi ở dạng after/ftplugin để chúng không bị ghi đè và filetypes.vim trong số after vì cùng một lý do.

Tuy nhiên, trước khi tiếp tục, tôi muốn hỏi xem có ai có đề xuất về cách tốt nhất để giải quyết các cài đặt cụ thể cho loại tệp hay không.

Trả lời

63

Tôi lưu trữ cài đặt Python cụ thể của mình là ở $HOME/.vim/ftplugin/python.vim, vì tôi không làm gì xung đột với $VIMRUNTIME/ftplugin/python.vim.

Giữ các cài đặt này trong tệp ftplugin giữ my .vimrc tốt đẹp và chung chung và dễ bảo trì hơn (vẫn còn khá lớn sau hơn mười năm sử dụng Vim).

Nếu bạn muốn overruleftplugin s với phân phối Vim của bạn thiết lập, sau đó $HOME/.vim/after/ftplugin/python.vim là những gì bạn muốn, vì nó được đọc after này.

Tương tự, $HOME/.vim/filetype.vim sẽ được tìm nguồn trước $VIMRUNTIME/filetype.vim và do đó sẽ được tìm nguồn trước $HOME/.vim/after/filetype.vim.

Gọi :scriptnames sẽ liệt kê tất cả các tên tập lệnh có nguồn gốc, theo thứ tự chúng được cung cấp lần đầu tiên.

:help filetype cung cấp thông tin khá toàn diện về tất cả điều này.

+18

Chỉ muốn thêm ghi chú ở đây không phải tất cả các cài đặt của bạn phải nằm trong một tệp duy nhất cho một loại tệp, chúng có thể nằm trong thư mục có tên sau loại tệp. Tôi có cài đặt python của tôi (và bổ trợ cụ thể cho python) trong .vim/ftplugin/python/{pydoc.vim, python.vim, v.v ..} –

+2

+1: Điểm tuyệt vời nếu bạn có nhiều cài đặt khác nhau cho một loại tệp nhất định, đây là cách thực sự gọn gàng để sắp xếp chúng. – Johnsyweb

+0

Nếu bạn giữ các dấu chấm của mình dưới sự kiểm soát nguồn, điều này cũng giúp giữ cho tất cả các dấu chấm của bạn luôn được cập nhật dễ dàng hơn. – Johnsyweb

Các vấn đề liên quan