O realce da sintaxe falha no clone-indir-buffer-other-window

7

Eu normalmente uso buffers indiretos enquanto edito o código python no modo python, crio-os executando clone-indirect-buffer-other-window. Enquanto o realce da sintaxe do buffer principal parece bom, às vezes ele está errado no indireto. Especificamente, parece que algumas aspas finais são ignoradas e grandes pedaços do meu código são coloridos como se fizessem parte de uma longa cadeia literal.

Não encontrei referências disso em nenhum outro lugar e não tenho idéia de por que isso poderia estar acontecendo. Alguém sabe por que isso é e / ou como resolvê-lo?

Essa pergunta pode estar relacionada, seja ele não mencionar buffers indiretos (eu só tenho esse problema com eles), e também meu buffer indireto não atualiza para a sintaxe apropriada, destacando mesmo se esperar alguns minutos.

jmlorenzi
fonte
Por que você está usando um buffer indireto em primeiro lugar? Você pode mostrar o buffer principal em duas janelas diferentes, se é isso que você procura.
Lindydancer 8/08
11
Se o problema existir com a versão pública mais recente do Emacs, considere arquivar um relatório de erros com o máximo de detalhes possível sobre o problema. Se você estiver usando uma versão mais antiga do Emacs, tente a versão pública mais recente. Se você estiver usando o Emacs Trunk, considere também arquivar um relatório de erros com muitos detalhes.
lawlist
@Lindydancer buffers indiretos são mais úteis se eu quiser manter os dois locais fixos de uma longa tampão aberto depois de mudar minhas janelas para outros buffers
jmlorenzi
@lawlist Sim, vou brincar para obter mais detalhes e enviar o bug. Acabei de reproduzir o erro com inemacs -q
jmlorenzi

Respostas:

0

Buffers indiretos são péssimos. Podem olhar como "apenas o que eu preciso", mas é muito raramente o caso, e, em seguida, mais cedo ou mais tarde você topar com problemas. Acho que eles são um incômodo atraente .

Eu recomendo que você tente descobrir por que deseja usar buffers indiretos e tente procurar outras maneiras de obter o mesmo resultado.

Por exemplo, você diz:

indirect buffers are more useful if I want to keep two fixed places
of a long buffer open after switching my windows to other buffers

Existem muitas outras maneiras muito menos invasivas do que usar buffers indiretos. Por exemplo, usando registradores , favoritos ou talvez com um pacote que tente lembrar qual ponto foi usado para seus buffers individualmente em cada janela. Por exemplo, no ramo principal do Emacs, agora ativamos switch-to-buffer-preserve-window-pointpor padrão, o que deve fornecer um pouco do comportamento que você estava procurando através de buffers indiretos.

Stefan
fonte
11
Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem. - Do comentário
erikstokes
Se você não a reconhece como uma resposta válida, é porque você não está familiarizado o suficiente com buffers indiretos.
Stefan
@Stefan, enquanto você estiver certo, também não estará seguindo o formato solicitado deste site: se você puder responder à pergunta, escreva uma resposta. Se a pergunta for inválida e precisar ser alterada, escreva um comentário.
Trevoke
A pergunta é definitivamente válida, e já a ouvi muitas vezes, e é por isso que acho importante respondê-la como é, em vez de tentar convencer o autor a "corrigi-la". Prefiro perder alguns pontos de repetição do que seguir dogmaticamente alguma política.
Stefan
11
Eu concordo com Stefan. Pergunta e resposta são válidas. A resposta poderia ser formulada de maneira mais neutra. Por exemplo, "Buffers indiretos são péssimos. Eles" podem ser substituídos por "Buffers indiretos".
Tobias
0

Você pode tentar o pacote Just Another Cloning .

Instalação: Coloque jac.elem qualquer diretório do seu load-pathe coloque

 (autoload 'jac "jac")

no seu arquivo init.

Uso: Com o buffer você deseja clonar o tipo M-x jac RET.

Ele copia o conteúdo do buffer original e sincroniza as modificações de texto dos dois buffers, mas não toca nas propriedades do texto. Dessa forma, o fontlock pode fazer seu trabalho nos dois buffers de forma independente. Isso possibilita diferentes modos principais, inclusive o destaque.

Talvez também evite o bug com o destaque de diferentes regiões de um arquivo phyton. (Apenas tente.)

Tobias
fonte