it-swarm.com.de

VIM Super schnelle Navigation

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 Bewegung der Maus und einem Klick bin ich da. Mit VIM ich muss jjjjjkkkkkkjjjjhhh ... fast da hhhhh oh Mist, den ich um 3 Zeichen vermisst habe, lll.

Ich lerne das Markieren und habe ein Lesezeichen-Plugin gefunden, das großartig ist. Ich kann Marker erstellen und mit <f3> Zerstören und zu ihnen navigieren. Leider werden die Markierungen vergessen, wenn die Datei geschlossen wird.

Wie navigiert ihr 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.

82
Helmut Granda

Versuchen Sie $ vimtutor, Es bringt Ihnen alles bei, was Sie wissen müssen, um loszulegen.

hjkl sind die Spitze des Eisbergs und werden, zumindest in meinem Fall, sehr selten verwendet.

wWEe und BbgegE erlauben es, sich Wort für Wort zu bewegen:

  • w und e gehen vorwärts, W und E berücksichtigen Leerzeichen und Interpunktion

    " here the * marks the default location of the cursor
    " and each letter shows where you jump when you hit the key.
    
    Latin: Lorem ipsum dolor sit amet.
                       *   e   e    e
                       *   E   E     E
    *    w w     w     w     w   w   w
    *      W     W     W     W   W   W
    
  • b und ge gehen zurück, B und gE berücksichtigen Leerzeichen und Interpunktion

    Latin: Lorem ipsum dolor sit amet.
    b    b b     b     *
    B      B     B     *
         ge    ge    ge*
        ge
         gE    gE    gE*
    

fFtT werden verwendet, um nach einem bestimmten Zeichen zu greifen in der aktuellen Zeile und ;, werden verwendet, um diese Bewegung in der gleichen Richtung für ; zu wiederholen. und in die entgegengesetzte Richtung für ,:

  • fm springt beim nächsten m vorwärts, F rückwärts

    Latin: Lorem ipsum dolor sit amet.
    *          fm    ;            ;
               ;     Fm          *
    
  • tm springt VOR dem nächsten m vorwärts, T rückwärts

    Latin: Lorem ipsum dolor sit amet.
    *         tm    ;            ;
              ;     Tm           *
    

/? Wird verwendet, um von der aktuellen Cursorposition zum ersten Auftreten eines Musters zu springen:

  • /pattern Geht weiter

    Latin: Lorem ipsum dolor sit amet.
    *            /ips
    
  • ?pattern Geht zurück

    Latin: Lorem ipsum dolor sit amet.
    ?Lat             *
    

Mit 0$ Wird zum ersten und letzten Zeichen der Zeile gesprungen.

    (whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace)
    0                  *                                     $

Mit ^g_ Wird zum ersten und letzten druckbaren Zeichen der Zeile gesprungen.

    (whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace)
                ^      *                         g_

Einzelne und kombinierte ()[]{} Werden verwendet, um Satz für Satz oder Absatz für Absatz oder Codeblock für Codeblock zu verschieben.

<C-b> Und <C-f> Dienen zum Vor- und Zurückblättern des Bildschirms.

<C-u> Und <C-d> Werden verwendet, um im Halbbild vorwärts und rückwärts zu blättern.

H, M und L bewegen den Cursor zum oberen, mittleren bzw. unteren Rand des Ansichtsfensters.

zt, zz und zb bewegen die Linie unter dem Cursor zum oberen, mittleren bzw. unteren Rand des Ansichtsfensters.

Und so weiter.

:help motion.txt Wird Sie umhauen.

150
romainl

neben dem Bewegungsbefehl von vim finde ich ein vim-Plugin mit dem Namen EasyMotion . 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.

23
Vincent

Es gibt unzählige Möglichkeiten, sich in Vim zu bewegen, dies ist einer der wirklich starken Bereiche. ich benutze { und } eine Menge, die auf und ab in die nächste leere Zeile in dieser Richtung bewegen. % ist nützlich, um zu einer passenden Klammer (jeglicher Art) zu gelangen. W und B vorwärts und rückwärts gehen durch ein "Wort".

