Eu uso um gerenciador de janelas lado a lado (impressionante) + um multiplexador de terminal (tmux) + divisões dentro do vim. Eu não tenho nenhuma decoração de janela, então você não tem uma divisão visual entre elas se o conteúdo do programa não a revelar. Estou bastante confortável com esse paradigma, pois, de qualquer maneira, uso vários monitores e agrupo tarefas por tela. Se duas janelas não tivessem um motivo para estar lado a lado, elas não estariam lá em primeiro lugar.
No entanto, isso cria um pouco de dissonância visual, onde a divisão visual mais óbvia é a menos significativa semanticamente.
Janela do Xorg ‹|› window = nada
Painel Tmux ‹|› painel = linha divisória de 1px
Divisão Vim ‹|› divisão = coluna colorida de 1 caractere
Aqui está uma amostra mostrando uma de cada lado das janelas, painéis e divisões do vim:
Mesmo sem clicar na versão em resolução máxima, a linha divisória branca que você vê é a divisão menos significativa na tela, os painéis do vim. (Observe que a coluna cinza à direita da sessão do vim é na verdade um destaque da oitava coluna, não um divisor de qualquer tipo, embora eu trabalhe com esse tamanho com frequência).
Estou ciente de como alterar o caractere desenhado na divisão ou reduzir o contraste do esquema de cores. O que eu gostaria de fazer é usar a mesma barra de divisão que o tmux que não ocupa nenhuma largura porque é desenhada entre colunas e não em uma. Isso é possível com o vim baseado em terminal? Gvim? Neovim? Exceto na criação de um separador visualmente discreto, a coluna divisória pode ser totalmente desativada?
PS: O motivo pelo qual um separador visualmente semelhante faz sentido é porque eu uso as mesmas combinações de teclas para navegar entre os painéis tmux e divisões do vim. As mesmas teclas navegam perfeitamente entre elas, só faria sentido se os limites visuais fossem os mesmos também.
Você está errado sobre o tmux. Como todo programa baseado em terminal - incluindo o Vim - ele apenas desenha coisas dentro das células. Isso significa que o Vim e o tmux usam o mesmo método para desenhar bordas verticais: eles apenas usam um caractere semelhante a um tubo.
O Tmux usa │( U+2502) por padrão, enquanto o Vim usa |( U+007C).
Se você deseja o mesmo separador no Vim, pode simplesmente usar o mesmo caractere:
Observe que seu esquema de cores provavelmente define a cor de fundo da divisão vertical. Nesse caso, você pode remover a cor de fundo diretamente no esquema de cores:
Eu venci você nesta conclusão em cerca de um minuto, mas obrigado de qualquer maneira. Não sei por que assumi o contrário. Acho que fiquei com a impressão de que ele estava fazendo algum tipo de caractere Unicode combinando magia para sobrepor o separador na borda do espaço de caracteres, mas agora percebo que penso nisso conscientemente como isso seria ridículo.
Acontece que o que eu precisava no meu caso era hi VertSplit cterm=NONEporque é o reversepadrão.
Por acaso você sabe como mudar os separadores tmux de '│' para, digamos, '/'? @romainl
@EnanAjmain IIRC Encontrei o separador tmux em seu código-fonte. Eu não acho que haja uma opção para isso, mas estou longe de ser um especialista em tmux, então você deve verificar o manual.
@romainl Eu acho que você está certo. Qualquer coisa importante que eu consegui mudar do tmux, tive que invadir o código fonte.
— Klaus #
Mesmo na minha própria captura de tela, o tmux não está usando nenhuma mágica, a divisão ainda é uma coluna de um único caractere. O efeito visual menos invasivo é o uso de um caractere de desenho de caixa Unicode que é menos desajeitado que o padrão ASCII do vim e a falta de uma cor de fundo destacada.
Quase o mesmo efeito é possível no vim adicionando algo como as seguintes linhas ao arquivo rc:
O uso de autocmdgarantias de que a substituição do destaque permanece em vigor se você alternar os esquemas de cores. Você pode ou não querer esse comportamento, pois algum esquema de cores tem valores sensíveis para esse grupo de cores.
Observe também que cterm=NONEé necessário substituir alguns esquemas de cores que definem esse valor e reverse, portanto, mexer com os valores de fg / bg que você tentar usar.
Não, isso não pode ser feito no Vim e provavelmente seria muito difícil de implementar no GVIM.
O Vim adere ao endereçamento baseado em célula usado no terminal; dentro de um buffer, isso é crucial para uma navegação vertical consistente com j/ k. Esse endereçamento por coordenadas x e y baseadas em células está tão arraigado na implementação do Vim, que acho muito difícil de superar.
Observe também :help design-not:
O Vim não é um editor de GUI sofisticado que tenta parecer bonito ao custo de ser menos consistente em todas as plataformas.