Shift mapy + F3 w .vimrc

14

Kiedy używam vimgrep z lv expr path/**, lubię mieć skrót do poruszania się po wynikach. Więc zamapowałem F3klucz w następujący sposób:

nnoremap <F3> :lnext<CR>

Teraz chciałbym zrobić coś takiego

nnoremap <SHIFT-F3> :lprevious<CR>

Ale to nie ma pożądanego efektu. Jak zmapować klawisz F SHIFT?

Aktualizacja:

Rozwiązanie jest trochę trudne. W terminalach nie można po prostu mapować Shift+ F3. W rzeczywistości konieczna jest dodatkowa linia taka jak poniżej:

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

Ale nie możesz tego skopiować i wkleić, zobacz poniższy link we właściwej odpowiedzi.

Trendfischer
źródło

Odpowiedzi:

15

Używasz Vima w konsoli, a nie GVIM, prawda? Wszystko inne niż zwykłe klawisze funkcyjne jest problematyczne i najlepiej tego unikać; spróbuj użyć przedrostka jak <Leader>zamiast. Jeśli naprawdę tego chcesz, możesz wypróbować instrukcje na stronie http://vim.wikia.com/wiki/Mapping_fast_keycodes_in_terminal_Vim, aby uzyskać działanie klawiszy funkcyjnych z modyfikatorami.

Ingo Karkat
źródło
Ten link był bardzo pomocny, nawet nie spodziewałem się takiego problemu. Chociaż nie jest to odpowiedź, którą chciałem przeczytać, jest to, moim zdaniem, odpowiednia odpowiedź. I postępując zgodnie z radą dotyczącą szybkich kodów klawiszy, mogę zmapować kombinację klawiszy zgodnie z potrzebami.
Trendfischer
7

Powinno być <S-F3>nie <SHIFT-F3>patrz :help key-notationw Vima.

livibetter
źródło
Tak, to była odpowiedź, którą chciałem uzyskać, ale nie zadziałała w ten sposób. Potrzebujesz: zestaw do pracy w terminalu.
Trendfischer
0

W dzisiejszych czasach ustawianie dodatkowych kodów klawiszy funkcyjnych nie jest konieczne, wszystko czego potrzebujesz to:

nnoremap <s-f3> :lprevious<cr>

Testowane na NeoVim.

Ktoś, proszę, wypróbuj go na czystym VIM, abym mógł zaktualizować tę odpowiedź.

cprn
źródło