Câu trả lời:
Bạn có thể thêm một tiền tố với M-x string-rectangle
, được ràng buộc với C-x r t
. Đây là một phần của một loạt các lệnh hoạt động trên các lựa chọn hình chữ nhật ; cái này chèn văn bản ở mỗi dòng trong hình chữ nhật.
Bắt đầu bằng cách đặt dấu ở đầu dòng đầu tiên và di chuyển con trỏ đến ký tự đầu tiên của dòng cuối cùng bạn muốn đặt tiền tố:
*Hello
There
▮I am some code
Sau đó sử dụng C-x r t
, nhập tiền tố của bạn ( I said
) và nhấn RET
. Điều này thêm văn bản cho mỗi dòng trong hình chữ nhật:
I said Hello
I said There
I said I am some code
Nếu bạn không xếp hàng con trỏ của bạn trên cùng một cột với dấu của bạn, nó sẽ ghi đè lên phần đó của hình chữ nhật:
*Hello
There
I am▮ some code
với cùng một kết quả lệnh trong:
I said o
I said e
I said some code
M-x string-insert-rectangle
. Nó rất giống nhau, nhưng string-insert-rectangle
chèn vào đầu mỗi dòng của lựa chọn, trong khi string-rectangle
thay thế , vì vậy với phần sau bạn phải chính xác hơn về lựa chọn của mình nếu bạn không muốn ghi đè lên bất cứ điều gì.
Bạn có thể sử dụng nhiều chế độ con trỏ để đặt con trỏ trên mỗi dòng. Sau đó, bất kỳ văn bản bạn nhập sẽ được chèn trên mỗi dòng.
Bạn sẽ bắt đầu với điểm ở đầu đoạn mã:
▮Hello
There
I am some code
Sau đó đánh C->hai lần. (Đây là ràng buộc khóa được đề xuất; bạn phải tự thiết lập nó.) Điều này tạo ra hai con trỏ bổ sung trên hai dòng sau:
▮Hello
▮There
▮I am some code
Sau đó gõ I said
. Văn bản sẽ được thêm vào mỗi dòng:
I said ▮Hello
I said ▮There
I said ▮I am some code
Cuối cùng nhấn RETđể thoát nhiều chế độ con trỏ và để lại điểm ở con trỏ cuối cùng:
I said Hello
I said There
I said ▮I am some code
Đây là một video cho thấy cách nó hoạt động.
Cá nhân, tôi thích replace-regexp
(thay thế "^" bằng "Tôi đã nói").
Một tùy chọn khác là sử dụng các macro, có thể xử lý nhiều tác vụ hơn các lựa chọn hình chữ nhật hoặc nhiều con trỏ, ngay cả khi đó là một chút vụng về cho trường hợp cụ thể này.
Định vị con trỏ ở đầu dòng đầu tiên và nhấn F3để bắt đầu ghi, chèn văn bản, di chuyển con trỏ đến đầu dòng tiếp theo và nhấn F4để dừng ghi. Bây giờ nhấn F4lần nữa để lặp lại macro, C-2 F4lặp lại hai lần hoặc C-0 F4lặp lại cho đến khi gặp lỗi (chẳng hạn như hết dòng).
Bạn có thể cài đặt cái ác và thực hiện nó theo bất kỳ cách nào giống như vi - Tôi thích lựa chọn khối trực quan bằng cách sử dụng Ctrl+ Vđể đánh dấu từng dòng và sau đó Shift+ Iđể chèn và sau đó nhập văn bản bạn muốn chèn và cuối cùng nhấn ESCđể thoát khỏi chế độ chèn và văn bản sẽ được thêm vào từng dòng. Điều này rất giống với các lựa chọn hình chữ nhật emacs nhưng một vài tổ hợp phím ít hơn.
Điều này rất giống với câu trả lời của artagnon, nhưng replace-regexp
không bị ràng buộc với bất kỳ khóa nào.
Vì vậy, tôi thực sự sử dụng query-replace-regexp
cái được ràng buộc theo mặc định C-M-%
và sau đó thay thế ^
bằng tiền tố đã cho I said
và sau đó nhập !
để thay thế tất cả mà không cần nhắc nữa.
Nếu bạn đã cua-mode
bật, thì:
I said
dưới dạng văn bản được chènTôi thích cua-mode
cách làm việc, so với hình chữ nhật tiêu chuẩn Emacs trong đó tương đương sẽ là:
I said
RET để chèn văn bảnViệc cua-mode
lưu hai lần nhấn phím so với hình chữ nhật Emacs tiêu chuẩn.
Nhưng đối với tôi, lợi thế bổ sung của chế độ cua là tôi có thể nối văn bản vào hình chữ nhật (cá nhân tôi không biết cách nối văn bản với hình chữ nhật Emacs tiêu chuẩn). Với chế độ cua, nó chỉ là một RETphím bấm, được nhập trước I said
.