如何在emacs helm-mode中复制文件的路径

时间:2015-09-22 17:01:57

标签: emacs copy-paste emacs-helm

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

<down-mouse-1> is undefined

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

2 个答案:

答案 0 :(得分: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(因为他们非常有趣),您可以观看here

答案 1 :(得分:1)

in this other thread给出的答案可能看起来更简单。

简而言之:使用迷你缓冲区中选择的文件使用C-u C-c C-k。这会调用helm-kill-selection-and-quit。文件的完整路径被复制到杀戮戒指,可以粘贴在Emacs或其他地方。