Capturando e analisando o buffer de corte do xterm no emacs

1

Eu gostaria de fazer um controle indireto para o Emacs (no Ubuntu Linux) para que eu possa roubar algum texto em um xterm com o cursor, cortando-o no buffer de corte X e, em seguida, executar uma macro no Emacs para analisar o corte o texto do buffer para procurar o texto que diz "linha XXXX", em que X é todos os dígitos e, em seguida, vá para essa linha no buffer atual do Emacs.

Acho que isso é possível usando emacsclient para obter o emacs para executar uma macro, depois a macro analisando o buffer de corte e, em seguida, emitindo um comando goto-line para o número que foi analisado.

Meu problema é que eu não sei como escrever o script emacs para ler o buffer de corte X e analisá-lo .. Eu tenho passado por exemplos de livros de receitas, mas nenhum parece se encaixar.

Meu objetivo é facilitar o desenvolvimento. Quando eu tenho uma mensagem de erro / informação / status impressa em um xterm, eu quero passar a mensagem de erro que diz algo como "erro de sintaxe na linha 2776" e apertar um atalho de teclado que o Ubuntu interpretará para iniciar o emacsclient, - Abra o Emacs para pegar o texto, analisá-lo e ir até o número da linha que acabei de passar. Somente este último passo de análise é a parte difícil.

(Sim, eu sei que você pode executar um shell dentro do emacs, mas isso não se encaixa no meu fluxo de trabalho)

Como eu faria o emacs olhar para aquele buffer de corte X e analisar o número da linha e emitir o comando "goto-line" para o buffer atual?

Obrigado!

    
por BobBanana 17.01.2010 / 23:11

2 respostas

1

(x-get-selection) é uma função elisp que retorna o atual texto selecionado para o X11.

Além disso, a maneira padrão de obter uma mensagem de erro e usá-la no emacs para poder saltar diretamente para o arquivo / linha especificado é executar a compilação M-x ou usar um comando que personalize o modo de compilação. O emacs já reconhece os resultados do gcc, g ++ e muitos outros programas. Com a compilação M-x, o emacs gera automaticamente links clicáveis para as mensagens de erro que reconhece, e com as versões mais recentes do emacs eles respondem ao clique esquerdo, em vez de usar o clique do meio.

    
por 28.01.2010 / 22:54
1

Se você pode analisar a saída com algum outro utilitário para obter o nome do arquivo e o número da linha, você pode facilmente abrir esse arquivo com o cursor na linha especificada, fazendo:

emacsclient +LINE_NUMBER FILE_NAME

Isso deve fazer com que o emacsclient pegue o buffer mais próximo e substitua-o por FILE_NAME em LINE_NUMBER.

    
por 18.01.2010 / 07:33