Postagem original
Eu tenho um esquema de cores configurado no meu .vimrc, mas às vezes eu gostaria de desligá-lo completamente, o que significa que gostaria que o Vim usasse as cores de plano de fundo e primeiro plano padrão do meu terminal.
Meu problema é que não sei como fazê-lo facilmente. Quando uso o :syntax off
Vim, a maioria das cores é desativada, mas não remove a cor da linha do cursor. Não altera a cor do plano de fundo para a cor padrão do terminal.
Existe um comando como :nocolorscheme
ou vim -u NONE
apenas para as cores?
Estou ciente do fato de que posso criar um arquivo .vimrc personalizado e carregá-lo com a -u
opção Estou procurando uma solução mais fácil.
Major update
Como você me sugeriu vários comandos e abordagens diferentes, decidi mostrar algumas fotos da tela depois de chamar esses comandos.
Ambiente terminal
Eu uso o terminal st (1) da suckless.org com um config.h personalizado, para que eu tenha defaultfg = 10
(verde brilhante) e defaultbg = 0
(preto). Estou executando a versão GNU / Linux com a qual o PocketC.HIP é fornecido ( uname -a
resulta no SMP do chip 4.3.0- ntc do Linux # 1 SMP Wed May 11 21:57:30 UTC 2016 arm7l GNU / Linux ).
Screenshots
Sem esquema de cores (é isso que eu quero)
É isso que eu quero alcançar sem ter que iniciar o Vim
vim -u NONE
.Cores normais
Recebo essas cores quando:
- Normalmente inicio o Vim (esse é o meu esquema de cores padrão).
Eu ligo
:set t_Co=0
.
Vale a pena notar que isso não muda nada quando eu uso meu esquema de cores monokai personalizado. Ele altera a aparência no esquema de cores padrão, como você pode ver em 5.O engraçado é que a saída de
:verbose set t_Co?
chamado posteriormente é ot_Co=256
que indica que literalmente nada mudou.Eu inicio o Vim com
TERM=xterm vim
.
Cores padrão
Recebo essas cores quando:
- Eu ligo
:colorscheme default
.
- Eu ligo
O Vim removeu a maioria das cores, mas não volta aos padrões do terminal
Recebo depois:
- A ligar
:syntax off
.
- A ligar
Quase nenhum esquema de cores
Eu recebo isso depois de executar esses 4 comandos, um após o outro:
" The effect is more visible on the default colorscheme " than on my molokai colorscheme. :set t_Co=0 :colorscheme default :hi clear
Quando corro
:hi LineNr
depois, recebo:LineNr XXX term=underline ctermfg=6 guifg=Brown
Sequências e tipos sublinhados em um arquivo de origem C
Após a aplicação
:set term=vt100
.Redesenho quebrado no Vim
O Vim quebrou após a chamada: set term = builtin_dumb (vídeo)Depois de aplicar o
:set term=builtin_dumb
meu Vim esquece como redesenhar linhas à medida que me movo usando je k.Examine os padrões do meu terminal
É isso que recebo depois de executar
echo -e " \033[0;4mfoo\033[0;0mbar"
no meu terminal.
fonte
vim -u NONE
, herda os padrões do terminal. Obrigado por apontar isso.:set t_Co=0
, imediatamente seguido por:verbose set t_Co?
O que está definido para t_Co? (Gostaria de saber se, de alguma forma, isso não está sendo definido corretamente: minhas únicas suposições são que possivelmente você tenha um autocommand que a redefina, ou que haja um bug que esteja fazendo com que ela não seja definida.):set t_Co=0
que não funciona quando o esquema de cores está definido como monokai.Respostas:
Desativando cores totalmente
Se você quiser Vim para não usar cores em toda , você só precisa executar o comando:
Isso indica ao Vim que ele está sendo executado em um terminal que não suporta cores; portanto, o Vim produzirá apenas texto em preto e branco (que será exibido pelo seu terminal nas cores padrão).
No entanto, observe que, após alterar a
t_Co
configuração, o esquema de cores atual é recarregado (para que ele possa fazer as alterações apropriadas nas cores definidas). O esquema de cores "monokai" que você está usando inicia com a linha:set t_Co=256
, redefinindo imediatamente a opção.Eu diria que esse é um comportamento incorreto e deve ser arquivado como um bug no mantenedor do esquema de cores. Obviamente, eles podem discordar e argumentar que, como o esquema de cores requer 256 cores, não faz sentido tentar usá-lo em um terminal que não suporta isso (e que essa linha ajuda o monokai a funcionar corretamente quando o Vim está sendo executado). terminal configurado incorretamente).
De qualquer forma, você precisará alterar o esquema de cores do monokai antes de definir a
t_Co
opção, como você descobriu.Restringindo cores às usadas normalmente no shell
As cores que o Vim usa para sua saída podem ser definidas e visualizadas com o
:highlight
comando A execução:highlight clear
redefine os padrões do Vim (efetivamente o mesmo que a execução:colorscheme defaults
)Trecho de
:help :highlight
:(Observe o comentário sobre a
'background'
opção.)Se isso não produzir a saída desejada, você terá algumas opções.
Se você estiver atualmente usando o Vim no modo de 256 cores, tente usar o modo de 16 cores, pois isso resultaria na seleção do Vim na paleta de cores que você provavelmente verá quando estiver no shell.
A maneira limpa de fazer isso é executando o Vim com um conjunto de variáveis $ TERM diferente. O valor que você precisa usar depende do seu terminal, mas, por exemplo, se você
$TERM
é normalmentexterm-256color
, executar o vim com o seguinte comando fará o seguinte:(Você também pode obter um efeito semelhante de uma maneira mais hacky, configurando a opção de terminal diretamente no vim:.
:set t_Co=16
)Como alternativa, se apenas alguns itens específicos forem coloridos incorretamente, você poderá alterar as cores desses itens com o
:highlight
comando por exemplo, para remover a cor de fundo da linha do cursor:Se você não tiver certeza de qual grupo precisa alterar, basta executar
:highlight
sem argumentos ou executar::so $VIMRUNTIME/syntax/hitest.vim
para abrir uma nova janela exibindo todos os realces atuais.Consulte as seções na parte inferior desta resposta para obter dicas sobre como fazer isso rápido com um comando personalizado ou configurando um novo esquema de cores.
Apagamento da cor de fundo (BCE)
Se você tiver um problema com o plano de fundo com aparência diferente quando ele contém texto, pode estar encontrando BCE (Apagamento da cor de plano de fundo). Você pode desativar isso com o comando:
Há uma pergunta específica sobre isso aqui , e o problema é abordado em mais detalhes nesta postagem do blog .
Atualização (Substituindo sublinhados):
De nossa discussão nos comentários, ficou claro que um dos problemas que você tem é que seu terminal exibe texto sublinhado em uma cor diferente. Você tem duas opções para solucionar isso:
Corrija a configuração do terminal para renderizar texto sublinhado da mesma cor! Eu não posso te ajudar com isso.
Desative o sublinhado no Vim. Você pode fazer isso com o
:highlight
comando: por exemplo, o seguinte removerá todas as cores / formatações dos números de linha:Desativando as cores com um comando
Para fazer isso rápido, você pode configurar um comando para executar todas as etapas necessárias de uma só vez:
Criando um novo
colorscheme
Como alternativa, você pode criar um novo esquema de cores "NoColorsNoUnderlines" em que desativa os sublinhados conforme apropriado. Para obter instruções sobre como fazer isso, execute o comando:
Você pode usar esse esquema de cores em preto e branco como ponto de partida.
fonte
colorscheme default
. Junto comsyntax off
isso é quase o que eu desejo. Exceto que (1) a linha do cursor ainda está sublinhada na linha atual e a coloca branca; (2) os números das linhas ainda estão coloridos.:set t_Co=0
fará isso por você.vim -u NONE
começa com o plano de fundo e o primeiro plano do terminal, mas não carrega nenhum vimrc. Gostaria de saber o que devo desativar para obter esse efeito.set t_Co=0
quebra alguns recursos do Vim, como^X^O
e ainda usa o destaque básico dos termos (negrito, sublinhado).Você pode usar algo como nofrils e ajustar o
hi Normal cterm=none ctermfg=none ctermbg=none
. Fora isso, não vejo outra maneira, sem estragar sua experiência com o Vim.fonte