Tips & Tricks, Hilfen zum vi/vim

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Tips & Tricks, Hilfen zum vi/vim

Beitrag von Duff » 17.10.2007 08:27:58

Hallo,

ich arbeite eigentlich ziehmlich viel mit dem vi (HP-UX, solaris), aber auch privat auf meinem debian (vim).

Ein paar Dinge (Ok, es werden wohl mehrere sein ;-)) sind mir da immer noch nicht so ganz klar, wie z.B. ein kopieren in den Puffer und die vielen Optionen für :set .

Suche dann des öfteren in den Dokumentationen
http://vimdoc.sourceforge.net/htmldoc/h ... l#help.txt
http://vimdoc.sourceforge.net/htmldoc/q ... l#quickref
http://www.debian.org/doc/manuals/refer ... it.de.html

nach Hinweisen.

Gibt es noch weitere gute Erklärungen zum vi/vim (am liebsten auf deutsch) oder kann mir sogar jemand ein gutes Buch als Nachschlagewerk nennen?

Die Kurzreferenz von O'Reilly finde ich nicht so toll.

Würde mich auch über Tips und Tricks oder Befehle die ihr am liebsten im vi/vim nutzt freuen.

Danke.
Oh, yeah!

Benutzeravatar
Jerry
Beiträge: 665
Registriert: 01.09.2006 08:36:45
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: /home

Beitrag von Jerry » 17.10.2007 08:36:50

Moin
Hier liegt Reinhard Wobst - Vim ge-packt immer neben der Tastatur.

Gruß
Wolf
Selbst der längste Weg beginnt mit dem ersten Schritt Lao Tse (~ 600-400 v. Chr.)

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 17.10.2007 08:44:04

Jerry hat geschrieben:Moin
Hier liegt Reinhard Wobst - Vim ge-packt immer neben der Tastatur.

Gruß
Wolf
Ok, danke.
Habe das Buch bei amazon, in der 2. Auflage finden können. Der Preis scheint ja auch in Ordnung zu sein.
http://www.amazon.de/vim-Ge-Packt-impro ... 3826615891
Oh, yeah!

Benutzeravatar
Jerry
Beiträge: 665
Registriert: 01.09.2006 08:36:45
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: /home

Beitrag von Jerry » 17.10.2007 08:58:42

Genau die Version hab ich.

Gruß
Wolf
Selbst der längste Weg beginnt mit dem ersten Schritt Lao Tse (~ 600-400 v. Chr.)

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Tips & Tricks, Hilfen zum vi/vim

Beitrag von Meillo » 17.10.2007 09:27:51

Duff hat geschrieben:Die Kurzreferenz von O'Reilly finde ich nicht so toll.
Ich habe hier "Textverarbeitung mit dem vi Editor" von O'Reilly ausgeliehen (also den großen Bruder der Kurzreferenz) ... und ich bin _sehr_ zufrieden damit.
IMHO bringen nur wenige Bücher die Informationen so gut rüber wie die O'Reilly-Bücher. (Sie sind vor allem meist sehr komplett.)

... wobei "Vim ge-packt" sicher auch nicht schlecht ist. Habe hier "SED & AWK ge-packt" und finde es erstklassig!

Ansonsten verwende ich den vi halt ständig und eigene mir ab und an wieder ein neues Feature an ... Referenzen für den täglichen Gebrauch halte ich für nicht besonders sinnvoll, denn es soll ja schnell gehen, da will ich nicht ständig nachschlagen. Sobald man mal den "Grundwortschatz" kann, sollte man viel damit arbeiten und dann lieber punktuell neue Features lernen. Aber die tägliche Arbeit sollte aus dem Kopf erfolgen.
Use ed once in a while!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Tips & Tricks, Hilfen zum vi/vim

Beitrag von Duff » 17.10.2007 10:34:18

Meillo hat geschrieben:
Duff hat geschrieben:Die Kurzreferenz von O'Reilly finde ich nicht so toll.
Ich habe hier "Textverarbeitung mit dem vi Editor" von O'Reilly ausgeliehen (also den großen Bruder der Kurzreferenz) ... und ich bin _sehr_ zufrieden damit.
IMHO bringen nur wenige Bücher die Informationen so gut rüber wie die O'Reilly-Bücher. (Sie sind vor allem meist sehr komplett.)

... wobei "Vim ge-packt" sicher auch nicht schlecht ist. Habe hier "SED & AWK ge-packt" und finde es erstklassig!

Ansonsten verwende ich den vi halt ständig und eigene mir ab und an wieder ein neues Feature an ... Referenzen für den täglichen Gebrauch halte ich für nicht besonders sinnvoll, denn es soll ja schnell gehen, da will ich nicht ständig nachschlagen. Sobald man mal den "Grundwortschatz" kann, sollte man viel damit arbeiten und dann lieber punktuell neue Features lernen. Aber die tägliche Arbeit sollte aus dem Kopf erfolgen.
Klar, da gebe ich dir vollkommen Recht.
Aber ab und an will ich Sachen benutzen, wo ich nicht so recht weiß, wie sie denn funktionieren.

z.B.
1. in den Puffer an Stelle 2 kopieren und dann nachher wieder aus dem Puffer (2. Stelle) den gespeicherten Text infügen.
2. über den visual-Mode markierten Text nicht hinter den Cursor mit p einfügen, sondern eine Zeile darüber oder darunter
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 18.10.2007 07:58:01

