Quais são os benefícios do uso de buffers indiretos ? Sob quais circunstâncias eles são úteis?
fonte
Quais são os benefícios do uso de buffers indiretos ? Sob quais circunstâncias eles são úteis?
Para ver e editar vários locais do mesmo buffer. Portanto, você não precisa rolar um buffer longo, mas simplesmente alternar a janela para a região visível. Cada buffer clonado também possui anel de marca diferente, estreitamento e outras propriedades do buffer. Se você não usar o buffer indireto, mas criar outra janela do mesmo buffer, tudo será compartilhado e você não poderá executar outros recursos avançados além da visualização e edição de locais diferentes. Por exemplo, com um buffer indireto, você pode dobrar todo o bloco de código, criar efetivamente uma "árvore de tags" sem afetar o buffer original. Usando uma janela, os dois buffers nas duas janelas são dobrados porque os dois são iguais.
Em suma, o buffer indireto é um buffer completamente diferente que compartilha o mesmo texto e arquivo no seu buffer original; portanto, quando você salva o buffer clonado, ele também salva o arquivo original.
Um caso de uso está usando um modo principal diferente em uma parte de um arquivo.
Por exemplo, eu estava trabalhando com documentos xml com código dentro de certos elementos. Queria poder editar o documento inteiro como se fosse xml, mas ainda tenho todos os principais recursos de modo para a linguagem de programação incorporados em certos elementos. Por isso, reduzi o corpo desses elementos em um buffer indireto que estava executando o modo principal apropriado.
Aqui está uma função da minha configuração que eu uso para fazer isso:
Nota: isso não é perfeito, coisas como o bloqueio de fonte exigem trabalho adicional especial para uso neste cenário.
fonte
Os buffers indiretos oferecem várias visualizações do mesmo buffer, em particular, várias restrições, cada uma das quais atua, em muitos aspectos, como um buffer separado.
Como o Comentário da biblioteca
narrow-indirect.el
diz:fonte