emacs: na string selecionada pelo terminal se perde na ctrl-k

3
  1. Eu seleciono um nome de arquivo absoluto com o mouse em um terminal
  2. Eu quero abrir este arquivo em um emacs em execução: ctrl + x ctrl + f
  3. Mini buffer do Emacs: contém "~ /...."
  4. Eu insiro ctrl-a ctrl-k para excluir "~ /...."
  5. Eu quero colar com o botão do meio
  6. "~ / ...." é inserido, não o nome do arquivo da etapa um.

Como posso impedir o emacs de sobrescrever o texto que selecionei com o mouse?

    
por guettli 11.06.2014 / 13:11

3 respostas

2

Se eu entendi seus requisitos corretamente, provavelmente a solução mais fácil é arrancar (colar) o nome do arquivo copiado no início do mini buffer antes executar o kill-to-end-of-line. em vez de Ctrl + a Ctrl + k , do Ctrl + a Ctrl + y Ctrl + k . Você poderia substituir o Ctrl + y por um clique com o botão direito do mouse no mesmo ponto, se preferir usar o mouse.

Como alternativa, de acordo com essa resposta do stackoverflow delete (NÃO elimine) uma linha no emacs , deve ser possível adicionar automaticamente -copied text to the emacs kill-ring adicionando

(setq save-interprogram-paste-before-kill t)

para sua configuração do emacs - isto deve tornar o nome do arquivo disponível para o yanking rolando de volta através do kill ring usando Meta + y

    
por 11.06.2014 / 20:22
0

Isso também me incomodou no passado.

A solução que encontrei foi tornar Ctrl + K um comando delete only. Isso funcionou para mim, já que eu nunca usei Ctrl + K para copiar e colar.

Originalmente publicado aqui

;; Ctrl-K with no kill
(defun delete-line-no-kill ()
  (interactive)
  (delete-region
   (point)
   (save-excursion (move-end-of-line 1) (point)))
  (delete-char 1)
)
(global-set-key (kbd "C-k") 'delete-line-no-kill)
    
por 25.07.2014 / 10:17
0

O EMACS converterá várias barras em um caminho raiz, por exemplo, // se torna /
Se você fosse

  1. deixe o texto que estiver no minibuffer
  2. anexe um /
  3. cole o caminho absoluto no minibuffer, anexando-o ao texto existente

O minibuffer terá um caminho como ~//path2file/file
O EMACS abrirá /path2file/file

Não é necessário reatribuir Ctrl + K , apenas aprender como o EMACS lida com nomes de arquivos no minibuffer.
Leia o tópico GNU EMACS manual "Minibuffers for File Names" aqui ; comece a ler o texto "Mas você não precisa matar o padrão";

    
por 25.07.2014 / 12:29