Angenommen, ich habe ein solches Dokument und möchte nach allen Vorkommen der URL suchen:
%Vor% Ich möchte es nicht vollständig eingeben, also setze ich den Cursor auf die erste URL und führe "uyi[
aus, um es in das "u" -Register zu ziehen. Um nun danach zu suchen, möchte ich einfach den Inhalt dieses Registers in das Suchfeld einfügen, indem ich Folgendes leite:
Dies führt dazu, dass Vim nach der Zeichenkette 'http:' sucht - weil das Zeichen '/' das Suchfeld beendet.
Ich kann das Problem umgehen, indem ich stattdessen Folgendes ausführe:
%Vor%Aber es ist viel Tippen!
Wie kann ich ein Mapping für die Kommandozeile von Vim erstellen, das diesen Workflow vereinfacht?
Mein idealer Workflow würde etwa so aussehen:
/\V
, um die Suchaufforderung aufzurufen, und verwenden Sie einen sehr nomagischen Modus <Esc>
würde abbrechen) Versuchen Sie Folgendes:
%Vor% Übrigens, etwas, das nützlich sein könnte, um es zu wissen (wenn Sie es nicht schon getan haben) ist, dass Sie ?
als Trennzeichen für :s
verwenden können. Was bedeutet, dass Sie eine Suche-und-ersetzen für eine URL wie folgt schreiben können:
Ich habe akzeptiert Andrew Radevs Lösung , die die harten Teile löste. Aber hier ist die Version, die ich meiner vimrc-Datei hinzugefügt habe, die ein paar Verbesserungen hinzufügt:
%Vor%Das sollte funktionieren:
/
oder ?
verwenden (um vorwärts oder rückwärts zu suchen) Ich habe auch die Eingabeaufforderung geändert. Während auf ein Register gewartet wird, wechselt die Eingabeaufforderung zu \
- was wie ein passender Hinweis für 'PasteEscaped' erscheint. Außerdem habe ich ein "
angehängt, das das Verhalten von Vim nach dem Drücken von <c-r>
in der Befehlszeile nachahmt.
Wenn Sie weitere Verbesserungsvorschläge haben, hinterlassen Sie einen Kommentar.
Wie wäre es mit einem anderen Workflow? Erstellen Sie beispielsweise einen eigenen Operator zum Suchen von Zieltext wie folgt:
%Vor%Ich mag die @ nelstrom-Lösung und habe eine kleine Änderung vorgenommen, um zu entkommen [und].
%Vor%