Kann mir vielleicht mal kurz jemand erklären, wie ich bei einem Text z.B. drei Zeilen (3yy) kopiere, dass dies im Puffer x,y gespeichert wird. Wenn ich nämlich nach dem kopieren ein cw auf ein Wort mache und dann anschließend die zuvor 3 kopierten Zeilen einfügen möchte, hat er nur noch das Wort (welches ich mit cw überschrieben habe) im Speicher.

Hoffe, man kann verstehen was ich meine. Hatte nämlich gestern genau dieses Problem.
Danke.
Oh, yeah!

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 18.10.2007 10:13:48

Du kannst z. B. mit :registers den Inhalt der Puffer Anzeigen, und dann mit "2p den Inhalt des Registers 2 einfügen. Genaueres gibt es mit :help yy und :help registers.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 18.10.2007 11:50:43

Danke, aber mit registers komme ich nicht wirklich zurecht.
Wenn ich ein :registers eingebe und dann mit ENTER bestätige, steht unten recording.

Ein :help <irgendwas> funktioniert bei mir nicht.

Code: Alles auswählen

E433: No tags file
E149: Sorry, no help for yy
Press ENTER or type command to continue
mit 2P oder 4P oder was auch immer wird der zuvor kopierte Text mit yy 2 oder 4 oder X-Mal eingefügt.

Hast du kein kurzes Beispiel, wie z.B. 2 unterschiedliche zeilen kopieren kann und dann an verschiedenen Stellen mal Zeile 1, dann Zeile 2 und dann wieder Zeile 1 aus dem Puffer einfügen kann?
Oh, yeah!

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 18.10.2007 12:11:19

Wenn du :registers eingibst sollte da eigentlich, z. B. sowas stehen:

Code: Alles auswählen

--- Registers ---
""        * The hard part is deciding install locations and the Makefile magic. */^J
"0        * The hard part is deciding install locations and the Makefile magic. */^J
"1   connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));^J
"3   newAct->setStatusTip(tr("Create a new file"));^J
"4   newAct->setShortcut(tr("Ctrl+N"));^J
Den Inhalt von Register 1 (connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));^J) fügst du dann mit

Code: Alles auswählen

"1p (die Anführungszeichen sind kein Schreibfehler)
ein.
Wenn bei dir die Hilfe nicht funktioniert, stimmt etwas an deiner vim Installation nicht, welche Pakete hast du denn installiert?

Code: Alles auswählen

dpkg -l | grep vim

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 18.10.2007 12:30:33

Installiert habe ich hier auf der Arbeit in einer VMWare folgendes:

Code: Alles auswählen

ddreisse@debian:/tmp> dpkg -l|grep vim
ii  vim-common                        7.0-122+1etch2                  Vi IMproved - Common files
ii  vim-tiny                          7.0-122+1etch2                  Vi IMproved - enhanced vi editor - compact v
Mit dem Einfügen aus register mit "<irgendwas> funktioniert.
Nur wie bekomme ich unterschiedlichen Text dorthin. Bei mir wird immer nur der letzte Text vom Befehl yy in :registers gespeichert.
Oh, yeah!

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Beitrag von Meillo » 18.10.2007 14:09:58

Die numerischen Register speichern die vorhergehenden Inhalte des Primärregisters. D.h. Wenn du einen weiteren Text yankst/deletest, dann kommt der in den Primärregister und dessen Inhalt in den Register "1, dessen Inhalt nach "2, usw. Sie rutschen halt so durch.

Unabhängig davon kannst du selbst die Buchstaben-Register verwenden also "a - "z.
Du kannst mit "ad etwas löschen und in den Register "a speichern ... der Rest funktioniert analog.

Hoffe dies klärt.
(Stand übrigens in dem von mir oben erwähnten Buch ;-) )
Use ed once in a while!

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 18.10.2007 14:11:37

So genau weiss ich das noch nicht, aber ich habe die Beobachtung gemacht, dass es bei mit nur mit gvim funktioniert.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 18.10.2007 14:15:58

Meillo hat geschrieben:Die numerischen Register speichern die vorhergehenden Inhalte des Primärregisters. D.h. Wenn du einen weiteren Text yankst/deletest, dann kommt der in den Primärregister und dessen Inhalt in den Register "1, dessen Inhalt nach "2, usw. Sie rutschen halt so durch.

Unabhängig davon kannst du selbst die Buchstaben-Register verwenden also "a - "z.
Du kannst mit "ad etwas löschen und in den Register "a speichern ... der Rest funktioniert analog.

Hoffe dies klärt.
(Stand übrigens in dem von mir oben erwähnten Buch ;-) )
Danke für die ausführliche Antwort, nun funktioniert es auch bei mir :-)

Mit dem Buch muss ich noch mal schauen. Möchte es mir das nächste Mal anschauen, wenn ich in einer Bücherei bin und mir dann ggf. auch kaufen.
Oh, yeah!

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 18.10.2007 14:26:13

Die Hilfe Dateien von vim sind im Paket vim-runtime, damit sollte :help auch bei die funktionieren.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 18.10.2007 14:36:05

Spasswolf hat geschrieben:Die Hilfe Dateien von vim sind im Paket vim-runtime, damit sollte :help auch bei die funktionieren.
Ok, dann muss ich mir das Paket noch herunter laden und anschließend installieren.

Danke.
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 29.10.2007 10:32:11

Kann ich eigentlich auch nach beenden vom vi(m) und starten/öffnen einer neuen Datei die register Einträge irgendwie mitnehmen?

Hintergrund: Ich schreibe ein Programm und die manche Zeilen sind immer gleich. Nachdem ich in der gleichen Sprache ein neues Skript/Programm schreibe, möchte ich über das register wieder auf diese Befehle zugreifen können.
Oh, yeah!

Antworten