Tại sao lệnh gạch dưới _ hữu ích?


15

Tôi hơi bối rối về lý do tại sao lệnh gạch dưới _, nhảy đến đầu dòng (COUNT - 1) bên dưới con trỏ, lấy khóa riêng. Khi nào tôi sẽ sử dụng cái này hơn +hay ^?

Câu trả lời:


16

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+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.


1
Được rồi, nhưng tôi có thực sự sử dụng nó không? ddlà dễ dàng hơn d_3yjdễ dàng hơn 4y_.
Tẩy răng

5
@toothrot Nếu bạn đang tạo toán tử của riêng mình và muốn hoạt động trên n dòng tiếp theo .
DJMcMayhem

5
@Toothrot Tôi đoán tôi muốn làm rõ điều đó một chút. Trong chỉnh sửa vim hàng ngày, không có gì thực sự không hữu ích. Tôi gần như không bao giờ sử dụng nó. Lý do nó hữu ích là vì nó là định nghĩa của rất nhiều lệnh hữu ích. 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.
DJMcMayhem

9
Một số hành động hành động theo "chuyển động" có thể không có các phím tắt khác. Một cái gì đó như "gU_" sẽ viết hoa mọi thứ trên dòng hiện tại, ngay cả khi con trỏ không ở đầu dòng.
bmb

1
@bmb 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.
Hotschke
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.