Como posso definir número e número relativo ao mesmo tempo?

7

Acho que tanto o número e relativenumber útil. Existe alguma maneira de exibir os dois ao mesmo tempo?

Nathan Fellman
fonte
3
Além de usar set number relativenumber?
VanLaser 02/12/2015
Isso me mostra apenas o número relativo, não o absoluto.
Nathan Fellman
11
Em uma máquina diferente, ele me mostra o único número absoluto da linha atual e todos os números relativos. Eu quero os dois ao mesmo tempo #
Nathan Fellman
Eu acho que o OP quer a opção de mostrar números relativos ee números absolutos na coluna numérica ao mesmo tempo. AFAIK, isso não é possível.
EvergreenTree
Sim, é possível, utilizando plugins adicionais (como na resposta por @ christian-brabandt) - ver stackoverflow.com/a/16624418
Orangenhain

Respostas:

6

Não é possível mostrar todos os números de linha e números relativos ao mesmo tempo. Mas você pode obter o número da linha atual e o número relativo de todos os outros. De :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

O raciocínio sobre isso pode ser encontrado nesta discussão no grupo de discussão vim-dev , que contém um link para uma pergunta semelhante no reddit: Numeração relativa com número absoluto na linha atual .

mMontu
fonte
4

Não é realmente possível exibir o número e o número relativo ao mesmo tempo, além do mencionado em :h number_relativenumber(ver resposta diferente).

No entanto, você pode usar incorretamente a coluna da calha para exibir números extras. Por exemplo, você pode usar meu plug-in DynamicSigns e permitir que ele desenhe a coluna número relativo além da coluna numérica. Para que isso funcione, você faz algo assim:

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

Consulte a ajuda :h SignExpressionpara a definição da função CustomSignExpression (o 1 significa, para desenhar o número relativo em cada linha, use 5 para desenhar somente a cada quinta linha). Aumentar a 'numberwidth'configuração (a :let &nuw=&nuw+1peça) apenas garante que haverá um espaço extra entre a coluna da calha e a coluna numérica.

Observe, no entanto, isso diminuirá consideravelmente o vim ao rolar, pois os sinais precisam ser recriados a cada movimento.

Veja este exemplo. insira a descrição da imagem aqui

Christian Brabandt
fonte