Ich finde mich oft dabei, Befehle wie gg"+yG
oder einzugeben, ggdG
und möchte eine effizientere Möglichkeit, dies zu tun, ohne den Cursor zweimal bewegen zu müssen. Gibt es einen Befehl, mit dem ich zB y[movement]
den gesamten Puffer kopieren kann, ohne den Cursor zu bewegen?
cut-copy-paste
cursor-motions
custom-text-object
Random832
quelle
quelle
mmgg"+yG`m
und nie daran gedacht. Danke, das geht in der .vimrc richtig.C-o
zweimal verwenden, um zurückzukehren.Eine andere Lösung ist die Verwendung eines Plugins namens vim-textobj-whole . Standardmäßig stellt dieses Plugin das Textobjekt
ae
für den gesamten Puffer bereit , mitie
Ausnahme von führenden und nachfolgenden Leerzeilen.Dieses Plugin hängt von vim-textobj-user desselben Autors ab, mit dem Benutzer beliebige Textobjekte bequem definieren können. Es gibt viele Plugins , die davon Gebrauch machen.
quelle
Standardmäßig gibt es kein Textobjekt für die gesamte Datei, aber es ist möglich, sie mit zu erstellen
omap
. In diesem Fall würde es ungefähr so aussehen:Hier ist eine Aufschlüsselung, wie es funktioniert:
Anmerkungen:
Ctrlukann im Befehlszeilenmodus verwendet werden, um alles links von der Cursorposition zu löschen. Der Grund dafür ist, dass, wenn Sie die Befehlszeile direkt aus dem visuellen Modus eingeben, diese automatisch
'<,'>
in die Befehlszeile eingefügt wird, und das ist nicht das, was wir wollen. Ich würde auch vorschlagen, dass Sie etwas anderes als verwendenf
, daf
normalerweise zum nächsten gesuchten Zeichen in der Zeile gewechselt wird. Beispielsweisefi
wird ini
der aktuellen Zeile zur nächsten übergegangen.Relevante Hilfethemen:
quelle
``
am Ende wird der Cursor an die vorherige Position zurückgesetzt.Hier sind ein paar schnelle und schmutzige Zuordnungen, um die Aufgabe zu erledigen:
Jetzt können Sie mit
yY
unddD
ruckeln bzw. löschen. Es ist nicht so schön wie die Verwendung eines vollständigen Textobjekts, aber manchmal sind die einfachsten Lösungen die besten.Weitere Hilfe finden Sie unter:
quelle