Câu trả lời:
Câu hỏi hay!
Như một chuyển động của chính nó, bạn đúng, _không phải là một khóa đặc biệt hữu ích.:h _
*_*
_ <underscore> [count] - 1 lines downward, on the first non-blank
character |linewise|.
Từ khóa ở đây là "linewise". Vì vậy, nếu mục tiêu của bạn là chỉ cần di chuyển con trỏ, sau đó ^, jvà +tất cả được công việc làm, và không có nhiều điểm đến _. Nhưng như là một đối số cho một nhà điều hành, _là siêu mạnh mẽ.
Rất nhiều phím tắt đôi thực sự chỉ là phím tắt cho _. Ví dụ,
dd -> d_
cc -> c_
yy -> y_
Y -> y_
v.v. Bởi vì đó là một chuyển động theo chiều dọc, về cơ bản, nó sẽ chọn toàn bộ dòng được vận hành bất kể con trỏ của bạn bắt đầu từ đâu, trong khi ^chỉ đi từ ký tự của bạn sang ô trống đầu tiên.
Nó giúp tôi khi suy nghĩ về chuyển động thẳng hàng so với chuyển động khối để tưởng tượng rằng tôi đang nhấn vhoặc Vngay trước khi chuyển động. Vì vậy, tôi tưởng tượng d^là tương đương v^dvà tôi tưởng tượng d_là tương đương với V_dhoặc V^d. Tất nhiên, bạn cũng có thể ghi đè một chuyển động để buộc nó phải thẳng hàng hoặc đặc trưng. Vì vậy, dv_thực sự chính xác giống như d^hoặc v^d, và dVwgiống như Vwdlà chính xác d_.
Lý do cụ thể là dòng "đếm số 1" là để 1dd(thực sự d1_) xóa toàn bộ một dòng, 2dd(thực sự d2_) xóa toàn bộ 2 dòng, 3ddxóa toàn bộ 3 dòng, v.v.
ddcó thể thuận tiện hơn d_, nhưng đó ddchỉ là ánh xạ tới d_. Và nó cũng hữu ích trong vimscript.
gUUthì sao? Tôi nghĩ rằng sẽ rất đáng để tìm một ví dụ thực tế nơi <operator>_sẽ được sử dụng.
ddlà dễ dàng hơnd_và3yjdễ dàng hơn4y_.