Làm cách nào để bật tính năng tô sáng cú pháp cho .bash_aliases trong vim?


19

Tôi đang làm việc để sắp xếp lại của tôi .bashrc. Tôi đã chuyển các bí danh của mình sang .bash_aliases(có nguồn gốc từ đó .bashrc, nhưng tôi không thể tìm ra cách bật tính năng tô sáng cú pháp cho tệp này. vimDường như không thể tìm ra ngôn ngữ của tệp. Nó hoạt động tốt .bashrc.

Câu trả lời:


12

Truy cập vim và chạy:

:echo $VIMRUNTIME

Thông thường giá trị sẽ là một cái gì đó như:
/ usr / share / vim / vim72
Sau đó chỉnh sửa (sử dụng root) tệp /usr/share/vim/vim72/filetype.vim
Tìm kiếm bashrc.
Bạn sẽ tìm thấy một dòng trông như thế này:

au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash_profile*,.bash_logout*,*.bash,*.ebuild call SetFileTypeSH("bash")


Chỉnh sửa dòng và thêm tên tệp của bạn (.bash_aliases) vào nó.

Đó là nó, bây giờ nó sẽ hoạt động.


Hoàn hảo! Điều này đã giải quyết vấn đề của tôi.
Matthew

5
Bạn không nên chỉnh sửa phân phối vim (tệp trong / usr / share / vim). Những thay đổi của bạn có thể được ghi đè khi bạn cập nhật vim. Thay vào đó, bạn nên tạo tập lệnh riêng của mình thực hiện tương tự (hoặc thêm dòng đó vào vimrc của bạn sẽ làm điều đó).
idbrii

11

Câu trả lời là ở đây: vimdoc - setf nhưng để ném cho bạn một cục xương, nếu bạn chỉ muốn cú pháp & tô sáng cú pháp hoạt động, bạn có thể làm:

  :setf bash

Một khả năng khác mà tôi vừa nhận ra khi trả lời một câu hỏi VIM khác là bạn cũng có thể thêm phần này vào tệp .vimrc của mình và nó sẽ tự động bật tính năng tô sáng cú pháp cho tệp .bash_aliases mỗi khi bạn chỉnh sửa mà không cần mô hình hóa hoặc phải thủ công gõ vào : setf bash mỗi khi bạn mở tệp.

if has("autocmd")
  augroup bashalias
    autocmd BufRead,BufNewFile .bash_aliases set filetype=bash
  augroup END
endif

Thứ ba, như Mugen Kenichi dưới đây trong các bình luận chỉ ra, bạn cũng có thể thêm một mô hình vào tệp .bash_alias như vậy:

# vim: set filetype=bash: 

và / hoặc thêm một mô hình vào tệp bash của bạn vimdoc.sourceforge.net/htmldoc/options.html#modeline
matthias krull

@Mugen Kenichi - Ôi bắt tốt quá! Tôi chưa bao giờ sử dụng modeline nhưng tôi đã thấy nó trong các tập tin trước đây.
Pharaun

3
Điều này thực sự đã giúp tôi rất nhiều, cảm ơn các bạn. Một điều tôi phải làm là tôi phải đặt filetype thành sh thay vì bash, nhưng có lẽ tôi chỉ nên tìm một tệp bash vim tốt, vì điều đó cũng sẽ giải quyết vấn đề của tôi: p
icco

VIM 7.3 của tôi từ cygwin cũng không biết về "filetype = bash". Nếu bạn đọc qua filetype.vim, "sh" được sử dụng làm filetype cho tất cả các mẫu bash khác.
Bogdan Calmac

Mặc dù thực tế tôi nghĩ rằng .vimrcchỉnh sửa là đáng tin cậy hơn, mô hình VIM chỉ là tuyệt vời! Cảm ơn.
4wk_

1

Thêm dòng sau vào ~ / .vimrc (tạo nó nếu nó không tồn tại).

au BufNewFile,BufRead .bash_aliases call SetFileTypeSH("bash")

0

Theo dõi câu trả lời của @ Pharaun cho vim 8 và nhiều tệp bí danh. Để làm nổi bật chính xác, có hai cài đặt tôi phải thực hiện. Đầu tiên trong tệp .bash_aliases mới:

# vim: set filetype=bash

Cũng như kiểm tra trong .vimrc của tôi

if has("autocmd")
  augroup bashalias
    autocmd BufRead,BufNewFile *_aliases set filetype=sh
  augroup END
endif

Lưu ý rằng kiểu tệp là sh cũng như ký tự đại diện cho nhiều tên tệp.

Không chắc chắn tại sao cả hai cài đặt này là cần thiết. Tôi đã cố gắng chỉ sử dụng một cài đặt nhưng cả hai combo đều cần thiết để làm nổi bật là chính xác.


Tôi sử dụng vim 8 nhưng tôi không cần modeline (# vim ...). Chỉ cần đặt filetype thành sh trong vimrc của tôi là có mẹo. Bằng cách nào đó các filetype không nên bashnhưng chỉ sh.
Jinghao Shi
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.