2011-08-18 35 views
8

Nếu tôi kích hoạt chế độ đầu vào của bash sử dụng set -o vi, sau đó nhấn Esc tiếp theo v, tôi nhận được một cửa sổ vi cho phép tôi để chỉnh sửa một tập tin tạm thời được thực hiện một khi tôi rời . Trong cửa sổ đó, tôi muốn tận hưởng cú pháp Vim highlighting cho các kịch bản Bash. Nó không đủ để thực hiện :syntax enable. Vấn đề có thể liên quan đến thực tế là tệp tạm thời không có kết thúc .sh cũng không phải là đầu số #!/bin/bash có thể được sử dụng để xác định loại tệp.nghệ đánh dấu màu trong Bash chế độ vi-input

+0

Đầu ra 'echo $ EDITOR' là gì? Có thể là bạn đang thực sự gọi 'vi' hoặc' vim' ở chế độ tương thích thay vì 'vim'. 'vim' thường có thể lấy các loại tập tin từ heuristics như dòng shebang. –

+0

giải pháp này có thể áp dụng được không? http://stackoverflow.com/questions/5487338/vim-set-filetype-txt-for-every-new-file-no-name Về cơ bản, nó đặt kiểu tệp thành mặc định nếu không phát hiện được. – numbers1311407

+0

_Các vấn đề có thể liên quan đến thực tế là các tập tin tạm thời không có .sh kết thúc_ Heh, bạn có thể trả lời câu hỏi của riêng bạn .... – RustyTheBoyRobot

Trả lời

7

Thêm này để bạn .vimrc

if expand('%:t') =~?'bash-fc-\d\+' 
    setfiletype sh 
endif 

các tập tin tạm thời có dạng bash-fc-3537253897, vì vậy regex phù hợp nếu các tập tin bắt đầu với bash-fc- và áp dụng các filetype.

7

Tôi muốn sử dụng các công thức ngắn hơn:

au BufRead,BufNewFile bash-fc-* set filetype=sh 

Tôi tin kiểu này autocmd là cách kinh điển để xử lý tập filetype (ít nhất, vimrc của tôi có một số trong số họ).

@Eric Fortis, hãy kêu gọi hoặc sửa tôi nếu có lý do bạn làm điều đó khác đi.

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