Desculpe, mas não vi sua pergunta antes.
Esse é precisamente um dos motivos da biblioteca Zones ( zones.el
).
Quando você restringe o buffer, cada restrição é adicionada a um anel de restrições, que inclui o buffer completo (sem restrição). As restrições podem ser aninhadas, mas não precisam ser. Eles podem ser quaisquer regiões.
Você pode alternar entre os estreitos (usando C-x n x x x...
). Você pode ir diretamente ao N- ésimo estreitamento anterior usando um prefixo numérico arg; por exemplo C-3 C-x n x
,. A planície é C-u
ampliada completamente (igual C-x n w
ou alternando para a entrada de anel sem restrição). C-0
esvazia o anel.
A linha de modo informa qual estreitamento (restrição de buffer) está atual.
Você pode até salvar o anel de restrições atuais do buffer persistentemente e restaurá-lo mais tarde. Se você usar a biblioteca Favorito + , poderá marcar um anel de restrições e restaurá-lo mais tarde, saltando para o favorito.
Para mais informações, consulte Várias restrições .
Consulte também Indireto estreito (biblioteca narrow-indirect.el
). Permite criar facilmente qualquer número de buffers indiretos que são clones do buffer principal e que são limitados a partes específicas dele.
widen
e a chamada para umrenarrow
comando hipotético . Talvez a melhor abordagem seja salvar os limites da região em algum lugar e ter um comando para marcar a última região salva.