Nói rằng tôi đang ở dòng 20 và tôi muốn kéo dài dòng 4, làm thế nào tôi có thể làm điều đó?
Và tương tự, làm thế nào tôi có thể kéo một dòng liên quan đến vị trí con trỏ của tôi, giả sử một dòng 3 lên?
Nói rằng tôi đang ở dòng 20 và tôi muốn kéo dài dòng 4, làm thế nào tôi có thể làm điều đó?
Và tương tự, làm thế nào tôi có thể kéo một dòng liên quan đến vị trí con trỏ của tôi, giả sử một dòng 3 lên?
Câu trả lời:
Từ :help :yank
:
:[range]y[ank] [x] Yank `[range]` lines [into register x].
Vì vậy, để kéo dài dòng 4, người ta sẽ gõ:
:4yank
Lưu ý bạn có thể dễ dàng làm điều này từ chế độ chèn với <C-o>
; điều này cho phép bạn thực thi một lệnh, sau đó bạn quay lại chế độ chèn; ví dụ:
<C-o>:4yank
Tất nhiên, bạn cũng có thể sử dụng các phạm vi khác. Vài ví dụ:
:1,3yank
:%yank
:.,$:yank
:.,+3yank
:-3,.yank
:-3yank
Những điều hữu ích nhất cần nhớ về phạm vi:
:line1,line2command
..
là dòng hiện tại (bạn thực sự có thể bỏ qua dấu chấm trong hầu hết các trường hợp; :.,+3yank
và :,+3yank
giống nhau)+n
và -n
.Xem :help [range]
để biết thêm thông tin.
:4yank
bằng:4y
Bên cạnh các lệnh chế độ cũ mà bạn có, bạn cũng có thể đạt được nó trong chế độ lệnh, ví dụ: bởi: 4GY''
- có nghĩa là: goto dòng 4 ( 4G
), dòng yank ( Y
) và quay lại dòng trước ( ''
).
Bạn cũng có thể sử dụng dấu nhảy; cho câu hỏi thứ hai của bạn, ví dụ: bởi: mm3kY'm
- có nghĩa là: đặt dấu m ( mm
), đi ba dòng lên ( 3k
), dòng yank ( Y
), quay lại đánh dấu m ( 'm
).
Đơn giản chỉ cần gõ
:4y
để kéo dài dòng 4
nó sẽ đi vào thanh ghi không tên. Sau đó, (ví dụ) bạn có thể sử dụng p
để đặt nó ở nơi khác. Bạn cũng có thể sử dụng [n]p
, ví dụ 10p để dán 10 lần.
Bạn có thể đặt nó vào một thanh ghi có tên như "a" với
:4y a
4G"ayy
.