Chciałbym dodać dodatki, których czasem używam multiple-cursors
.
Przydatne okazały się:
iy-go-to-char
Czasami musisz przejść do następnego, #
następnego ,
lub określonego ogranicznika. Jest to szczególnie przydatne, gdy trzeba przewijać różne liczby słów dla każdego kursora. Zapewnia funkcje iy-go-to-char
i iy-go-to-char-backward
, które można ładnie powiązać i używać.
rozwiń region
Jest to bardzo przydatne z podobnych powodów iy
- gdy masz nieco inne linie pod każdym kursorem i być może chcesz wybrać cytowany ciąg pod punktem lub podobnie.
niestandardowe rzeczy
Są to rzeczy, które są po prostu elisp w mojej konfiguracji, ale uważam je za przydatne. Prawdopodobnie nie napisane przeze mnie.
Pytaj o dane wejściowe
Dostałem ten od Magnars w odpowiedzi na prośbę o umieszczenie innego ciągu pod każdym kursorem. Kod jest prosty, ale powiązanie go z czymś i użycie wielu kursorów to wygodny sposób na wstawienie nieco innych rzeczy w każdym miejscu.
(defun prompt-for-insert ()
(interactive)
(insert (read-string "Insert: ")))
Numer przyrostowy w punkcie
Pochodzi z SO lub emacswiki. Nie jestem pewien który. Jest to całkiem przydatne samo w sobie, a także w połączeniu zmc/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
To jest super mocne i umożliwia kilka naprawdę użytecznych bitów i kawałków. Ocenia jakąkolwiek płeć za kursorem i wstawia wynik jej oceny.
Połącz to z, multiple-cursors-numbers
aby np. Wstawić potęgę dwóch lub szeregu, który przechodzi 0 1 2 0 1 2 0 1 2
przez każdą linię lub coś. (Zrobiłem oba te pożytecznie) Lub użyj go, s.el
aby zapisać tę żmudną konfigurację Java z domyślnymi rzeczami. Zapisujesz każdy CONFIG_VALUE_VARIABLE
, a następnie przekształcasz CONFIG_VALUE_VARIABLE = "configValueVariable"
go, uruchamiając s-camel-case
.
(defun eval-and-replace ()
(interactive)
(let ((value (eval (preceding-sexp))))
(kill-sexp -1)
(insert (format "%s" value))))
multiple-cursors
bardzo szybko zacząć i czytać plik README. Moje zalecenie to po prostu nauczyć sięmc/mark-next-like-this
. Wypróbuj i zapoznaj się z tym, co robi. Stamtąd wracaj do README za każdym razem, gdy masz pytanie, które zaczyna się od: „Zastanawiam się, czy wielu kursorów może to zrobić ...” Wszystko to powiedziało, myślę, że to bardziej podstawowe wprowadzenie niż Skały Emacsa! wideo byłoby pomocne dla początkujących.