Erweitern Sie die f- und t-Bewegung in die nächsten Zeilen


16

Gibt es eine Möglichkeit , dass t{char}und auch f{char}weiterhin in den nächsten Zeilen arbeiten , wenn {char}nicht in einer bestimmten Zeile ist?

Ich möchte vermeiden , mit /{char}<CR>speichern 1 Tastendruck und haben nicht suchen hervorgehoben, vor allem , wenn ich dies mit Verben in Kombination benötigen (zB dfa, ct.).


2
Sie können d/azum nächsten aund c/.zum nächsten löschen .. Wenn Sie hlsearches bei dieser Operation verwenden und nicht möchten, können Sie ein Mapping erstellen, das Ihre d/Operation ausführt und dann die Hervorhebung deaktiviert (endet mit :nohlsearch).
Jjaderberg

2
Sie könnten ein Plugin wie github.com/rhysd/clever-f.vim verwenden (oder studieren) (mit g:clever_f_across_no_line0 und anderen Optionen, die nach Belieben aktiviert / deaktiviert werden).
VanLaser

1
Dahu hat ein Plugin dafür erstellt: github.com/dahu/vim-fanfingtastic
EvergreenTree

1
Ich denke immer noch, das beste Plugin dafür ist easymotion
Vitor

1
Ich habe auch ein Plugin: improvedft
Christian Brabandt

Antworten:


6

Ich habe auch einige Zeit Dahu / Vim-Fanfingtastic benutzt und fand es sehr hilfreich. Es unterstützt semantische Wiederholungen .dank der Bibliothek tpope / repeat.vim, die Sie ebenfalls installieren müssen.

Eine Alternative ist chrisbra / enhancedft, die mehr oder weniger dasselbe macht.

rhysd / clever-f.vim hat eine Option, die Mehrzeilensuche zu aktivieren, obwohl ihre Hauptfunktion darin besteht f, die aktuelle Suche wie ;bereits beschrieben zu wiederholen .

Diese alle behandeln ;und ,Schlüssel wie erwartet.

Der Nachteil mit mehreren Leitungen fund tist , dass , wenn Sie die falsche Taste drücken, werden Sie aus der aktuellen Zeile entnommen werden irgendwo unerwartet in der Datei. Ctrl-Okann in diesen Momenten helfen. (Dies kann mit einer cÄnderung gefährlich sein , wenn Sie nicht feststellen, dass Sie nur ein paar Zeilen verschluckt haben, aber das waren nur Kinderkrankheiten für mich.)

Es gibt andere verwandte Plugins mit leicht unterschiedlichen Ansätzen, wie justinmk / vim- sneak und goldfeld / vim-seek, die zur Eingabe von zwei Zeichen auffordern , wodurch es einfacher (aber immer noch nicht garantiert) ist, Ihren Zielort zu erreichen.

Und dann gibt es noch easymotion / vim-easymotion . Dies bietet viele leistungsstarke Bewegungstasten , von denen einige einen zusätzlichen Tastendruck oder zwei erfordern, um den Zielcharakter zu bestätigen, wenn es viele Kandidaten gibt.


Aber derzeit verwende ich eine Lösung aus eigenem Anbau. Ich habe mit dem Autor von EasyMotion zusammengearbeitet, um Markierungen für alle übereinstimmenden Zeichen vor Ihnen zu erstellen fund zu t blinken .

Bildbeschreibung hier eingeben

Dies wirkt als natürlicher Zählassistent für Vanille-Vim-Bewegungen. Wenn Sie versuchen, sich mit irgendwohin zu bewegen, fxaber feststellen, dass mehr xs im Weg sind, als Sie gedacht haben, können Sie die Zahl lesen, die über dem gewünschten Zeichen aufleuchtete, und dann [count];dort springen.

Die Filiale finden Sie hier . Lesen Sie unbedingt den Abschnitt Hilfreiche Hinweise zum Einrichten der Tastenzuordnungen hinzufügen.

Bei cÄnderungsvorgängen ist es jedoch immer noch vorzuziehen , sie beim ersten Mal richtig auszuführen . In diesen Fällen empfehle ich, einen zusätzlichen Tastendruck im vvisuellen Modus oder einen der garantierten Sprünge von EasyMotion zu verwenden.


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.