MacVim: Re-map kombinasi tombol perintah seperti <df>

17

Saya dapat memetakan ulang kombinasi yang tidak digunakan seperti <d-1>(Cmd +1) di MacVim, tetapi ada banyak kombinasi seperti <d-f>, <d-o>atau <d-b>yang sudah terikat ke item menu MacVim. Jika saya mencoba untuk memetakan mereka di dalam .vimrc saya, tidak ada yang berubah.

Apakah ada cara saya bisa memetakan ulang kombinasi-kombinasi itu di dalam MacVim, atau menghentikan MacVim dari menetapkannya ke item menu sehingga mereka diteruskan dengan benar ke inti Vim?

Jo Liss
sumber

Jawaban:

21

Ditemukan: Command-T merekomendasikan menggunakan cuplikan berikut:

if has("gui_macvim")
  macmenu &File.New\ Tab key=<nop>
  map <D-t> :CommandT<CR>
endif

Jadi pada dasarnya Anda menghapus peta item menu masing-masing, dan kemudian Anda bebas memetakan pintasan yang Anda coba petakan. (Saya tidak yakin apa yang dilakukan ampersand; ia bekerja dengan dan tanpa itu.)

Ini harus diletakkan di ~ / .gvimrc, bukan ~ / .vimrc! (Rupanya ~ / .vimrc dibaca terlalu awal, sehingga pemetaan (tidak) akan musnah jika Anda meletakkannya di sana.)

Jo Liss
sumber
3
Saya mencoba ini pada versi MacVim (7.3) saat ini dan tidak berhasil. Saya akhirnya pergi ke $ VIMRUNTIME / menu.vim, mencari <D-dan meletakkan && 0di akhir pernyataan if sekitarnya. Kemudian saya menyalin konten ke .gvimrc saya dan diganti <D-[^>]*>dengan <nop>.
dash-tom-bang
1
@ dash-torn-bang Hm, kode saya di atas sepertinya masih berfungsi OK dengan 7.3 snapshot 62 di Lion. Saya tidak perlu mengedit menu.vim MacVim. Saya tidak yakin mengapa ini bekerja untuk saya tetapi tidak untuk Anda ...
Jo Liss
1
Saya bisa membuatnya bekerja tanpa ampersand:macmenu File.Print key=<nop>
romaninsh
Terima kasih! Bekerja untukku. Meskipun dengan sedikit modifikasi:macmenu File.Close key=<nop>
Halil Özgür