Em este Q & A , observa-se que há um grupo destaque para CursorLineNr
, que se aplica ao número da linha para a linha de cursor quando set cursorline
está ligado.
Percebo que o uso da linha do cursor também altera a cor de outro grupo de destaque SpecialKey
, que se aplica se você tiver, por exemplo:
set list listchars=tab:\|_,trail:-
O problema disso é que eu uso um fundo escuro (e, portanto, uma linha de cursor escura). Minha SpecialKey
configuração normal também é muito escura, de modo que os listchar
símbolos são apenas um pouco visíveis. Mas usar cursorline
eles é branco , o que torna o trail
caracter indistinguível de ter realmente atingido -
. O caractere de trilha é usado toda vez que você digita um espaço no final de uma linha, portanto, isso é mais do que um problema menor; normalmente, digitar uma linha do começo ao fim envolve vários espaços que devem ser facilmente distinguidos de um erro de digitação de traço durante o trabalho (ou vice-versa, um erro de digitação de espaço quando você pretendia um traço).
Como nenhum dos outros grupos de destaque parece ser afetado, algo como CursorLineNr
provavelmente está sendo aplicado, mas olhando a hi
lista, não vejo nada apropriado.
Alguém sabe o que é isso? Melhor ainda, alguém sabe como modificar qualquer grupo de destaque para a linha do cursor?
fonte
Respostas:
Eu tenho lutado com esse comportamento há muito tempo.
Basicamente, a cor de primeiro plano de
SpecialKey
na linha atual é alterada para a cor de primeiro plano deNormal
se:cursorline
opção está ativada,CursorLine
grupo de destaque tem uma cor de fundo definida.Eu nunca fui capaz de corrigir esse comportamento, não importa o que eu tentei. O problema está em algum lugar no código fonte do Vim.
fonte
~
um pouco menos confuso (também pode procurar algum caractere unicode obscuro para usar).none
), tentou deixar seu valor padrão (foi sublinhado), os espaços ainda mudou sua cor de primeiro planoO que funcionou para mim foram as seguintes linhas no meu
.vimrc
(com base na resposta de Igor Mikushkin ).VimEnter
só funciona para o primeiro arquivo que você abre, não para arquivos / guias que você abre posteriormente.BufNewFile,BufRead
funcionou até agora para todos os buffers que abri.A primeira linha abrange caracteres em branco. O Vim os destaca no
SpecialKey
grupo, então aplicamos esses estilos a eles.A segunda linha abrange novas linhas. O Vim os destaca no
NonText
grupo, então aplicamos esses estilos a eles. Você realmente só precisa da segunda linha se seusNonText
caracteres estiverem destacados de maneira diferente dosSpecialKey
caracteres.fonte
As linhas a seguir em .vimrc corrigiram o problema para mim.
Ele substitui o aplicativo de outros estilos por tabulações e espaços finais dentro de uma linha do cursor.
fonte
matchadd()
resultado em uma variável, se não o usa?Existe ainda outra "solução", na verdade uma espécie de argumento para esse problema.
Eu tenho grupos de sintaxe personalizados para "listchars".
Como isso:
Você poderia fazer algo assim (embora eu não o testasse):
Mas há pelo menos dois problemas com essa abordagem:
Para corrigir isso, tenho funções especiais como:
para cada grupo de sintaxe, que eu uso com frequência, para corrigir o realce manualmente. Você pode fazer isso de outra maneira, como comandos automáticos ou configurando manualmente o valor da opção de sintaxe. Para que a redefinição da sintaxe funcione, é necessário também ter o seguinte:
em cada arquivo de sintaxe correspondente, como
~/.vim/after/syntax/javascript.vim
let g:indentLine_newVersion = 0
, onde o plug-in funcionava normalmente.Mas, de outra maneira, essa abordagem funciona normalmente sem o plugin IndentLine:
E aceitável com isso:
fonte