Alterar fonte para o prompt de comando não herdado no Windows 10 com charset não-ASCII - Properties vs default values?

3

Estou mexendo com o novo prompt de comando do Windows 10. Eu estou com a página de código 936 (GBK).

Eu digo "novo" porque vejo nas Propriedades de cmd que há uma verificação para run legacy command prompt (need restart) , por padrão desmarcada, então acho que essa que estou usando é "mais recente".

A questão é que pesquisar na web só me dá algumas maneiras de adicionar uma fonte no registro para fazer com que legacy cmd a reconheça e mostre nas configurações de "Propriedades" / "Valores padrão", como este :

link

Ele menciona para adicionar uma entrada de fonte ao local mostrado em:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont

para tornar o Windows ciente dessa fonte. Observo que as fontes já listadas aqui são as mesmas que eu vejo no cmd legado. Em cmd normal, vejo mais fontes.

Notequenafotoeuabriumpromptdecmdherdado,comalgumasfontesdoTerminal,enacaixadediálogodeconfiguraçõesdePropriedades,asfontesqueeupossoescolhersãoConsolaseLucidaConsole,damesmaformaquenoregistro.

E,seeualternarparaocmdnormal,hádoiscasos:

  1. Seeuoptarporeditar"Propriedades", vejo menos fontes e a alteração funciona.
  2. Se eu optar por editar "Valores padrão", vejo mais fontes, mas a alteração não entra em vigor.

Nas propriedades:

EupossoescolherentreYaheiConsolasHybrideoutrasfontesaqui,ecmdrespeitaminhasconfiguraçõesealteraafonteimediatamente.

Emvalorespadrão:

Vocêpodevermaisfontesmonoespaçadasaqui,comoDejavuSansMono,Monacoeassimpordiante,masnãopodealterarcmdparaessasfontes.

Eunãoseiadiferençaaqui,masissonãofazsentido.Algumasconfiguraçõesquenãopodemserrespeitadasnãodevemexistir,semmencionaraconfusãocausada:"Propriedades" e "Valores padrão" são idênticos.

O que eu quero, é mudar a fonte em normal cmd para ser Monaco, ou Dejavu Sans Mono. Se não for possível, no cmd legado.

E, a propósito, se alguém puder esclarecer a diferença entre "Propriedades" e "Valores padrão", seria ótimo.

    
por WesternGun 21.04.2017 / 23:19

2 respostas

2

Agora eu acho a resposta, obrigado por ajudar. Não aceitarei minha própria resposta em uma semana para ver se alguém pode postar uma resposta melhor.

O problema está na página de código. Configurei meu idioma de exibição padrão para o Windows 10 como chinês simplificado, com página de código GBK (936). Então, em cmd windows, o sistema pretende mostrar todas as informações em chinês. Na verdade, vemos que nas primeiras imagens que eu postei na pergunta, as linhas iniciais de informações de ajuda são mostradas em chinês.

Para mostrar algo em chinês, você precisa encontrar uma fonte adequada para fornecer as informações de dicas para caracteres chineses. Aparentemente, o Windows verifica todas as fontes antecipadamente para ver seu suporte aos caracteres de página de código atuais. Quando a fonte definida não tiver suporte chinês, ela abandonará essa fonte e retornará à fonte padrão. Além disso, ele eliminará essa fonte da lista de configurações de fonte no painel Padrão. Yahei Consolas Hybrid suporta inglês e chinês, portanto, ela pode ser mostrada na lista em Configurações padrão e Propriedades. No entanto, Monaco e Dejavu desapareceram do painel Default, mas permanecem no painel Properties.

Por que não limpa a lista de fontes de propriedades também? Porque, como dizem os comentários, "Propriedades" aplica-se à atual cmd windows / session, enquanto as configurações "Padrão" controlam todas as sessões cmd subseqüentes, por exemplo, mais globais. Garante que, se o usuário alterar a página de código no tempo de execução, não precisará fazer a verificação da lista de fontes novamente para Propriedades, e o usuário poderá alterar a fonte diretamente. Isso é exatamente o que acontece na minha caso. Devo dizer que o Windows fez muito trabalho de fundo aqui.

Você pode ver na captura de tela a seguir que eu mudei a página de código com chcp 1252 e a alteração da fonte entrará em vigor imediatamente. É Monaco agora.

Então,aquestãosevoltapara:"Como mudar a página de código ao iniciar uma janela cmd ?" E eu encontrei uma pergunta muito útil:

Alterar a página de códigos padrão do console do Windows para UTF -8

E simplifico a alteração para:

  1. Crie um arquivo .reg , nomeie-o como desejar.
  2. Copie essas linhas para o arquivo e salve.

Basta digitar:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"Autorun"="chcp 1252>>nul"

1252 pode ser outros valores. >>nul é para evitar a impressão

Active code page: 1252

toda vez que você iniciar o cmd .

  1. Execute o arquivo para importar as configurações.
  2. Executar cmd . Agora você pode definir sua fonte facilmente em Propriedades. (Observo que, se você executar de um link na área de trabalho, a fonte será Simsun , mas se você executar a partir da âncora na barra de tarefas, será Yahei Consolas Hybrid . Não sei por quê. Mas você pode alterar a fonte .

Definir a fonte padrão no padrão não funciona para sessões subseqüentes de cmd , no entanto. Ele ainda cai para Simsun , então não consigo alcançar "Abrir cmd e com Monaco font". Eu acho que é porque o Windows verifica a página de código do idioma atual com fontes, não a página de código "autorun" com fontes. , alterando o idioma padrão pode estar funcionando, mas não é isso que eu quero. Ainda estou com esse tópico.

    
por 22.04.2017 / 23:51
0

Agora, em Configuração de região (Região / Administrativo [nome da guia] e, em seguida, Alterar localidade do sistema ...), há uma caixa de seleção que diz "Beta: usar Unicode UTF-8 para suporte a idioma mundial". Verifique e provavelmente funcionará. Eu estou atualmente no Windows 10 compilação 17134.165.

    
por 04.08.2018 / 12:56