Das einzige, was ich an der Verwendung anderer Editoren vermisse, ist, meinen Platz mit der Maus zu finden. Ich kann mit meinen Augen auf einen bestimmten Bereich in der Datei schauen und mit einer Mausbewegung und einem Klick bin ich da. Mit VIM muss ich jjjjjkkkkkkjjjhhhh ... fast da hhhhh oh Mist, den ich um 3 Zeichen verpasst habe, lll.
Ich lerne Markierungen zu machen und habe ein Lesezeichen-Plugin gefunden, das großartig ist. Ich kann Markierungen erstellen und zerstören und mit ihnen <f3>
navigieren. Leider werden die Markierungen vergessen, wenn die Datei geschlossen wird.
Wie navigieren Sie alle super Dateien? Ich weiß, ich könnte auch 5j7k4j5h und so weiter machen, aber es muss ein Plugin geben, das meine Augen lesen und den Cursor dort platzieren kann, wo ich ihn wirklich brauche.
Ich habe auch gelernt, mit /% nach einem bestimmten Begriff zu suchen. Es hilft, aber alle übereinstimmenden Zeichen werden im gesamten Dokument hervorgehoben.
quelle
Antworten:
Versuchen Sie
$ vimtutor
, es wird Ihnen alles beibringen, was Sie wissen müssen, um loszulegen.hjkl
sind die Spitze der Spitze des Eisbergs und werden zumindest in meinem Fall sehr selten verwendet.wWEe
undBbgegE
alle erlauben es, sich Wort für Wort zu bewegen:w
unde
gehen Sie vorwärtsW
undE
berücksichtigen Sie Leerzeichen und Interpunktionb
undge
gehe rückwärtsB
undgE
berücksichtige Leerzeichen und InterpunktionfFtT
werden verwendet, um nach einem bestimmten Zeichen in der aktuellen Zeile zu greifen , und;,
werden verwendet, um diese Bewegung zu wiederholen, in derselben Richtung für;
und in der entgegengesetzten Richtung für,
:fm
springt beim nächstenm
vorwärts,F
geht rückwärtstm
springt VOR dem nächstenm
vorwärts,T
geht rückwärts/?
werden verwendet, um von der aktuellen Cursorposition zum ersten Auftreten eines Musters zu springen:/pattern
geht vorwärts?pattern
geht rückwärts0$
werden verwendet, um zum ersten und letzten Zeichen der Zeile zu springen.^g_
werden verwendet, um zum ersten und letzten druckbaren Zeichen der Zeile zu springen.Einfach und kombiniert
()[]{}
werden verwendet, um Phrase für Phrase oder Absatz für Absatz oder Code Block für Codeblock zu verschieben.<C-b>
und<C-f>
werden verwendet, um durch den Bildschirm vorwärts und rückwärts zu scrollen.<C-u>
und<C-d>
werden verwendet, um durch den halben Bildschirm vorwärts und rückwärts zu scrollen.H
,M
Und umL
den Cursor nach oben, Mitte, unten in der Ansicht bewegen, respectively.zt
,zz
Undzb
die Linie unter dem Cursor nach oben, Mitte, unten in der Ansicht bewegen, respectively.Und so weiter.
:help motion.txt
wird dich umhauen.quelle
]}
und[{
(2 Anschläge) Sprung zum Ende oder Anfang eines Bereichs (zB einen , der durch{ ... }
how to jump to a line he's seeing like using a mouse
. Ich kenne und verwende ständig alle von Ihnen erwähnten Tastenkombinationen. Aber es ist immer noch nicht so effizient wie das Zeigen einer Maus beim Springen über große Entfernungen.Neben dem Bewegungsbefehl von vim finde ich, dass ein vim-Plugin namens EasyMotion sehr nützlich für die Navigation ist. Wenn Sie mit vimperator oder pentadactyl vertraut sind, bringt EasyMotion einfach den Hinweismodus zurück zu vim. Hier ist eine animierte Demo und hier ist das Video-Tutorial. Hoffe es ist hilfreich für dich.
quelle
Es gibt unzählige Möglichkeiten, sich in vim zu bewegen. Dies ist einer der wirklich starken Bereiche. Ich benutze {und }viel, die sich in dieser Richtung bis zur nächsten leeren Zeile auf und ab bewegen. %ist nützlich, um zu einer passenden Halterung (jeglicher Art) hin und her zu gehen. Wund Bbewege dich vorwärts und rückwärts durch ein "Wort".
Es könnte sich lohnen, den Abschnitt " Bewegen " des Vim-Handbuchs zu lesen.
quelle
vim hat mausunterstützung! Probieren Sie es aus (in Ihrer .vimrc):
Nebenbemerkung : Als Bildschirmbenutzer habe ich festgestellt, dass ich auch brauche
damit dies funktioniert.
quelle
persönlich bevorzuge ich:
quelle
Mit der Option
relativenumber
( : help relativeumber - in Vim 7.3 enthalten ) gelangen Sie mit dem a[count]k
oder[count]j
Bewegung zur Linie unter Ihren Augen, mit der Sie sich in der aktuellen Linie mit Bewegungen bewegen können, wieftweb
von @romainl erläutert.quelle
Abgesehen von
{
,}
,(
,)
,<number>cb
,<number>cB
,<number>cW
und%
verwende ich solche Navigationstechniken:ciw
,diw
(ciW
,diW
). usw., um Wörter unter dem Cursor schnell zu bearbeiten / löschen (einschließlich Nicht-Leerzeichen)ci(
,ci"
(ca(
,ca"
) usw. zum schnellen Bearbeiten in Klammern, Anführungszeichen (einschließlich Klammern, Anführungszeichen). Gleiches gilt fürd
.mA
Erstellen Sie beispielsweise eine globale MarkierungA
, die mit dem'A
Befehl verfügbar ist (oder`A
um die Spalte zu respektieren).gf
um schnell zur Datei unter dem Cursor zu gelangenf
,t
(F
,T
), um zum Zeichen vor dem Zeichen rechts (links) zu gelangen (;
zum Wiederholen verwenden). Diese sind besonders nützlich fürd
undc
Befehle (.
zum Wiederholen verwenden).^]
zum Tag und^T
zurück.Und viele andere Möglichkeiten, sich zu bewegen :)
Weitere Informationen finden Sie hier: http://www.thegeekstuff.com/2009/03/8-essential-vim-editor-navigation-fundamentals/
PS Für Rails-Benutzer gibt es ein sehr nützliches Rails-Vim-Plugin. Vielleicht möchten Sie es auch ausprobieren.
quelle
Dies ist ein guter Ort, um die wichtigsten Navigationsbefehle zu lernen. Ein Teil der Kraft / Geschwindigkeit von vim ergibt sich aus der Kombination von Bewegung mit Aktion, dh
cw
-> Wort ändern,d10j
-> 10 Zeilen nach unten löschen usw. Auch dies und das sind interessante Lesarten.quelle
Sie können
:set nohlsearch
die Markierung Ihrer Suchzeichen deaktivieren.Ich navigiere auch viel mit ctags.
quelle
Ich habe ein Plugin für die superschnelle Navigation geschrieben, es heißt bewegungslos:
https://github.com/anschnapp/move-less
Sie können die
h
j
k
l
gesamte Datei bequem durchsuchen, indem Sie mit ( -keys) scrollen . Sie ändern Ihre Cursorposition nicht, während Sie durch die Lochstelle scrollen (basierend auf dem Falttrick). Wenn Sie Ihre Suche abbrechen, sind Sie genau dort, wo Sie begonnen haben.Für eine superschnelle Navigation besteht die Absicht darin, mein Plugin zu verwenden, um die Zielposition auf dem Bildschirm zu erhalten und dann über easymotion (was bereits aus einer anderen Antwort empfohlen wurde) zur richtigen Position zu springen:
https://github.com/easymotion/vim-easymotion
Wenn Sie beide kombinieren, können Sie sogar den Sprungverlauf vorantreiben und einfach über
<c-o>
und zwischen Ihrem Ursprungs- und Zielziel springen<c-i>
.quelle