Ich möchte einige Extras hinzufügen, mit denen ich manchmal arbeite multiple-cursors
.
Ich habe Folgendes für nützlich befunden:
Iy-Go-To-Char
Manchmal müssen Sie zum nächsten #
oder zum nächsten ,
oder einem bestimmten Trennzeichen wechseln . Dies ist besonders praktisch, wenn Sie für jeden Cursor eine andere Anzahl von Wörtern verwenden müssen. Es bietet die Funktionen iy-go-to-char
und iy-go-to-char-backward
, die Sie binden und schön nutzen können.
expand-region
Dies ist aus ähnlichen Gründen sehr nützlich wie iy
- wenn Sie unter jedem Cursor leicht abweichende Linien haben und möglicherweise die Zeichenfolge in Anführungszeichen unter dem Punkt oder ähnlichem auswählen möchten.
benutzerdefinierte Sachen
Dies sind Dinge, die nur in meiner Konfiguration elisp sind, aber ich finde nützlich. Wahrscheinlich nicht von mir geschrieben.
Eingabeaufforderung
Ich erhielt diese von Magnars als Antwort auf die Aufforderung, unter jeden Cursor eine andere Zeichenfolge zu stellen. Der Code ist einfach, aber die Bindung an etwas und die Verwendung für mehrere Cursor ist eine praktische Möglichkeit, an jeder Stelle etwas anderes einzufügen.
(defun prompt-for-insert ()
(interactive)
(insert (read-string "Insert: ")))
Inkrement-Nummer am Punkt
Dies kam entweder von SO oder von emacswiki. Ich weiß nicht was. Es ist sehr nützlich für sich und auch in Kombination mitmc/insert-numbers
(defun my-increment-number-decimal (&optional arg)
"Increment the number forward from point by 'arg'."
(interactive "p*")
(save-excursion
(save-match-data
(let (inc-by field-width answer)
(setq inc-by (if arg arg 1))
(skip-chars-backward "0123456789")
(when (re-search-forward "[0-9]+" nil t)
(setq field-width (- (match-end 0) (match-beginning 0)))
(setq answer (+ (string-to-number (match-string 0) 10) inc-by))
(when (< answer 0)
(setq answer (+ (expt 10 field-width) answer)))
(replace-match (format (concat "%0" (int-to-string field-width) "d")
answer)))))))
eval-and-replace
Dies ist sehr mächtig und ermöglicht einige wirklich nützliche Teile. Es wertet das Geschlecht aus, das sich hinter dem Cursor befindet, und fügt das Ergebnis der Auswertung ein.
Kombinieren Sie es mit, multiple-cursors-numbers
um z. B. Potenzen von zwei oder eine Reihe einzufügen, die 0 1 2 0 1 2 0 1 2
über jede Zeile oder etwas geht. (Ich habe beides nützlich gemacht) Oder benutze es s.el
, um diese langweilige Java-Konfiguration mit Standard-Dingen zu schreiben. Sie schreiben jedes aus CONFIG_VALUE_VARIABLE
und wandeln es dann CONFIG_VALUE_VARIABLE = "configValueVariable"
durch Ausführen in um s-camel-case
.
(defun eval-and-replace ()
(interactive)
(let ((value (eval (preceding-sexp))))
(kill-sexp -1)
(insert (format "%s" value))))
multiple-cursors
sehr schnell einarbeiten, indem ich die README-Datei las. Meine Empfehlung ist, einfach zu lernenmc/mark-next-like-this
. Probieren Sie es aus und machen Sie sich mit der Funktionsweise vertraut. Lesen Sie von dort aus die README-Datei, wenn Sie eine Frage haben, die mit "Ich frage mich, ob mehrere Cursor das können ..." beginnt. Video wäre hilfreich für Anfänger.