Pergeseran Peta + F3 dalam .vimrc

14

Saat menggunakan vimgrep dengan lv expr path/**, saya ingin memiliki pintasan untuk menavigasi hasil. Jadi saya memetakan F3kunci seperti berikut:

nnoremap <F3> :lnext<CR>

Sekarang saya ingin melakukan sesuatu seperti yang berikut ini

nnoremap <SHIFT-F3> :lprevious<CR>

Tetapi ini tidak memiliki efek yang diinginkan. Bagaimana cara memetakan F-key SHIFT?

Memperbarui:

Solusinya agak sulit. Di terminal Anda tidak bisa hanya memetakan Shift+ F3. Bahkan diperlukan baris tambahan seperti berikut:

set <S-F3>=^[O1;2R
nnoremap <S-F3> :lprevious<CR>

Tetapi Anda tidak dapat menyalin & menempel ini, lihat tautan di bawah dalam jawaban yang benar.

Trendfischer
sumber

Jawaban:

15

Anda menggunakan Vim di konsol, bukan GVIM, bukan? Apa pun selain tombol fungsi biasa bermasalah, dan sebaiknya dihindari; coba gunakan awalan seperti <Leader>sebagai gantinya. Jika Anda benar-benar menginginkan ini, Anda dapat mencoba instruksi di http://vim.wikia.com/wiki/Mapping_fast_keycodes_in_terminal_Vim untuk mendapatkan kunci fungsi dengan pengubah berfungsi.

Ingo Karkat
sumber
Tautan itu sangat membantu, saya bahkan tidak mengharapkan masalah seperti ini. Meskipun itu bukan jawaban yang ingin saya baca, itu adalah jawaban yang tepat menurut saya. Dan mengikuti saran dengan kode tombol cepat, saya bisa memetakan kombinasi tombol yang diinginkan.
Trendfischer
7

Seharusnya <S-F3>tidak <SHIFT-F3>, lihat :help key-notationdi Vim.

livibetter
sumber
Ya, inilah jawaban yang ingin saya miliki, tetapi tidak berhasil seperti ini. Anda perlu: mengatur agar membuatnya di terminal untuk bekerja.
Trendfischer
0

Saat ini pengaturan kode kunci tambahan untuk tombol fungsional tidak diperlukan, yang Anda butuhkan adalah:

nnoremap <s-f3> :lprevious<cr>

Diuji pada NeoVim.

Seseorang tolong mencobanya di VIM bersih sehingga saya dapat memperbarui jawaban ini.

cprn
sumber