2009-10-22 21 views
129

Thông thường khi phát triển Tôi đang phải đối mặt với một đối tượng lồng nhau mà tôi muốn xóa từ mã ở giữa của một dòng như thế này:VIM: Xóa từ vị trí hiện tại cho đến khi một không gian

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

Phần rằng tôi muốn xóa là:

this.cbAllSyncs.SelectedItem.ToString() 

tôi biết tôi có thể đếm số từ và giai đoạn và nhập dw để de lete từ vị trí con trỏ hiện tại của tôi là "this". Tuy nhiên, những gì tôi muốn làm là không phải đếm ở tất cả và xóa vào không gian với một lệnh. Điều này có thể không?

Trả lời

243

Hãy thử dtgian. Nói chung, dtx xóa khỏi vị trí hiện tại cho đến trước x. Chỉ cần tx di chuyển con trỏ đến ngay trước ký tự x trong dòng hiện tại.

Để xóa lên đến và bao gồm cả không gian, sử dụng dfgian.

+0

Điều này rất tuyệt! Nó cũng mang lại cho tôi một số tính linh hoạt bổ sung để đến các điểm nhất định khác trong đối tượng đó. Cảm ơn! –

+25

'df ' xóa tối đa và bao gồm không gian tiếp theo. –

+5

hữu ích không kém, dfT xóa xuống không gian trước đó. – hgmnz

54

Bạn có thể sử dụng dW hay dE như @glenn gợi ý nếu bạn không muốn xóa không gian riêng của mình.

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

Hãy xem word motions.

+0

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ể tôi đã hỏi. Cảm ơn các liên kết! –

+3

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 ô trống sau) –

+0

@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 về câu hỏi này rồi. Đây là thông tin hữu ích. – javadba

16

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

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

+2

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

+1

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

1

dtgian là câu trả lời cho câu hỏi của bạn, nhưng df+ vẻ như nó sẽ giải quyết vấn đề của bạn tốt hơn.

+0

Nó không làm bất cứ điều gì cho tôi. –

11

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

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

Tôi sử dụng nó khá nhiều bởi vì nó dự phòng di chuyển đến đầu từ (trong trường hợp của bạn)

+0

daw và daW hoạt động tương tự đối với tôi - cả hai đều xóa toàn bộ từ bất kể ký tự nào mà con trỏ của tôi đang bật. Không chắc chắn lý do tại sao. – Will

+0

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

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

    dt"
  • xóa từ từ vị trí con trỏ là đến cuối của từ

    dw
  • xóa toàn bộ từ con trỏ là trên không phân biệt vị trí con trỏ là trên từ, điều này cũng đặt bạn vào chế độ chèn để cho phép bạn chèn ngay lập tức.

    diw
+0

Xin cảm ơn, với lời giải thích của bạn, tôi hiểu cách xóa công trình – Maxim

Các vấn đề liên quan