it-swarm-vi.com

Xóa từ con trỏ đến cuối dòng trong `vi`

Tôi biết có lẽ tôi đã xem qua hàng triệu lần trong tất cả các tài liệu vi tôi đã đọc, nhưng dường như tôi không thể tìm thấy việc xóa từ con trỏ đến cuối dòng lệnh.

334
Falmarri

Lệnh dw sẽ xóa từ vị trí con trỏ hiện tại đến đầu ký tự Word tiếp theo. Lệnh d$ (lưu ý, đó là ký hiệu đô la, không phải là 'S') sẽ xóa từ vị trí con trỏ hiện tại đến cuối dòng hiện tại. D là một từ đồng nghĩa với d$.

499
Tok

Như những người khác đã đề cập: bạn có thể sử dụng d$ hoặc D (shift-d) để xóa từ vị trí con trỏ cho đến cuối dòng.

Những gì tôi thường thấy hữu ích hơn là c$ hoặc C (shift-c) bởi vì nó sẽ xóa từ vị trí con trỏ cho đến hết dòng đưa bạn vào chế độ [INSERT].

54
Brad Johnson

Một trong những điều hay về vi là cấu trúc lệnh logic của nó. d theo sau là một lệnh chuyển động d bỏ qua mục tiêu của chuyển động đó. $ di chuyển đến cuối dòng (mnemonic: like in regexps). Vì thế d$ xóa đến cuối dòng. Tương tự, e di chuyển đến e nd của Word hiện tại và w di chuyển đến đầu từ tiếp theo w ord; vì vậy de xóa phần cuối của Word hiện tại và dw cũng xóa thêm khoảng trắng sau.

38

Bạn có thể muốn sử dụng D. Di chuyển con trỏ đến ký tự đầu tiên bạn muốn xóa, sau đó nhấn shift-D. Mọi thứ đã biến mất. Trên thực tế, nó nằm trong bộ đệm cắt mặc định, vì vậy bạn có thể P hoặc p dán lại.

Tôi sử dụng Dp (xóa đến cuối dòng, sau đó đặt lại), di chuyển đến cuối một số dòng khác, sau đó p một lần nữa để dán cùng một văn bản ở cuối dòng khác này. Hoạt động kỳ diệu trong các tệp cấu hình, nơi bạn cần đặt một số URL phức tạp ở hai hoặc nhiều nơi.

21
Bruce Ediger

Để xóa một loạt các dòng từ sau vị trí con trỏ, 3D sẽ xóa khỏi con trỏ cho đến hết dòng, cũng như hai dòng tiếp theo hoàn toàn (nghĩa là xóa 3 dòng sau vị trí con trỏ).

ví dụ. cho văn bản sau (con trỏ được biểu thị là |),

If there's a cursor |in the line
here
we
go

Sử dụng lệnh 3D sẽ xuất ra:

If there's a cursor
go
1
Nick Bull

Tôi nghĩ rằng một phím tắt chế độ chèn có thể có ích.

Trong chế độ chèn có thể tốt hơn là bắt đầu thay đổi cho đến cuối dòng (đặt cái này vào ~/.vimrc):

inoremap <C-l> <C-o>C

Vì vậy, bạn đã, như đã nói, D ở chế độ bình thường và Ctrl+l trong chế độ chèn. Như bạn thấy bạn cũng có C bắt đầu thay đổi cho đến cuối dòng.

<C-o> ......... insert normal keystroke in insert mode

Tôi đã chọn Ctrl-l bởi vì l nằm dưới ngón tay của bạn. Các Ctrl-k đã được sử dụng để chèn các bản đồ.

Tôi đã tìm kiếm thông qua :h i_Ctrl Để tìm một số tổ hợp phím miễn phí và thực sự là vấn đề lớn hơn khi tạo các phím tắt mới để thực hiện các hành động trong vim.

1
SergioAraujo