Tôi muốn thêm một số tính năng bổ sung mà đôi khi tôi sử dụng multiple-cursors
.
Tôi đã tìm thấy những điều sau đây là hữu ích:
iy-go-to-char
Đôi khi, bạn thấy mình cần phải chuyển sang tiếp theo #
hoặc tiếp theo ,
hoặc một số phân định cụ thể. Điều này đặc biệt hữu ích khi bạn cần di chuyển qua số lượng từ khác nhau cho mỗi con trỏ. Nó cung cấp các chức năng iy-go-to-char
và iy-go-to-char-backward
, mà bạn có thể liên kết và sử dụng độc đáo.
khu vực mở rộng
Điều này thực sự hữu ích vì lý do tương tự iy
- khi bạn có các dòng hơi khác nhau dưới mỗi con trỏ và bạn có thể muốn chọn chuỗi được trích dẫn dưới điểm hoặc tương tự.
công cụ tùy chỉnh
Đây là những thứ chỉ là elisp trong cấu hình của tôi, nhưng tôi thấy hữu ích. Có lẽ không phải do tôi viết.
Nhắc nhở đầu vào
Tôi đã nhận được cái này từ Magnars để đáp ứng yêu cầu đặt một chuỗi khác nhau dưới mỗi con trỏ. Mã này đơn giản, nhưng ràng buộc nó với một cái gì đó và sử dụng cho nhiều con trỏ là một cách tiện dụng để chèn các thứ hơi khác nhau ở mỗi nơi.
(defun prompt-for-insert ()
(interactive)
(insert (read-string "Insert: ")))
Số tăng tại điểm
Điều này hoặc đến từ SO, hoặc emacswiki. Không chắc chắn mà. Bản thân nó khá hữu ích và cả khi được sử dụng kết hợp vớimc/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-thay thế
Đây là siêu mạnh mẽ và cho phép một số phần thực sự hữu ích. Nó đánh giá bất cứ thứ gì sexp nằm sau con trỏ và chèn kết quả của việc đánh giá nó.
Kết hợp nó với multiple-cursors-numbers
ví dụ như chèn sức mạnh của hai hoặc một chuỗi đi 0 1 2 0 1 2 0 1 2
qua mỗi dòng hoặc một cái gì đó. (Tôi đã thực hiện cả hai điều này một cách hữu ích) Hoặc sử dụng nó s.el
để viết ra những cấu hình java tẻ nhạt đó với những thứ mặc định. Bạn viết ra từng cái CONFIG_VALUE_VARIABLE
, sau đó biến nó thành CONFIG_VALUE_VARIABLE = "configValueVariable"
bằng cách chạy s-camel-case
.
(defun eval-and-replace ()
(interactive)
(let ((value (eval (preceding-sexp))))
(kill-sexp -1)
(insert (format "%s" value))))
multiple-cursors
rất nhanh chỉ bằng cách đọc tệp README. Đề nghị của tôi là chỉ họcmc/mark-next-like-this
. Hãy thử nó, và làm quen với những gì nó làm. Từ đó, hãy quay trở lại README bất cứ khi nào bạn có câu hỏi bắt đầu bằng "Tôi tự hỏi liệu nhiều con trỏ có thể làm được không ..." Tất cả những điều đó đã nói, tôi nghĩ rằng một lời giới thiệu cơ bản hơn Đá Emacs! video sẽ hữu ích cho người mới bắt đầu.