2009-10-19 35 views
20

Thường thì tôi cần dán một thứ gì đó vào một số dòng liền kề, ở cùng vị trí hoặc vị trí tương tự. Đó là một nỗi đau phải di chuyển con trỏ trở lại đầu nội dung được dán mỗi lần, khi chuyển sang dòng tiếp theo. Làm thế nào tôi có thể dán (như trong, lệnh 'p') mà không cần di chuyển con trỏ? Hoặc, làm thế nào tôi có thể nhanh chóng đưa con trỏ trở lại vị trí trước khi dán?Dán vào Vim mà không cần di chuyển con trỏ

Trả lời

20

Cách an toàn nhất mà không phá hủy một thanh ghi là phải làm như sau:

p`[ 

Nếu bạn muốn tạo một phím tắt, chỉ cần sử dụng bất kỳ chức năng vim của bản đồ rất thích hợp cho bạn, ví dụ:

noremap p p`[ 
+0

Có cách nào để sử dụng dấu an toàn hơn, do đó nó không phá hủy một cái gì đó tôi tình cờ có ở chỗ đăng ký? Có lẽ một số đăng ký khác mà không phải là bình thường được sử dụng ở tất cả - Tôi không chắc chắn những gì có sẵn hoặc phong tục. – aehlke

+0

Xin lỗi, ý tôi là gì trong bình luận của tôi là tôi muốn lưu nó như một lệnh cài đặt sẵn để nó ít bị đánh. – aehlke

+0

Xem câu trả lời đã sửa đổi. – carl

-4

'k'? (như trong mũi tên lên)

Nếu bạn sử dụng 'p' để dán văn bản bên dưới dòng hiện tại, con trỏ sẽ nằm trên dòng đầu tiên của nội dung được dán. Nhập 'k' ở chế độ lệnh sẽ đưa bạn đến dòng trên đầu nội dung được dán.

+0

Vui lòng đọc lại câu hỏi của tôi. – aehlke

+0

p bột nhão sau con trỏ. nó không phải ở hàng kế tiếp. nó phụ thuộc vào cách bạn đã chọn khối sao chép (v so với shift-v). -1 –

+0

đó không phải là OP muốn – mko

10

Bất cứ khi nào tôi có một chuỗi các bước lặp lại nhiều lần, tôi ghi lại macro, điều này rất dễ dàng trong Vim. Phương pháp chung là

  1. Đặt con trỏ nơi bạn muốn thực hiện thay đổi đầu tiên.
  2. Nhập qx để bắt đầu ghi các lần nhấn phím.
  3. Thực hiện chỉnh sửa đầu tiên.
  4. Di chuyển con trỏ đến vị trí bắt đầu chỉnh sửa thứ hai.
  5. Nhấn lại q để thoát khỏi quá trình ghi.
  6. Nhập @x để phát lại macro và thực hiện chỉnh sửa tiếp theo. Lệnh @ mất một số để bạn có thể lặp lại các chỉnh sửa nhiều lần như bạn muốn với một lệnh.

Vì vậy, trong trường hợp của bạn, toàn bộ chuỗi các thao tác bàn phím để ghi lại các macro có thể

qxp`[jq 

[email protected] để phát lại nó năm lần với tổng số 6 thay đổi.

Lưu ý rằng ký tự sau q đầu tiên là một thanh ghi để ghi macro vào và nó có thể là bất kỳ chữ cái nào, không chỉ x. Chỉ cần cẩn thận các macro của bạn không giật văn bản vào sổ đăng ký hiện đang được ghi vào, nó làm cho một mớ hỗn độn thực sự của mọi thứ!

Macro có thể dài tùy ý và phức tạp. Chúng có thể chứa các lệnh chế độ Ex và thậm chí còn gọi các macro khác.

+0

Đây là một lời giải thích tuyệt vời, cảm ơn bạn. Tôi sẽ thử nghiệm với điều này. – aehlke

+0

Bạn có thể xây dựng trên bit này -> "Chỉ cần cẩn thận các macro của bạn không giật văn bản vào sổ đăng ký hiện đang được ghi vào"? Cảm ơn –

1

Bạn có thể nhanh chóng quay lại vị trí của mình trước khi dán bằng cách nhấn CTRL-o. Điều này nói chung di chuyển trở lại vị trí con trỏ trước đó.

Tôi đang dán các dòng từ tất cả trên một tài liệu lớn đến một trong 3 dấu (di chuyển quanh các dòng để đến dưới tiêu đề). Cách nhanh nhất tôi thấy là:

'ap 

tiếp theo CTRL-o

Các vấn đề liên quan