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 đó ^
, j
và +
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 v
hoặc V
ngay trước khi chuyển động. Vì vậy, tôi tưởng tượng d^
là tương đương v^d
và tôi tưởng tượng d_
là tương đương với V_d
hoặ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à dVw
giống như Vwd
là 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, 3dd
xóa toàn bộ 3 dòng, v.v.
dd
có thể thuận tiện hơn d_
, nhưng đó dd
chỉ là ánh xạ tới d_
. Và nó cũng hữu ích trong vimscript.
gUU
thì 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.
dd
là dễ dàng hơnd_
và3yj
dễ dàng hơn4y_
.