1124 Stimmen

Was ist Ihre produktivste Abkürzung mit Vim?

Ich habe schon viel gehört über Vim sowohl Vor- als auch Nachteile. Es scheint wirklich, dass man (als Entwickler) mit Vim schneller sein sollte als mit jedem anderen Editor. Ich benutze Vim, um einige grundlegende Dinge zu tun und ich bin bestenfalls 10 mal weniger produktiv mit Vim.

Die einzigen zwei Dinge, die Ihnen wichtig sein sollten, wenn Sie über Geschwindigkeit sprechen (vielleicht sind sie Ihnen nicht wichtig genug, aber das sollten Sie), sind:

  1. Abwechselnd links und rechts verwenden Händen ist die schnellste Weg zur Verwendung des k
  2. Niemals die Maus zu berühren ist die zweite Möglichkeit, so schnell wie möglich zu sein. Es dauert ewig, bis Sie Ihre Hand bewegen können, die Maus zu greifen, sie zu bewegen und sie wieder auf die Tastatur zu bringen (und man muss oft auf die Tastatur schauen, um sicher zu sein, dass Sie um sicher zu sein, dass man die Hand wieder an der richtigen Stelle hat)

Hier sind zwei Beispiele, die zeigen, warum ich mit Vim weit weniger produktiv bin.

Kopieren/Ausschneiden & Einfügen. Ich mache das ständig. Mit all den zeitgenössischen Redakteuren, die Sie drücken Shift mit der linken Hand, und Sie bewegen den Cursor mit der rechten Hand, um Text auszuwählen. Dann Ctrl + C Kopien, bewegen Sie den Cursor und Ctrl + V Pasten.

Mit Vim ist es furchtbar:

  • yy um eine Zeile zu kopieren (Sie wollen fast nie die ganze Zeile!)
  • [number xx]yy zum Kopieren xx Zeilen in den Puffer. Aber man weiß nie genau, ob man das ausgewählt hat, was man wollte. Ich muss oft [number xx]dd dann u rückgängig zu machen!

Ein weiteres Beispiel? Suchen und Ersetzen.

  • Sur PSPad : Ctrl + f geben Sie ein, wonach Sie suchen möchten, und drücken Sie dann Enter .
  • In Vim: / ein, dann geben Sie ein, wonach Sie suchen möchten, und wenn es Sonderzeichen gibt, geben Sie \ vor jede Sonderzeichen, dann drücken Sie Enter .

Und alles mit Vim ist so: es scheint, dass ich nicht weiß, wie ich es richtig handhaben soll.

NB : Ich habe bereits den Vim gelesen schummeln Blatt :)

Meine Frage ist:

Was ist die Art und Weise, wie Sie Vim benutzen, die Sie produktiver macht als mit einem modernen Editor?

18voto

user307058 Punkte 1

Visueller Modus

Wie bereits von mehreren Personen erwähnt, ist der visuelle Modus die Lösung für Ihr Problem mit dem Kopieren/Ausschneiden und Einfügen. Vim gibt Ihnen 'v', 'V' und C-v. Das kleingeschriebene 'v' in Vim ist im Wesentlichen dasselbe wie die Umschalttaste in Notepad. Das Schöne daran ist, dass Sie die Taste nicht gedrückt halten müssen. Sie können jede beliebige Bewegungstechnik verwenden, um effizient zum Start- (oder End-) Punkt Ihrer Auswahl zu navigieren. Drücken Sie dann 'v' und verwenden Sie erneut effiziente Bewegungstechniken, um zum anderen Ende Ihrer Auswahl zu navigieren. Mit "d" oder "y" können Sie diese Auswahl dann ausschneiden oder kopieren.

Der Vorteil des visuellen Modus von vim gegenüber Jim Dennis' Beschreibung des Ausschneidens/Kopierens/Einfügens in vi ist, dass man die Position nicht genau richtig treffen muss. Manchmal ist es effizienter, eine schnelle Bewegung zu benutzen, um in die ungefähre Nähe des gewünschten Ziels zu gelangen und dies dann mit anderen Bewegungen zu verfeinern, als sich einen komplexeren einzelnen Bewegungsbefehl auszudenken, der einen genau an den gewünschten Ort bringt.

Der Nachteil der extensiven Nutzung des visuellen Modus auf diese Weise ist, dass er zu einer Krücke werden kann, die Sie ständig benutzen und die Sie davon abhält, neue vi(m)-Befehle zu lernen, mit denen Sie vielleicht effizienter arbeiten können. Wenn Sie jedoch sehr proaktiv sind, wenn es darum geht, neue Aspekte von vi(m) zu lernen, dann wird Sie das wahrscheinlich nicht sonderlich beeinträchtigen.

Ich möchte auch noch einmal betonen, dass die Modi "Visuelle Linie" und "Visueller Block" Variationen desselben Themas bieten, die sehr wirkungsvoll sein können... insbesondere der visuelle Blockmodus.

Zur effizienten Nutzung der Tastatur

Ich stimme auch nicht mit Ihrer Behauptung überein, dass der Wechsel der Hände die schnellste Art ist, die Tastatur zu benutzen. Sie enthält ein Element der Wahrheit. Ganz allgemein gesagt, ist die wiederholte Verwendung derselben Sache langsam. Das wichtigste Beispiel für diesen Grundsatz ist, dass aufeinanderfolgende Tastenanschläge, die mit demselben Finger getippt werden, sehr langsam sind. Ihre Behauptung rührt wahrscheinlich von der natürlichen Tendenz her, die Umwandlung s/Finger/Hand/ auf dieses Muster anzuwenden. Bis zu einem gewissen Grad ist sie richtig, aber am extrem hohen Ende des Effizienzspektrums ist sie falsch.

