Corrigindo a posição dos itens na linha de status do vim

4

Minha linha de status é algo assim:

set statusline+=%m
set statusline+=b%n:
" set statusline+=%f
set statusline+=%F
set statusline+=%R
set statusline+=%Y
set statusline+=\ 
set statusline+=[
set statusline+=row\ %l/%L
set statusline+=,\ 
" set statusline+=column\ %c\ (%v)

set statusline+=column\ %v\ (%c)
set statusline+=]

que, em um dia normal, quando não há nuvens, apresenta algo assim:

[-]b3:options.txt,RO,HELP [row 6291/7778, column 42 (29)]

Agora, quando vou sobre a divisão de janelas e a abertura de arquivos diferentes, alguns deles modificados, alguns deles não, as coisas na linha de status começam a balançar para frente e para trás, e isso me irrita até o fim.

Vi na ajuda do vim (: help 'statusline ) que é possível definir uma largura fixa de alguns itens.

Como você resolveria os itens acima de forma que, se um item estiver faltando, ou não importa a sua largura, isso não afete os outros? (ou seja, para que eu possa sempre olhar para uma posição conhecida e saber o que está lá ... não mova meus olhos para a esquerda e direita procurando a coisa que eu preciso).

    
por Rook 31.03.2010 / 01:53

1 resposta

6

% = permite dividir a justificação à esquerda e à direita.

Eu uso isso na minha linha de status, com o meu branch git atual justificado à esquerda e as informações do arquivo justificadas à direita. Mesmo se não houver informações de git disponíveis, todo o restante permanecerá totalmente à direita.

edite : Eu devo dizer que eu uso% = para consertar os itens dessa maneira porque eu tive problemas para fazer com que funcionasse de outra maneira. Você pode definir uma largura mínima usando % - 10.f (com 10 a largura mínima para algum item f).

edite 2 : Para responder ao comentário de Idigas abaixo. Aqui está sua linha de status atual (reformatada por espaço):

set statusline=%mb:%n\ %f%R%Y\ [row\ %l/%L,\ column\ %v\ (%c)]

Eu mudaria para:

set statusline=b:%n\ %f%R%Y%=%m[row\ %l/%L,\ column\ %v\ (%c)]

Ao definir a divisão esquerda / direita com % = e mover a % m modificada para depois dela, as posições da linha de status parecem ser fixas.

    
por 31.03.2010 / 03:44

Tags