Làm cách nào để xóa dòng tiếp theo trong vim?


10

Trong emacs, bất cứ khi nào tôi muốn xóa một vài dòng văn bản, tôi chỉ cần sử dụng Ck cho đến khi hết văn bản. Tuy nhiên, trong vim có vẻ phức tạp hơn một chút. Tôi biết tôi có thể làm gì d$để xóa cho đến hết dòng và ddxóa toàn bộ dòng tôi đang bật, nhưng làm cách nào để xóa tất cả dòng tiếp theo ?

Câu trả lời:



16

Giả định: Bạn muốn kết thúc tại dòng bạn đã bắt đầu.

Câu trả lời của tôi: jddk

  • j (di chuyển xuống)
  • dd (xóa dòng hiện tại)
  • k (di chuyển lên)

Hãy thử nó - thật nhanh! Trên thực tế, đó là hai lần nhấn phím ít hơn câu trả lời hiện được chấp nhận vì:

  1. bạn không cần phải giữ [Shift]để nhập dấu hai chấm ':' và dấu '+' và
  2. bạn không cần ngụ ý [Enter]ở cuối chuỗi, vì jddkđược nhập tất cả trong chế độ trực quan trái ngược với chế độ lệnh .

Thêm vào đó, jddklà tất cả trên hàng nhà của bàn phím.

Tôi đã dành một khoảng thời gian dài để sử dụng h, j, k, l để điều hướng vi, rất lâu trước khi phần mềm mô phỏng thiết bị đầu cuối mà tôi sử dụng bắt đầu hỗ trợ các phím mũi tên. (Tôi đang nói về ~ 20 năm trước ;-)


1
hjkl dù sao cũng nhanh hơn Tôi chưa bao giờ sử dụng bàn phím không có phím mũi tên trên đó và tôi bắt đầu đánh giá rất cao hiệu quả của những lần gõ phím này khoảng 10 phút sau khi tôi không còn cảm thấy khó chịu vì sự vô ý của chúng.
trực giác

4

Tôi thực sự khuyên bạn nên đọc câu trả lời này trong stack stack, trong đó có hơn 500 lượt upvote: /programming/1218390/what-is-your- most-products-shortcut-with-vim / 1220118 # 1220118 - Câu trả lời dài, nhưng giúp hiểu lý do tại sao vim mạnh mẽ ...


Cảm ơn đã chỉ ra rằng! Câu trả lời rất kỹ lưỡng và đầy thông tin về việc mò mẫm vim và vi.
Chris W. Rea

2

Bạn cũng có thể quan tâm đến chế độ trực quan. Chỉ cần sử dụng vđể nhập và yđể kéo hoặc dxóa. Kiểm tra :helplà một nơi tuyệt vời khi bạn cũng bị mắc kẹt. Ví dụ :help deletesẽ cung cấp cho bạn hướng dẫn cho hầu hết các lệnh xóa thông thường.


0

Nếu bạn muốn xóa một loạt các dòng liên tiếp, bạn có thể sử dụng ddđể xóa dòng bạn đang bật, sau đó tiếp tục nhấn (hoặc giữ) .( dấu chấm ) để lặp lại lệnh.


hoặc gõ Ndd trong đó N là số dòng cần xóa. giả sử, để xóa dòng hiện tại và hai dòng tiếp theo (tổng cộng 3), hãy nhập 3dd
quack quixote
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.