Làm cách nào tôi có thể nhanh chóng xóa một dòng trong VIM bắt đầu từ vị trí con trỏ?


267

Tôi muốn có thể xóa phần còn lại của dòng tôi đang bắt đầu tại vị trí của con trỏ trong VIM. Có một lệnh dễ dàng để làm điều này?

Để giúp minh họa, đây là trước lệnh.

The quick brown dog jumps over the lazy fox.
     ^
     |----- Cursor is here.

Đây là sau lệnh

The q
     ^
     |----- Cursor is here.

Câu trả lời:


430

(Đã chỉnh sửa để bao gồm các bổ sung tốt của người bình luận :)

Dhoặc tương đương của nó d$sẽ xóa phần còn lại của dòng và để bạn ở chế độ lệnh. Choặc c$sẽ xóa phần còn lại của dòng và đưa bạn vào chế độ chèn và văn bản mới sẽ được thêm vào dòng.

Đây là một phần vitutorvimtutor, "đọc" tuyệt vời cho người mới bắt đầu vim.


1
Blast, tôi đoán nó là một cái gì đó dễ dàng, tôi đã suy nghĩ một số kết hợp dtheo sau bởi một cái gì đó. Tôi cho rằng sẽ nhanh hơn để đăng câu hỏi ở đây cũng như mang lại lợi ích cho những người khác mặc định tìm kiếm trực tuyến trước khi đọc hướng dẫn.
Anthony

2
Hoặc C, cách "thực" duy nhất để lấy con trỏ ở vị trí được chỉ định, mặc dù điều đó đưa bạn vào chế độ chèn.
Walter

1
@Anthony: Ngoài ra còn có một dlệnh "tương đương với một cái gì đó" D, trong đó "cái gì đó" là $chuyển động : d$.
ib.

2
Và nếu bạn muốn kết thúc ở chế độ chèn, hãy sử dụng C(hoặc c$)
Benoit

7
Tôi nhận ra rằng giải pháp này đã được trả lời nhưng tôi đang tìm cách xóa toàn bộ dòng bằng VIM và tìm thấy giải pháp này. Tùy chọn hóa ra tôi đang tìm kiếm là ddtừ chế độ lệnh. Tôi hy vọng điều đó sẽ giúp bất kỳ ai khác vấp phải điều này.
Frito


21

Bạn cũng có thể quan tâm C, nó cũng sẽ xóa phần cuối của dòng như thế D, nhưng ngoài ra, nó sẽ đưa bạn vào chế độ Chèn tại vị trí con trỏ.




5

Đây là một câu hỏi rất cũ, nhưng vì VIM vẫn còn liên quan nên cần làm rõ điều gì đó.

Mọi câu trả lời và nhận xét ở đây kể từ tháng 10 năm 2018 đã đề cập đến những gì thường được gọi là hành động "cắt", do đó sử dụng bất kỳ câu hỏi nào sẽ thay thế bất cứ điều gì hiện có trong đăng ký chưa được đặt tên của VIM . Thanh ghi này có xu hướng được xử lý như một bảng sao chép / dán mặc định, vì vậy không có câu trả lời nào trong số này sẽ hoạt động như mong muốn nếu bạn xóa phần còn lại của dòng để dán một cái gì đó vào cùng một vị trí sau đó, vì bất cứ điều gì vừa bị xóa sẽ được dán sau đó thay vì bất cứ điều gì đã được kéo mạnh trước đó.

Lệnh xóa thực sự trong ngữ cảnh của OP là "_D(hoặc "_Cnếu muốn chế độ chèn) Điều này sẽ gửi nội dung đã xóa vào thanh ghi lỗ đen , được chỉ định bởi "_, nơi nó sẽ không làm phiền ai nữa (mặc dù bạn vẫn có thể hoàn tác hành động này bằng cách sử dụng u).

Điều đó đang được nói, bất cứ thứ gì được kéo dài cuối cùng đều được lưu trữ trong thanh ghi 0 và ngay cả khi nó được thay thế trong thanh ghi không tên, nó vẫn có thể được dán bằng cách sử dụng "0p.

Tìm hiểu thêm về đăng kýđăng ký lỗ đen nói chung để có thêm niềm vui VIM!


4

Dhoặc ddxóa và sao chép dòng vào thanh ghi. Bạn có thể sử dụng Vxchỉ xóa dòng và ở chế độ bình thường.

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.