Vim: Groß- und Kleinschreibung bei Bewegungsbefehlen „f“ und „t“ ignorieren

7

Vim- :set ignorecaseBefehle wirken sich nicht auf die Bewegungsbefehle "f" und "t" in meiner vim-Konfiguration aus.

Gibt es eine Option oder einen Hack, mit dem dieser Befehl Groß- / Kleinschreibung ignoriert?

Bogdan Gusiev
quelle
Siehe auch das Q / A auf vi.SE: vi.stackexchange.com/questions/15382/…
Luc Hermitte

Antworten:

1

Ich würde folgendes vorschlagen:

function! ForwardLookup()
    " get next key pressed
    let c = nr2char(getchar())
    let old_search_pattern = @/
    " Use of \V enables very-nonmagic pattern
    exec 'normal /\c\V' . escape(c, '\/') . nr2char(0x0d)
    let @/ = old_search_pattern
endfunction
nnoremap f :call ForwardLookup()<CR>
Benoit
quelle
1
Nicht stark genug: unterstützt kein numerisches Präfix, geht über Zeilenumbruch hinaus, unterstützt keinen visuellen Modus.
Bogdan Gusiev
Dies unterstützt auch nicht die Wiederholung des Befehls von;
Thomson
0

Eine grundlegende Version davon finden Sie im Referenzhandbuch als Beispiel für die Verwendung der getchar()Funktion:

In diesem Beispiel wird "f" neu definiert, um Groß- und Kleinschreibung zu ignorieren:

:nmap f :call FindChar()<CR>
:function FindChar()
:  let c = nr2char(getchar())
:  while col('.') < col('$') - 1
:    normal l
:    if getline('.')[col('.') - 1] ==? c
:      break
:    endif
:  endwhile
:endfunction

Sehen :help getchar().

Sie müssen das zurückgegebene Zeichen speichern und eine ähnliche Karte schreiben, ;wenn Sie möchten, dass dies auch funktioniert, und Code schreiben, der verarbeitet werden soll, v:count1wenn Sie möchten, dass es mit Zählungen funktioniert.

Reich
quelle