当emacs * scratch *缓冲区打开时自动粘贴剪贴板内容

时间:2018-08-06 14:20:15

标签: emacs clipboard

大多数情况下,我打开不带参数的emacs都是为了操作剪贴板中的内容。 因此,我希望emacs启动并直接在打开的* scratch *缓冲区中显示剪贴板内容。

1 个答案:

答案 0 :(得分:1)

我将此添加到了.emacs中,似乎可以完成工作:

;; Opening *scratch* with clipboard contents (if clipboard contains text)
(condition-case nil
    (setq initial-scratch-message (clipboard-yank))
    (error (setq initial-scratch-message nil))
)

NB:由于* scratch *缓冲区将始终与剪贴板文本一起打开,因此您可能还希望将* scratch *缓冲区的默认主要模式更改为文本

;; Defaulting *scratch* buffer to text-mode
(setq initial-major-mode 'text-mode)

我最后还添加了此文件,以在打开一个空的.txt文件时执行相同的剪贴板粘贴

;; Opening empty txt files with clipboard contents (if clipboard contains text)
(add-hook 'find-file-hook 'paste-clipboard-for-empty-txt-files)
(defun paste-clipboard-for-empty-txt-files ()
  (when (and (string= (file-name-extension buffer-file-name) "txt")
                      (= (buffer-size) 0))
    (condition-case nil (clipboard-yank) (error nil))))