Saya mencoba memetakan Altkunci dengan cara berikut:
:map <A-j> j
:map <A-k> k
tetapi tidak bekerja (bel berbunyi Alt + j/ Alt + k).
Apa yang saya lewatkan?
Saya menggunakan Terminal pada OSX, hal yang sama terjadi pada Linux jarak jauh.
Aktif Ctrl + v, Alt + jsaya punya: ?~H~F
( ∆
kapan encoding=utf-8
).
Aktif Ctrl + v, Alt + ksaya punya: ?~Z
( ˚
kapan encoding=utf-8
).
Menjalankan vim tanpa plugin ( -u NONE
) tidak ada bedanya.
key-bindings
terminal
kenorb
sumber
sumber
Alt
(tekan, tidak tahan) dan kemudianj
berfungsi? Denganxterm
setidaknya saya perlu mengaturmetaSendsEscape
agartrue
urutan ini berfungsi ... Saya tidak tahu apakah Anda memiliki masalah yang sama, dan saya tidak menggunakan OSX jadi saya tidak dapat menguji ...Alt
, melepaskan, laluj
atau tombol lainnya berfungsi seperti biasa. Saya telah memeriksa dan menemukan opsi 'Gunakan opsi sebagai kunci meta' , mengaktifkannya dan berfungsi sekarang. Jadi pengaturanmetaSendsEscape
berhasil, terima kasih.Jawaban:
Begitulah cara saya melakukannya di Linux atau Cygwin:
Pertama-tama periksa karakter apa yang dikirim oleh terminal Anda ketika Anda menekan ALT+ J:
Untuk melakukan ini, saya pergi ke konsol dan menjalankan
sed -n l
(Anda juga dapat menggunakannyacat
untuk itu). Kemudian saya menekan ALT+ Jdan melihat bahwa karakter di layar adalah^[j
.Saya ganti
^[
dengan\e
(karena itulah yang dikirim oleh terminal saya ketika saya tekan esc) dan string terakhir untuk saya adalah\ej
.Lalu saya menulis ke
.vimrc
:Dan pemetaannya berhasil.
sumber
:set <M-j>=\ej
bagian itu. Apa yang harus saya cari?:help :set-termcap
Dengan bantuan Carpetsmoker , tampaknya Terminal tidak dikonfigurasi untuk 'Gunakan Alt / opsi sebagai meta key' (ini sangat umum untuk Terminal GUI).
Untuk Terminal di OSX, ada di Preferensi -> Pengaturan -> tab Keyboard -> 'Gunakan opsi sebagai kunci meta' . Periksa: Bagaimana saya bisa mengubah Terminal untuk menggunakan opsi sebagai kunci meta? ( Mavericks ).
Untuk XTerm, periksa: Mengkonfigurasi XTerm ke Default ke Meta Sends Escape yang mengatakan:
Kemudian pemetaan standar dengan Altkunci seperti:
bekerja dengan baik.
Untuk bantuan, lihat:
:h :map-alt-keys
.sumber
:h :map-alt-keys
sebagai sumber informasi lainMirip dengan jawaban Kossak tetapi sedikit lebih sederhana, dengan memetakan penekanan tombol literal.
Baik dalam mode normal setelah menekan :, atau dimasukkan ke Anda
.vimrc
, memetakan input secara langsung dengan memulai pemetaan:kemudian menekan Ctrl+ Vlalu menekan tombol untuk merekam, misalnya Alt+ ←. Ini akan ditampilkan sebagai sesuatu seperti ini:
tetapi masing
^[
- masing adalah satu, karakter pelarian literal dan penyorotan sintaksis harus menunjukkan ini. Ganti pelarian literal dengan teks<Esc>
, dan tambahkan perintah yang ingin Anda gunakan:Saya tahu OP memetakan Alt+ huruf, tetapi saya menggunakan panah untuk menunjukkan bagaimana melakukannya untuk sesuatu yang mungkin tidak dipetakan secara default.
sumber
Ini berfungsi untuk saya di terminal xfce Ubuntu 16.04 (dan terminal karat alacritty)
Tetapkan pemicu snipet ultisnip ke
Meta-/
(seperti halnya snipet emacs)Sekarang saya ketikkan
^[/
vimDalam mode sisipkan
Ctrl-V Alt-/
(
Meta
adalahAlt
kunci pada keyboard PC saya)sumber
Jika
Control+V
diikuti olehALT-x
pertunjukan^[x
(ketik terminal) Anda dapat memperbaikinya dengan skrip kecil ini dari vim.wikia.com :Tambahkan ke .vimrc untuk semua pemetaan tombol alt.
sumber