'<,'> trong dấu nhắc lệnh


8

Thỉnh thoảng khi tôi gõ :để thoát hoặc viết tệp của mình, lời nhắc đã chứa các ký tự :'<,'>mà không cần tôi gõ bất cứ thứ gì. Nó gây ra lỗi nếu tôi gõ whoặc q. Tôi không thể lặp lại vấn đề này. Nó xảy ra vào những thời điểm kỳ lạ nhất và tôi không thể xác định được nguyên nhân gây ra nó.

Tôi đã mất mãi mãi để nhận ra rằng việc tôi vô tình gõ q:thay vì :qkhiến tôi gặp khó khăn khi bỏ việc. Bây giờ tôi đã biết về điều đó, tôi đang cố gắng tìm ra nguyên nhân gây ra hành vi khác này. Tôi không thể tìm thấy bất cứ điều gì trên đó, mặc dù tôi đã thấy nó ở đâu đó trong lệnh đại tràng của ai đó.

Đây có phải là một hành vi dự kiến? Điều gì có thể gây ra nó?

Câu trả lời:


15

Thấy '<,'>trong dòng lệnh khi bạn bấm :chỉ ra rằng bạn đang có một thị giác phạm vi lựa chọn (ví dụ với v, Vhoặc Ctrl- v), và vim là helpfully tiền tố mốc cho 'bắt đầu lựa chọn' qua 'cuối lựa chọn' để áp dụng những giới hạn phạm vi của lệnh mà bạn có lẽ sắp nhập.

Xem :h visual-operators:

Lưu ý rằng '<,'>sẽ xuất hiện tự động khi bạn nhấn :trong chế độ Visual.

Vì bạn không thể "thoát" chỉ một phần nhất định của tệp, đó là lý do tại sao bạn nhận được Invalid addresskhi bạn cố gắng :'<,'>q.

Nếu bạn muốn chạy một lệnh không bị giới hạn như vậy, bạn có thể nhấn Ctrl- Uđể xóa mọi thứ ở bên trái của con trỏ trước khi nhập qhoặc chỉ cần sử dụng ZZhoặc ZQbí danh.


3
Lưu ý rằng ZZsẽ ghi tất cả các thay đổi vào các tập tin trước khi thoát. Nếu bạn muốn loại bỏ các thay đổi, sử dụng ZQ.
Ruslan

@Ruslan. Mẹo tuyệt vời. Tôi luôn luôn gõ :q!mà luôn luôn là một vấn đề cho bối cảnh của câu hỏi. Bây giờ ZQlà trong kho vũ khí của tôi!
malan

"không giới hạn như vậy" sẽ tạo nên một tên ban nhạc hay
Omar
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.