2011-08-05 42 views
33

Có lệnh nào trong vim sẽ xóa n dòng theo hướng lên.Xóa n dòng theo hướng lên trong vim

Tôi biết tôi có thể sử dụng 4dd sẽ xóa 4 dòng xuống dưới.

+1

Bạn có thể kết hợp d với bất kỳ lệnh chuyển động nào. –

+0

Điều này rất giống với http://stackoverflow.com/questions/5460268/yank-n-lines-upwards-without-moving/5460995#5460995 chỉ sử dụng ': d' thay vì': y'. –

+0

'4dk' ở chế độ noarmal – SergioAraujo

Trả lời

53

Trong VIM, 3dk sẽ xóa 4 dòng theo hướng lên trên. Bạn có thể tìm thêm tài liệu tại http://www.vim.org/docs.php

+3

Điểm tốt, tôi đã bỏ lỡ điều đó nhưng cần phải là 3dk, 4dk sẽ xóa 5 dòng. –

+1

Tôi đã sửa chữa, 3dk nó là. – chriskievit

+6

Tôi đoán bạn có nghĩa là 'trở lên'. Trên thực tế 4dk xóa hiện tại và 4 dòng ở trên nó. –

9

V3kd sẽ làm điều đó.

Thats "V" để vào chế độ chọn dòng trực quan, "3k" để di chuyển lên 3 dòng và sau đó "d" để xóa 4 dòng bạn đã chọn.

+0

Đây là câu trả lời chính xác hơn. '4dk' không phải là một phiên bản lên của' 4dd', nhưng của '4dj', loại bỏ 4 dòng ở trên và dưới dòng hiện tại tương ứng, nhưng không phải là dòng chính nó. '4dd' thực sự loại bỏ dòng hiện tại 4 lần, và kết quả này là dòng hiện tại và 3 bên dưới. – xxor

4

Bạn có thể thực hiện với phạm vi ngược.

:-4,.d 

Xóa từ 4 dòng sang dòng hiện tại. Nhưng đây là một lệnh chế độ cũ.

+2

Cùng một thỏa thuận với 'd4k' - điều này sẽ xóa một dòng quá nhiều. Bạn thực sự muốn ': -3, .d' để xóa 3 dòng ở trên * và * dòng hiện tại. – jw013

+0

Ồ, đúng vậy. nhưng nó hoạt động. – Keith

1
  1. Đặt con trỏ nơi bạn muốn bắt đầu cắt.
  2. Nhấn v (hoặc chữ hoa chữ V nếu bạn muốn cắt toàn bộ dòng).
  3. Di chuyển con trỏ đến cuối nội dung bạn muốn cắt.
  4. Bấm d.
  5. Di chuyển đến nơi bạn muốn dán.
  6. Nhấn P để dán trước con trỏ hoặc p để dán sau.

http://vim.wikia.com/wiki/Copy,_cut_and_paste

-3
  1. đứng ở phần cuối của dòng cuối cùng
  2. giữ Backspace và đợi cho đến khi ký tự cuối cùng của dòng đầu tiên sẽ bị xóa
Các vấn đề liên quan