2013-02-11 24 views
5

Tôi đọc mà b cũng giống như trái ngược với những e ví dụ b làm những gì e làm nhưng ngược.Trong VIM, tại sao không `db` xóa ký tự bên dưới con trỏ?

Vì vậy, nếu tôi nhấn de trên một từ và con trỏ nằm trên chữ cái đầu tiên của từ, con trỏ sẽ xóa toàn bộ từ. Thật tuyệt!

Nhưng nếu tôi trúng db vào một từ và con trỏ là trên lá thư cuối cùng của văn bản, nó sẽ xoá toàn bộ từ ngoại trừ bức thư mà con trỏ đang trên!

Tôi biết tôi chỉ có thể di chuyển qua một ký tự khi sử dụng b nhưng tôi muốn giữ mọi thứ nhất quán. Và có lẽ ai đó có thể khai sáng cho tôi về lý do tại sao b hoạt động như thế này.

Trả lời

5

con trỏ vim là một điều khá kinh tởm và được thiết kế kém, để bắt chước con trỏ khối của thiết bị đầu cuối. vị trí con trỏ là thực sự ở bên cạnh bắt đầu/tay trái của khối, vì vậy nếu khối này là "trên" k trong bark và bạn db bạn đang thực sự xóa từ r để b.

may mắn thay, you can change the cursor một cái gì đó hợp lý

+1

Tôi cũng muốn xin lỗi vì trang wiki vim tồi tệ đến thế nào, nhưng tất cả các trang wiki vim đều tồi tệ. –

+0

à, được rồi. Điều đó có ý nghĩa bây giờ nhưng nó rất không trực quan. – sq1020

+0

nghĩa đen không có gì trong vim là trực quan. đó là tất cả học tập dốc. –

9

b không phải là đối diện của e, như b là một độc quyền chuyển động, trong khi ebao gồm. Từ :help e & :help b:

e Chuyển đến hết từ [count]bao gồm. Không dừng lại ở một dòng trống.

b[count] từ phía sau. độc quyền chuyển động.

và từ :help exclusive:

chuyển động Một nhân vật là một trong hai bao gồm hoặc độc quyền. Khi được bao gồm, vị trí bắt đầu và kết thúc của chuyển động được bao gồm trong hoạt động . Khi độc quyền, ký tự cuối cùng vào cuối bộ đệm không được bao gồm. Chuyển động theo chiều dọc luôn bao gồm vị trí kết thúc và .

+1

@WMR Không, 'ge' di chuyển ngược về cuối từ. – glts

+0

@glts: bạn nói đúng, bình luận đã bị xóa ... – WMR

1

Bạn nên có một cái nhìn tại :help text-objects: nó cho phép bạn áp dụng lệnh để đối tượng thông minh, giống như từ ngữ, câu, đoạn văn hay.

Đối với xóa một từ, bất kể vị trí của con trỏ, bạn nên sử dụng diw.

+0

nếu bạn muốn xóa 5 từ về phía sau và bây giờ bạn đứng trên lá thư cuối cùng của từ thứ năm? Làm thế nào để bạn thường làm điều này? – Ayrat

+0

@ayrat: bạn có thể sử dụng 'd5b' để di chuyển hơn năm từ, nhưng có vẻ như ký tự bên dưới con trỏ vẫn ở đó. Một cách khác là sử dụng một cái gì đó như 'dFx' để xóa lùi cho đến khi ký tự 'x'. –

+0

'dFx' cũng để lại ký tự dưới con trỏ không được yêu cầu. dù sao cũng cảm ơn bạn! – Ayrat

0

Xóa Một Lời dmộtw.

Xóa từ bên dưới con trỏ của bạn và khoảng trống ở bên trái để con trỏ ở cuối từ trước đó. Đây là một sự thay đổi lặp lại. Trong VIM, bạn có thể lặp lại với .


$ | Sau đó, đã có không e

dmộtw | Sau đó, có wa s

. | Sau đó, có e

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