如何在emacs舵模式下复制文件的路径

Wan*_*ind 5 emacs copy-paste emacs-helm

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

<down-mouse-1> is undefined

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

小智 5

其他线程中给出的答案可能看起来更简单。

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


fhd*_*sni 1

我猜你想从迷你缓冲区复制到系统剪贴板。迷你缓冲区键绑定与其他缓冲区没有什么不同。如果在其他缓冲区中您使用M-w复制该区域,它也应该在迷你缓冲区中工作。请注意,如果您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))
Run Code Online (Sandbox Code Playgroud)

(defun paste-from-clipboard ()
  (interactive)
  (setq x-select-enable-clipboard t)
  (yank)
  (setq x-select-enable-clipboard nil))
Run Code Online (Sandbox Code Playgroud)

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

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