Làm thế nào để xóa cho đến cuối dòng trước?


8

Một ví dụ ( ^Vị trí con trỏ):

Trước:

a bc def ghi
j k l mn o p q rs
      ^

Sau:

a bc def ghimn o p q rs
            ^

hoặc ít nhất:

a bc def ghimn o p q rs
           ^

Tôi biết tôi có thể sử dụng d0i<BS>, nhưng tôi muốn một cách nhanh hơn để làm điều này và tôi muốn duy trì ở chế độ lệnh. Tôi là người mới bắt đầu học vim và tôi nghĩ rằng có lẽ câu trả lời là một sửa đổi kA.

Cảm ơn rât nhiều! :-)


1
Nếu đây là việc bạn làm thường xuyên, bạn nên xem xét việc viết bản đồ của riêng mình cho nó, có thể là một cái gì đó giống như <Leader>dk.
Kyle Strand

Câu trả lời:


9

Thử d0kJx

Xóa ngược về đầu dòng, di chuyển lên, sau đó nối hai dòng và sau đó xóa khoảng trắng ở giữa hai dòng được nối.

Bạn không cần phải rời khỏi chế độ bình thường với điều này.


2
Đây là câu trả lời duy nhất cho đến nay (1) không thay đổi lịch sử tìm kiếm hoặc thay đổi tô sáng hiện tại và (2) không xóa m.
Kyle Strand

12

Chà, bạn có thể kết hợp chuyển động "tìm kiếm ngược" và deletetoán tử:

d?$<Enter>

Trong .vimrc tôi có cái này: set hlsearchd?$<Enter>thực hiện những gì tôi yêu cầu nhưng nó cũng làm nổi bật tất cả các kết thúc dòng trong tệp để tôi phải nhập :nohsau đó để loại bỏ phần tô sáng. Có cách nào để tránh điều này không? Cảm ơn bạn! :-)
silviubogan

1
Có lẽ, những gì tôi làm chỉ đơn giản là "quá tải" <C-l>trong chế độ bình thường: nnoremap <silent><C-l> :nohlsearch<cr>:set nolist<cr>:redraw!<cr>sau đó sử dụng nó khi cần thiết (tức là trong các trường hợp như ở trên).
VanLaser

3

Với chế độ trực quan: hvk$d

Giải thích
h - Di chuyển một sang trái
v- Bắt đầu chế độ trực quan
k$- Di chuyển đến cuối dòng trước
d- Xóa lựa chọn


Với con trỏ trên m, có thể hvk$d? (để tránh chọn nó)
VanLaser

1
À, vâng. Cập nhật ngay.
Karl Yngve Lervåg
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.