Chỉ đặt số dòng trong khi ở chế độ bình thường


8

Tôi không sử dụng nhiều cho số dòng trong khi ở chế độ chèn nên tôi muốn tắt chúng đi. Tuy nhiên, chúng là tuyệt vời cho chế độ bình thường.

Sử dụng liên tục set nu!là mệt mỏi. Có cách nào để buộc set nu!thoát ra và vào chế độ bình thường không?

Bất kỳ giải pháp sử dụng các phương pháp trên hoặc bất kỳ phương pháp khác?


Về nhận xét của bạn cho câu trả lời của @ Carpetsmoker, tại sao bạn sẽ giữ lề nhưng không phải là số dòng? Ý định ban đầu của bạn là gì để thoát khỏi những con số?
Rolf

Nó hoạt động như một cách để phân biệt giữa chế độ chèn và chế độ bình thường. Đồng thời xóa số dòng phục vụ để xóa thông tin không liên quan khỏi chế độ chèn. Nếu mỗi lần vào chế độ chèn, bạn loại bỏ lề, bạn có thể bị đau đầu từ tất cả các văn bản thay đổi ba khoảng trống mỗi lần. Một số có thể thích điều này, tuy nhiên nó không phải là sở thích của tôi.
Jason Basan

Câu trả lời:


13

Bạn có thể làm điều này với autocommands.

au InsertEnter * set nonumber
au InsertLeave * set number

Không cần giải thích nhiều. Điều này không chính xác những gì bạn yêu cầu. Nó liên kết "nhập và thoát chế độ chèn" thành "bật và tắt số dòng".


1
Tuy nhiên, xin lưu ý rằng insertLeave không được kích hoạt, khi sử dụng Ctrl-C để thoát chế độ chèn
Christian Brabandt

5

Đây là một giải pháp thay thế sẽ chỉ ẩn các số, nhưng thực tế sẽ không thay đổi lề bên trái để văn bản của bạn không nhảy quá nhiều khi vào / rời chế độ chèn:

set number

augroup number
    autocmd!
    autocmd InsertEnter * highlight LineNr ctermfg=white guifg=white
    autocmd InsertLeave * highlight LineNr ctermfg=130 guifg=Brown
augroup end

Khi vào chế độ chèn, nó sẽ đặt màu văn bản thành màu nền. Trong trường hợp của tôi đây là màu trắng, nhưng điều này có thể khác trong trường hợp của bạn. Khi chúng ta rời khỏi chế độ chèn, nó sẽ đặt lại về mặc định cho bảng màu của tôi.

Bạn có thể tìm ra mặc định cho bảng màu của mình với:

:highlight LineNr
LineNr         xxx term=underline ctermfg=130 guifg=Brown

3
Thậm chí tốt hơn:au InsertEnter * hi LineNr ctermbg=NONE ctermfg=bg guifg=bg
Christian Brabandt

Đây có thể là những gì tôi sẽ sử dụng, nhưng câu trả lời khác ngắn gọn hơn và trả lời trực tiếp câu hỏi.
Jason Basan
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.