我使用emacs 24(OSX)并且在移位选择方面存在问题。
如果我用鼠标选择一个区域,文本会突出显示并自动保存到杀死环(我可以立即将其拉出)。
通过移位选择,文本会突出显示,但我必须手动保存文本(M-w
)以便能够将其拉出来。
换档选择是否有任何方法可以高亮显示文本并将其保存到杀伤环上?
答案 0 :(得分:2)
默认情况下,使用鼠标选择文本不会在kill ring上放置任何内容(将其复制到X剪贴板)。
您可以通过多种方式自定义Emacs与剪贴板的交互方式。参见:
C-h i g (emacs) Cut and Paste
RET
有没有什么方法可以让班次选择高亮显示文字并将其保存到杀戮戒指上?
我不确定是否有任何方法可以检测到您已停止选择内容,但您可以建议handle-shift-selection
设置临时post-command-hook
以运行自定义函数来放置区域在剪贴板中(并删除post-command-hook)。
编辑坚持下去,您所描述的内容正是Ubuntu上Emacs 24.1中发生的事情。
如果我在Emacs中选择一些文本然后在任何应用程序中单击鼠标中键,我会粘贴所选文本。
在运行emacs -Q
编辑2:啊,但你不是指鼠标,是吗?
这个怎么样?
(defvar my-shift-selection-in-progress nil)
(make-variable-buffer-local 'my-shift-selection-in-progress)
(defadvice handle-shift-selection
(before my-shift-selection-to-kill-ring-advice)
"Automatically copy shift-selected text to the kill ring.
If `interprogram-cut-function' is non-nil, also save the text for a window
system cut and paste.
See `my-shift-selection-to-kill-ring'."
(when (and shift-select-mode
this-command-keys-shift-translated
(not my-shift-selection-in-progress))
(add-hook 'post-command-hook 'my-shift-selection-to-kill-ring nil t)))
(ad-activate 'handle-shift-selection)
(defun my-shift-selection-to-kill-ring ()
"Post-command callback for my-shift-selection-to-kill-ring-advice."
(if this-command-keys-shift-translated
(kill-new (filter-buffer-substring (region-beginning) (region-end))
my-shift-selection-in-progress)
(remove-hook 'post-command-hook 'my-shift-selection-to-kill-ring t))
(setq my-shift-selection-in-progress this-command-keys-shift-translated))
答案 1 :(得分:0)
“从班次选择中自动杀死”的问题是确定班次选择何时结束(此时你最终可以杀人)。