Map Shift + F3 in .vimrc


14

Wenn lv expr path/**ich vimgrep mit verwende , möchte ich eine Verknüpfung zum Navigieren in den Ergebnissen haben. Also habe ich den F3Schlüssel wie folgt zugeordnet:

nnoremap <F3> :lnext<CR>

Jetzt möchte ich so etwas wie das Folgende machen

nnoremap <SHIFT-F3> :lprevious<CR>

Dies hat jedoch nicht den gewünschten Effekt. Wie ordne ich eine F-Taste zu SHIFT?

Aktualisieren:

Die Lösung ist etwas schwierig. In Terminals kann man nicht einfach Shift+ abbilden F3. Tatsächlich ist eine zusätzliche Zeile wie die folgende erforderlich:

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

Sie können dies jedoch nicht kopieren und einfügen. Siehe den Link unten in der richtigen Antwort.

Antworten:


15

Sie verwenden Vim in der Konsole, nicht GVIM, oder? Alles andere als die einfachen Funktionstasten ist problematisch und wird am besten vermieden. Versuchen Sie stattdessen ein Präfix wie <Leader>. Wenn Sie dies wirklich möchten, können Sie die Anweisungen unter http://vim.wikia.com/wiki/Mapping_fast_keycodes_in_terminal_Vim ausprobieren , um Funktionstasten mit Modifikatoren zum Laufen zu bringen.


Dieser Link war sehr hilfreich, ich hatte nicht einmal ein solches Problem erwartet. Obwohl es nicht die Antwort ist, die ich lesen wollte, ist es meiner Meinung nach die richtige Antwort. Und wenn ich den Ratschlägen mit schnellen Tastencodes folge, kann ich die Tastenkombination wie gewünscht zuordnen.
Trendfischer

7

Es sollte <S-F3>nicht sein <SHIFT-F3>, siehe :help key-notationin Vim.


Ja, das ist die Antwort, die ich haben wollte, aber es hat nicht so funktioniert. Sie müssen: einstellen, damit es in einem Terminal funktioniert.
Trendfischer

0

Heutzutage ist das Festlegen zusätzlicher Schlüsselcodes für Funktionstasten nicht mehr erforderlich. Sie benötigen lediglich:

nnoremap <s-f3> :lprevious<cr>

Auf NeoVim getestet.

Bitte versuchen Sie es mit sauberem VIM, damit ich diese Antwort aktualisieren kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.