6

我在 emacs 中使用 helm-mode 打开文件。但是,当我尝试通过鼠标左键单击复制文件的路径(例如 /home/user1/Documents/file1.txt)并按住以将其粘贴到终端时,我收到一条消息说

<down-mouse-1> is undefined

我猜 helm 不支持此处描述的鼠标操作,在这种情况下,如何从 emacs(在 helm 模式下)复制文件的路径以将其粘贴到终端

4

2 回答 2

4

在另一个线程中给出的答案可能看起来更直接。

简而言之:在 minibuffer 中选择的文件使用C-u C-c C-k. 这调用helm-kill-selection-and-quit. 文件的完整路径被复制到 kill ring 中,并且可以粘贴到 Emacs 或其他地方。

于 2018-01-02T14:59:55.280 回答
1

我猜你想从 Minibuffer 复制到你的系统剪贴板。Minibuffer 键绑定与其他缓冲区没有什么不同。如果在其他缓冲区中M-w用于复制区域,它也应该在 Minibuffer 中工作。请注意,如果您nil编辑,则x-select-enable-clipboard需要先启用它。我有以下功能init.el

(defun copy-to-clipboard()
  (interactive)
  (setq x-select-enable-clipboard t)
  (kill-ring-save (region-beginning) (region-end))
  (setq x-select-enable-clipboard nil))

(defun paste-from-clipboard ()
  (interactive)
  (setq x-select-enable-clipboard t)
  (yank)
  (setq x-select-enable-clipboard nil))

不幸的是,您不能在 helm-mode 中使用鼠标选择文本(即创建一个区域);您需要set-mark-command(默认情况下C-SPCC-@)并移动您的点(即光标)。shift或者像大多数其他文本编辑器一样按住并移动该点。还有一个mark-word命令(默认情况下M-@)逐字扩展区域。

我还录制了一个asciinema(因为它们很有趣)你可以在这里观看

于 2017-04-26T07:49:07.130 回答