Queria examinar partes diferentes de um buffer em dois quadros diferentes, pois tenho dois monitores de formas diferentes nas quais não consigo abranger facilmente um único quadro. Alguns sites me levaram a usar o Google clone-indirect-buffer
, o que funciona muito bem.
No entanto, buffer-file-name
para o novo buffer é nil
. Como posso determinar com segurança o nome do arquivo do buffer original (do qual este é um clone)?
buffers
files
indirect-buffers
rneatherway
fonte
fonte
C-x b
foco, então o comutador muda para o quadro que já mostra o buffer.Respostas:
Eu mantenho o manual do Emacs e o manual do Elisp na discagem rápida para perguntas como estas.
No manual Elisp sobre buffers indiretos :
Você provavelmente quer
(buffer-file-name (buffer-base-buffer))
ou algo assim.fonte
defadvice
opção, no entanto. ;)Esta é uma resposta indireta à sua pergunta - não sei como descobrir qual é o nome do arquivo do buffer original sem fazer o seguinte. (EDIT: a resposta de @ purple_arrows preenche os detalhes: você pode usá-lo
buffer-base-buffer
. Aceite essa resposta como a mais correta.)O conselho a seguir associará o nome do arquivo do buffer original a cada um de seus clones indiretos:
Agora, cada um dos clones tem o mesmo nome de arquivo que o buffer original.
Eu uso muito buffers indiretamente clonados e gostaria de poder, por exemplo, salvar o arquivo associado quando estou trabalhando com qualquer um dos buffers, em vez do original. Este conselho foi minha solução para o fluxo de trabalho desejado.
fonte