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


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>

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.

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.