Fragen Sie einfach jeden Pianisten. Fragen Sie sie, ob es schneller ist, eine Abfolge von einigen Noten abwechselnd mit den Händen zu spielen oder die Finger einer einzigen Hand nacheinander zu benutzen. Die schnellste Art, 4 Tastenanschläge zu tippen, ist nicht, die Hände abzuwechseln, sondern sie mit 4 Fingern derselben Hand in aufsteigender oder absteigender Reihenfolge zu tippen (dies nennt man einen "Lauf"). Dies sollte selbstverständlich sein, wenn Sie diese Möglichkeit einmal in Betracht gezogen haben.

Das schwierigere Problem ist, dies zu optimieren. Es ist ziemlich einfach, für die absolute Entfernung auf der Tastatur zu optimieren. Vim macht das. Es ist viel schwieriger, auf der "Run"-Ebene zu optimieren, aber vi(m) mit seiner modalen Bearbeitung gibt Ihnen eine bessere Chance, dies zu tun, als jeder nicht-modale Ansatz (ähem, emacs) es jemals könnte.

Zu Emacs

Damit die Emacs-Eiferer nicht meinen ganzen Beitrag wegen der letzten Bemerkung in Klammern ignorieren, muss ich den Kern des Unterschieds zwischen den Religionen Emacs und Vim beschreiben. Ich habe mich nie in den Editorkriegen zu Wort gemeldet und werde es wahrscheinlich auch nicht wieder tun, aber ich habe noch nie jemanden gehört, der die Unterschiede auf diese Weise beschrieben hat, also hier ist es. Der Unterschied ist der folgende Kompromiss:

Vim bietet Ihnen unübertroffene Effizienz bei der Bearbeitung von Rohtext Emacs bietet Ihnen unübertroffene Möglichkeiten zur Anpassung und Programmierung des Editors

Die blinden Vim-Eiferer werden behaupten, dass Vim eine Skriptsprache hat. Aber es ist eine obskure Ad-hoc-Sprache, die entworfen wurde, um dem Editor zu dienen. Emacs hat Lisp! Genug gesagt. Wenn Sie die Bedeutung der letzten beiden Sätze nicht zu schätzen wissen oder den Wunsch haben, genug über funktionale Programmierung und Lisp zu lernen, um diese Wertschätzung zu entwickeln, dann sollten Sie vim benutzen.

Die Emacs-Eiferer werden behaupten, dass Emacs den Viper-Modus hat und somit eine Obermenge von Vim ist. Aber der Viper-Modus ist nicht Standard. Meines Wissens wird der Viper-Modus von der Mehrheit der Emacs-Benutzer nicht benutzt. Da er nicht die Standardeinstellung ist, entwickeln die meisten Emacs-Benutzer wahrscheinlich keine echte Wertschätzung für die Vorteile des modalen Paradigmas.

Meiner Meinung nach sind diese Unterschiede orthogonal. Ich glaube, die Vorteile von vim und emacs, wie ich sie dargelegt habe, sind beide gültig. Das bedeutet, dass es den ultimativen Editor noch nicht gibt. Es ist wahrscheinlich wahr, dass emacs die einfachste Plattform wäre, auf der man den ultimativen Editor aufbauen könnte. Aber modales Editieren ist nicht in der emacs-Mentalität verankert. Die emacs-Gemeinschaft könnte sich in Zukunft in diese Richtung bewegen, aber das scheint nicht sehr wahrscheinlich.

Wenn Sie also eine effiziente Bearbeitung wünschen, sollten Sie vim verwenden. Wenn Sie die ultimative Umgebung zum Skripten und Programmieren Ihres Editors wollen, benutzen Sie emacs. Wenn Sie etwas von beidem wollen, wobei der Schwerpunkt auf der Programmierbarkeit liegt, verwenden Sie emacs mit dem Viper-Modus (oder programmieren Sie Ihren eigenen Modus). Wenn Sie das Beste aus beiden Welten wollen, haben Sie im Moment kein Glück.

17voto

konryd Punkte 541

Verbringen Sie 30 Minuten mit dem vim-Tutorial (führen Sie vimtutor anstelle von vim im Terminal aus). Sie werden die grundlegenden Bewegungen und einige Tastenkombinationen lernen. Dadurch werden Sie mit vim mindestens so produktiv sein wie mit dem Texteditor, den Sie vorher benutzt haben. Danach, nun, lesen Sie noch einmal Jim Dennis' Antwort :)

16voto

Johnsyweb Punkte 128606

Was ist die Art und Weise, wie Sie Vim benutzen, die die Sie produktiver als mit einem modernen Editor?

Die Fähigkeit, komplexe, sich wiederholende Bearbeitungen mit sehr wenigen Tastendrücken auszuführen (oft mit Makros ). Werfen Sie einen Blick auf VimGolf um die Macht von Vim zu erleben!

Nach über zehn Jahren fast täglicher Nutzung ist es schwer vorstellbar, einen anderen Editor zu verwenden.

16voto

kev Punkte 145226

使用方法 \c an beliebiger Stelle in einer Suche, um Groß- und Kleinschreibung zu ignorieren (und damit Ihre Einstellungen für ignorecase oder smartcase außer Kraft zu setzen). z.B. /\cfoo ou /foo\c wird übereinstimmen foo , Foo , fOO , FOO , usw.

使用方法 \C an beliebiger Stelle in einer Suche, um die Groß-/Kleinschreibung zu erzwingen. z.B. /\Cfoo ou /foo\C passt nur auf foo.

16voto

David Corbin Punkte 71

Ich war überrascht, dass niemand die t Bewegung. Ich verwende sie häufig mit Parameterlisten in Form von dt, ou yt,

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X