VIM: Xóa từ vị trí hiện tại cho đến khi có khoảng trắng


172

Thông thường khi phát triển tôi phải đối mặt với một đối tượng lồng nhau mà tôi muốn xóa khỏi mã ở giữa một dòng như thế này:

htmlDoc.WriteLine("<b><h3>" + this.cbAllSyncs.SelectedItem.ToString() + "</h3></b>");

Phần mà tôi muốn xóa là:

this.cbAllSyncs.SelectedItem.ToString()

Tôi biết tôi có thể đếm số lượng từ và dấu chấm và nhập 7dwđể xóa khỏi vị trí con trỏ hiện tại của tôi là "này". Tuy nhiên, những gì tôi muốn làm là không phải tính tất cả và xóa vào khoảng trống bằng một lệnh. Điều này có thể không?

Câu trả lời:


343

Thử dtspace . Nói chung dtxxóa từ vị trí hiện tại cho đến trước x. Chỉ cần txdi chuyển con trỏ đến ngay trước ký tự xtrong dòng hiện tại.

Để xóa tối đa và bao gồm không gian, sử dụng dfspace .


2
Điều này làm việc tuyệt vời! Nó cũng cho tôi thêm một số tính linh hoạt để đi đến những điểm nhất định khác trong đối tượng đó. Cảm ơn!
Blake Blackwell

27
df<space>xóa tối đa và bao gồm không gian tiếp theo.
glenn jackman

5
Không kém phần hữu ích, dfT <space> xóa không gian trước đó.
hgmnz

3
Bạn cũng có thể thêm số đếm ngay trước khi txóa tối đa nhiều ký tự đó. ví dụ d2t<space>sẽ xóa tối đa hai khoảng trắng.
Waseem

7
Tôi luôn sử dụng tính năng ghi nhớ t'Until stackoverflow.com/questions/7409134/ cấp
acw

71

Bạn có thể sử dụng dWhoặc dEnhư @glenn đề xuất nếu bạn không muốn xóa chính không gian đó.

Một WORD (chữ hoa W) bao gồm một chuỗi các ký tự không trống, được phân tách bằng khoảng trắng.

Đưa ra một cái nhìn cho các chuyển động từ .


1
Nếu tôi có thể bỏ phiếu cho hai câu trả lời tôi sẽ làm, vì điều này giải quyết câu hỏi cụ thể mà tôi đã hỏi. Cảm ơn các liên kết!
Blake Blackwell

5
hoặc dE- xóa cho đến khi kết thúc chuỗi ký tự không trống (không bao gồm khoảng trống sau)
glenn jackman

@BlakeBlackwell Ai nói bạn không thể bỏ phiếu cho hai câu trả lời? tôi đã làm như vậy cho câu hỏi này rồi Đây là thông tin hữu ích v.
javadba

20

một giải pháp có thể là sử dụng xóa với tìm kiếm.

vì vậy hãy nhập d/<space>và vim sẽ xóa cho đến khi nó chạm vào một khoảng trắng.


2
Điều này là tổng quát hơn dWbởi vì bạn cũng có thể sử dụng nó để xóa từ con trỏ đến bất kỳ ký tự nào, chẳng hạn như 2d/+, trong trường hợp này - cũng sẽ xóa các nối chuỗi.
Dave Jarvis

1
bạn có thể làm 2dW và điều này cũng thực hiện tốt. thực tế tôi coi đó là một giải pháp tốt hơn vì nó cũng sẽ hoạt động với các tab và khoảng trắng khác. Nó cũng xóa khoảng trắng theo sau mà bạn muốn xóa cho đến khi.
barkmadley

15

Nếu bạn muốn xóa từ bất cứ đâu trong WORD và trong một lệnh duy nhất, chỉ cần sử dụng daW

(tất nhiên bạn có thể sử dụng dawnếu bạn muốn giới hạn trong một từ)

Tôi sử dụng nó khá nhiều vì nó dành một bước chuyển từ đầu (trong trường hợp của bạn)


daw và daW hành xử giống nhau đối với tôi - cả hai đều xóa toàn bộ từ cho dù con trỏ của tôi đang bật chữ cái nào. Không chắc chắn lý do tại sao.
Sẽ

daw sẽ không xóa các khoảng trắng sau từ, trong khi daW sẽ
Louis

4
  • xóa cho vị trí hiện tại đến một ví dụ nhân vật cụ thể "

    dt "
  • xóa từ khỏi con trỏ vị trí được bật cho đến hết từ

    l
  • xóa toàn bộ từ mà con trỏ đang ở bất kể vị trí của con trỏ trên từ đó, điều này cũng đưa bạn vào chế độ chèn để cho phép bạn chèn ngay lập tức.

    diw

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.