Es könnte sich lohnen, den Abschnitt In Bewegung des Vim-Handbuchs zu lesen.

18
Greg Hewgill

vim hat maus unterstützung! Probieren Sie es aus (in Ihrem .vimrc):

set mouse=a

sidenote: als bildschirmbenutzer habe ich festgestellt, dass ich das auch brauche

set ttymouse=xterm2

damit dies funktioniert.

10
rgcb

persönlich bevorzuge ich:

"/<chars><enter>" to quickly move to somewhere   ( extremely fast! trust me! )
":<number>" to go to some line, 
"ctrl + f/b" to forward/back
"g;" to move to the last editing place.
"w/b" to move by Word
"jklh" to move your cursor to the exact position

Mit der Option relativenumber ( : help relativenumber - in Vim 7.3 enthalten ) gelangen Sie mit dem a [count]k oder [count]j movement, mit dem Sie sich in der aktuellen Zeile mit Bewegungen wie ftweb bewegen können, wie von @romainl erklärt.

5
mMontu

Abgesehen von {, }, (, ), <number>cb, <number>cB, <number>cW und % verwende ich solche Navigationstechniken:

  • ciw, diw (ciW, diW). usw. zum schnellen Bearbeiten/Löschen von Wörtern unter dem Cursor (einschließlich nicht-Leerzeichen)
  • ci(, ci" (ca(, ca") Usw., um Klammern, Anführungszeichen (einschließlich Klammern, Anführungszeichen) schnell zu bearbeiten. Gleiches gilt für d.
  • Markiert mit GROSSBUCHSTABEN, um sie global (zwischen Dateien) und dauerhaft (wenn der Puffer geschlossen ist) festzulegen. Beispielsweise erstellt mA eine globale Markierung A, die mit dem Befehl 'A (Oder `A, Um die Spalte zu berücksichtigen) verfügbar ist.
  • gf, um schnell zur Datei unter dem Cursor zu gelangen
  • f, t (F, T), um zum Zeichen vor dem Zeichen rechts (links) zu wechseln (verwenden Sie ;, um wiederholen). Diese sind besonders nützlich für die Befehle d und c (verwenden Sie . Zum Wiederholen).
  • ^], Um zum Tag zu gelangen, und ^T, Um zurück zu gelangen.

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/

P.S. Für Rails Benutzer gibt es ein sehr nützliches Rails-Vim-Plugin. Vielleicht möchten Sie es auch ausprobieren.

5
penkovsky

this ist ein guter Ort, um die Hauptnavigationsbefehle zu lernen. Ein Teil der Kraft/Geschwindigkeit von vim ergibt sich aus der Kombination von Bewegung mit Aktion, d. h. cw -> Wort ändern, d10j -> lösche 10 Zeilen nach unten usw. Auch this und this sind interessante Einträge.

3
T I

Du kannst :set nohlsearch, um die Hervorhebung Ihrer Suchzeichen auszuschalten.

Ich navigiere auch viel mit ctags.

2
richo

Ich habe ein Plugin für die superschnelle Navigation geschrieben, das heißt bewegungslos:

https://github.com/anschnapp/move-less

Sie können die gesamte Datei bequem durchsuchen, indem Sie mit (hjkl - Tasten scrollen). Sie ändern Ihre Cursorposition nicht, während Sie durch die gesamte Site scrollen (basierend auf dem Falttrick). Wenn Sie Ihre Suche abbrechen, befinden Sie sich dort, wo Sie begonnen haben.

Für eine superschnelle Navigation ist es die Absicht, mit meinem Plugin die Zielposition auf dem Bildschirm zu ermitteln und dann mit easymotion an die richtige Position zu springen (was bereits aus einer anderen Antwort empfohlen wurde):

https://github.com/easymotion/vim-easymotion

Wenn Sie beide kombinieren, können Sie sogar die Sprunghistorie vorverlegen und einfach über <c-o> Und <c-i> Zwischen Ihrem Ursprungs- und Zielort wechseln.

0
snap