Emacs, obtendo a saída da área de eco

1

Como posso inserir diretamente o texto exibido na área de eco? (também erroneamente chamado de minibuffer).

Quando, por exemplo, executo (+ 2 2) em um buffer e o executo com C-x C-e , ele exibe corretamente o resultado '2' na área de eco. Há também um '2' no buffer de mensagens. Eu gostaria que este '2' inserido abaixo da linha executada, no mesmo buffer, ou algo assim.

Existe um comando para, por exemplo, canalizar a área de eco para o buffer ou copiar a última linha do buffer de Mensagens para o presente buffer de trabalho?

    
por Quora Feans 02.02.2014 / 17:21

2 respostas

2

Em lisp-interaction-mode , que é o modo padrão para o buffer *scratch* , você pode usar eval-print-last-sexp ligado a C-j .

Editar:

Em qualquer buffer, você pode alternar para lisp-interaction-mode com M-x: lisp-interaction-mode [RET]

Agora, C-j deve estar vinculado por padrão a eval-print-last-sexp , a menos que a ligação seja sombreada por outro modo. Você pode verificar a descrição rápida do modo principal atual com C-h m .

Se estiver sombreado ou simplesmente não ligado, você pode eval

(global-set-key (kbd "C-c p") 'eval-print-last-sexp)

com C-x C-e . Isso ligará o comando a C-c p .

Para tornar a alteração permanente, escreva-a no arquivo .emacs .

    
por 02.02.2014 / 18:17
1

Você precisa usar um dos comandos insert do EMACS. Para realizar o que você ilustrou em seu exemplo simples, você precisaria fazer o seguinte.

(insert-string (number-to-string (+ 2 2)))
    
por 02.02.2014 / 18:02

Tags