2012-01-11 32 views
5

Tôi đã thêm một số lệnh inoremap đơn giản vào số .vimrc của mình để giúp hoàn thành các dấu ngoặc và khung, nhưng tôi chỉ muốn chúng áp dụng cho các tệp php.Bản đồ in vim cho các loại tệp cụ thể

inoremap (()<Esc>i 
inoremap { {<CR>}<Esc>ko 
inoremap <? <?php ?><Esc><Left>i 

Làm cách nào để đặt các lệnh này chỉ hoạt động khi tôi đang chỉnh sửa tệp .php?

+0

bản sao có thể có của [vim: muốn chỉ bật cài đặt cho một số loại tệp nhất định] (http://stackoverflow.com/questions/469564/vim-would-like-it-to-turn-settings-on -only-for-certain-file-types) – gpojd

Trả lời

7

Sử dụng autocmd FileType:

autocmd FileType php,c,java inoremap (()<Esc>i 
0

Có thể có một cách tốt hơn để làm điều đó, nhưng điều này sẽ làm việc:

autocmd FileType php call Inoremaps() 
fu! Inoremaps() 
    inoremap ... 
endfu 
5

đặt chúng trong một file này

~/.vim/ftplugin/php.vim 
12

Bạn cần phải làm 2 việc:

  • tạo bản đồ cục bộ cho bộ đệm cụ thể bằng cách sử dụng tùy chọn <buffer> cho inoremap.
  • tải ánh xạ chỉ cho một loại tệp cụ thể.

này có thể được thực hiện thông qua một autocommand trong .vimrc bạn như vậy:

autocmd FileType php inoremap <buffer> (()<Esc>i 

Lựa chọn cách nào khác là bằng cách tạo ra một plugin filetype. (Xem :h ftplugin để biết thêm chi tiết)

Một ví dụ đơn giản là làm tạo một file có tên, ~/.vim/after/ftplugin/php.vim và đặt ánh xạ của bạn bên trong như vậy:

inoremap <buffer> (()<Esc>i 
inoremap <buffer> { {<CR>}<Esc>ko 
inoremap <buffer> <? <?php ?><Esc><Left>i 

Cá nhân tôi nghiêng nhiều hơn đối với cách tiếp cận ftplugin nhưng có tất cả mọi thứ trong tệp .vimrc của bạn có thể đẹp.

+0

Tuyệt vời, chỉ một tác giả trong số năm người biết về ' '. – ZyX

+0

Thật thú vị, các tùy chọn dường như cung cấp cho tôi một lỗi ký tự E488 Trailing – CamelBlues

+0

@CamelBlues: Bạn có thể chỉ cho tôi lệnh ngắt? Thông thường, bạn gặp lỗi E488 khi bạn có một ':' ví dụ không cần thiết 'Tập tin php kiểu tự động php: inoremap (() i' –

1

Thêm chúng lại thành file ftplugin trong khi thư mục:

~/.vim/after/ftplugin/php.vim 

Thông tin thêm trong this answer.

Chỉnh sửa: Tệp này và thậm chí cả thư mục, sẽ không có ở đó theo mặc định. Bạn có thể phải làm cho nó nếu bạn không nhìn thấy nó ở đó.

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