Làm thế nào tôi có thể thiết lập số và số tương đối cùng một lúc?


7

Tôi thấy cả số lượngsố tương đối hữu ích. Có cách nào để hiển thị cả hai cùng một lúc không?


3
Khác với việc sử dụng set number relativenumber?
VanLaser

Điều đó chỉ cho tôi thấy tương đối, không phải là tuyệt đối.
Nathan Fellman

1
Trên một máy khác, nó chỉ cho tôi số duy nhất của dòng hiện tại và tất cả các số tương đối. Tôi muốn cả hai cùng một lúc
Nathan Fellman

Tôi nghĩ OP muốn tùy chọn hiển thị số tương đối và số tuyệt đối trong cột số cùng một lúc. AFAIK, điều đó là không thể.
EvergreenTree

Có, có thể bằng cách sử dụng các plugin bổ sung (như trong câu trả lời của @ christian-brabandt) - xem stackoverflow.com/a/16624418
Orangenhain

Câu trả lời:


6

Hiển thị tất cả các số dòng và số tương đối cùng một lúc là không thể. Nhưng bạn có thể lấy số dòng hiện tại và số tương đối cho tất cả những dòng khác. Từ :help number_relativenumber:

The 'relativenumber' option changes the displayed number to be
relative to the cursor.  Together with 'number' there are these
four combinations (cursor in line 3):

    'nonu'          'nu'            'nonu'          'nu'
    'nornu'         'nornu'         'rnu'           'rnu'

    |apple          |  1 apple      |  2 apple      |  2 apple
    |pear           |  2 pear       |  1 pear       |  1 pear
    |nobody         |  3 nobody     |  0 nobody     |3   nobody
    |there          |  4 there      |  1 there      |  1 there

Lý do về điều này có thể được tìm thấy tại cuộc thảo luận này về nhóm gửi thư vim-dev , trong đó có một liên kết đến một câu hỏi reddit tương tự: Đánh số tương đối với số tuyệt đối trên dòng hiện tại .


4

Không thực sự có thể hiển thị cả số và số tương đối cùng một lúc, bên cạnh những gì được đề cập tại :h number_relativenumber(xem câu trả lời khác nhau).

Tuy nhiên, bạn có thể sử dụng sai cột máng xối để hiển thị số phụ. Ví dụ: bạn có thể sử dụng plugin DynamicSigns của tôi và để nó vẽ cột tương đối bên cạnh cột số. Để làm việc đó, bạn làm một cái gì đó như thế này:

 :SignExpression CustomSignExpression(v:lnum, 1)
 :let &nuw=&nuw+1
 :set nu

Xem trợ giúp :h SignExpressionvề định nghĩa của hàm CustomSignExpression (Phương tiện 1, để vẽ số tương đối ở mỗi dòng, sử dụng 5 để chỉ vẽ mỗi dòng thứ năm). Việc tăng 'numberwidth'cài đặt ( :let &nuw=&nuw+1phần) chỉ cần đảm bảo, sẽ có thêm khoảng trắng giữa cột máng xối và cột số.

Tuy nhiên, lưu ý, điều này sẽ làm chậm đáng kể vim khi cuộn, vì các dấu hiệu cần được tạo lại trên mỗi lần di chuyển.

Xem ví dụ này. nhập mô tả hình ảnh ở đây

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.