Wie auch immer, um prozentual in vim zu navigieren?

25

Ich öffne oft große Dateien und suche in Protokollen nach Informationen. Da in meinem Fall alle Zeilen einen Zeitstempel haben und ich mir sicher bin, in welchem ​​Teil der gesamten Datei die Informationen enthalten sind, die mich interessieren. Zum Beispiel:

  • in der unteren Hälfte des Dateiinhalts (50% oder mehr) oder
  • etwa 10% mehr gegen Ende der Datei oder
  • Scrolle mehr als 20% der Originaldatei nach unten.

So können Sie schnell und prozentual navigieren - Gibt es bereits vorhandene Funktionen in vim?

mtk
quelle
@stephane Gibt es eine Möglichkeit, mehr als 10% von der aktuellen Zeile zu erhalten? Sieht in der Hilfe nichts, :h N%
worauf
Ich habe gerade einen relativen Prozentsatz + 50% ausprobiert. Es funktioniert nicht, also nein. Ich habe meine Antwort aktualisiert, um Hilfeinformationen anzuzeigen.
X Tian

Antworten:

45

Entschuldigung für eine kurze Antwort, aber

Tipp einfach 50%

                                                        *N%*
{count}%                Go to {count} percentage in the file, on the first
                        non-blank in the line |linewise|.  To compute the new 
                        line number this formula is used:
                            ({count} * number-of-lines + 99) / 100
                        See also 'startofline' option.  {not in Vi}
X Tian
quelle
3
Diese Antwort ist einwandfrei. Und es könnte noch schlimmer werden, wenn Sie auch eine relative Bewegung machen könnten: das heißt, sich zum Beispiel um 10% vorwärts zu bewegen, unabhängig davon, wo Sie sich gerade befinden. Beachten Sie auch, dass Sie nicht in: den Befehlsmodus wechseln sollten.
Nilon
3

Es gibt den [count]%Befehl (wie intuitiv!) Für die absolute Navigation. Für die relative Navigation müssen Sie den Betrag selbst berechnen. ZB um 33% nach unten zu scrollen:

:exe 'normal!' 33 * line('$') / 100 . 'j'

(Sie möchten wahrscheinlich Zuordnungen erstellen, die v:countfür diese verwendet werden.)

Ingo Karkat
quelle