it-swarm.com.de

VIM: Wie man auf Ubuntu zur genauen Linie geht

Ich benutze vi unter Ubuntu 12.10. Einige Dateien sind ziemlich lang. Wenn ich in die Mitte der Datei springen möchte, muss ich nach unten blättern oder nach unten scrollen.

Gibt es eine Verknüpfung VIM zu einer genauen Zeilennummer?

77
kevin
:150

bringt Sie zur Linie 150 in vi

:1500

bringt Sie zur Linie 1500 in vi

Wie aus den Kommentaren hervorgeht, solltest du es versuchen

15G

um zu Zeile 150 zu gelangen. Das sind dann weniger Tastenanschläge :15Enter Wenn Sie nicht sicher sind, in welcher Leitung Sie sich befinden, versuchen Sie es

 :set nu!

beachten Sie die:

wenn Sie immer die Linie sehen möchten, sollten Sie Ihr vim-Profil bearbeiten. Meistens

vi ~/.vimrc

und hinzufügen

:set nu! 

und schreiben und beenden

:wq
#or you could use :x

dies kann außerhalb von vi erfolgen. Wenn ich zum Beispiel Zeile 5000 in einer Textdatei löschen möchte, könnte ich eine Skriptsprache verwenden. Bei Verwendung von sed wäre dies beispielsweise wie folgt

sed -i '5000d;' inputFile.txt

zeile 10 bis 20 wäre es zu löschen

sed -i '10,20d;' inputFile.txt

beachten Sie, dass -i die Datei an Ort und Stelle bearbeitet. Ohne -i wird es stdout gehen. Versuch es. Sie können stdout in eine Datei umleiten

sed '5001,$d;' inputFile.txt >> appenedFile.txt

hier könnte für Sie eine Menge los sein. Dadurch wird die Zeile 5001 in $ gelöscht. $ Ist das Ende der Datei. >> wird an eine Datei angehängt. Dabei erstellt as> eine neue Datei.

wenn Sie neugierig sind, wie viele Zeilen eine Datei enthält, können Sie wc -l inputFile.txt

einige davon scheinen schrecklich trivial zu sein, aber wenn Sie versuchen, eine Datei mit 50.000 Zeilen zu bearbeiten, kann es eine süße Minute dauern, bis sie geöffnet und durchlaufen ist. Wenn Sie wissen, dass Sie nur die letzte Zeile löschen möchten, können Sie sed verwenden und dies in einem Bruchteil der Zeit tun.

sed kann auch innerhalb einer Datei suchen und ersetzen. Aber vielleicht ist awk, Perl oder python auch eine praktikable Lösung.

insgesamt möchten Sie vielleicht ein gutes Tutorial zu vi finden. Tausende existieren. Ich würde Google konsultieren. Vielleicht suchst du dir einen VIM Cheatsheat.

132
matchew

Weitere vim-Tipps: im Befehlsmodus

  • H geht zum oberen Bildschirmrand
  • M geht in die Mitte des Bildschirms
  • L geht zum unteren Bildschirmrand
  • gg geht in die erste Zeile
  • G geht zur letzten Zeile
13
glenn jackman

nehmen Sie sich ein paar Minuten Zeit und lesen Sie das Dokument this . Es belohnt Sie auf lange Sicht für die Effizienz bei der Bearbeitung insbesondere der Konfigurationsdatei.

7
Jasonw

Bearbeiten Sie in einem geöffneten Terminal in einer Bash-Shell einfach Ihre Datei, indem Sie Folgendes ausführen:

$ vi +N yourfile

Wobei N die Zeilennummer ist.

Zum Anzeigen (more oder less;):

$ less +N yourfile
$ more +N yourfile

Das Schild + mean Befehl, der beim Start ausgeführt werden soll. Wenn also Befehl nur eine Zahl ist, dann springen vi, less und more als Zeilennummer dorthin =.

Sie können aber auch /regex zum Ermitteln des ersten Auftretens einer bestimmten Zeichenfolge oder eines Regex:

$ less +/Error logfile
$ less -i +/error logfile      # -i Causes less's searches to ignore case
$ vi +/open.*myfile myprog...
5
F. Hauri

Ein weiterer Tipp: Da Sie noch nicht mit vim vertraut sind, kann das Ausführen von vimtutor sehr hilfreich sein.

3
rvs