1

C-SpcM->del它们是否是/用于杀死文本的替代方法backspace,可能只是删除而不会污染和膨胀杀死环,直到缓冲区结束?

问是因为我没有找到上述方法,非常优雅。

编辑:

wvxvw 的建议是一个很好的建议,但我发现它不适用于非常大的文件,因为 Emacs 不允许堆叠超过14 个 C-u.

4

3 回答 3

4

M->在跳转到缓冲区末尾之前设置标记,所以M-> M-x delete-region会这样做。如果您经常这样做,您可以将密钥绑定到后者。

于 2013-07-16T11:13:44.127 回答
2

您可以在 .emacs 中使用该 ELISP 函数

(defun bruce-kill-to-end ()
  (interactive)
  (let ((beg (point))
        (end (point-max)))
    (delete-region beg end)))

然后将其绑定到您喜欢的任何内容:

(global-set-key [f9] 'bruce-kill-to-end)

编辑 如果你有一个选择,它不是从当前光标开始,而是从选择开始

编辑 2:删除了关于选择的部分

于 2013-07-16T06:23:31.287 回答
0

我想出了以下解决方案:

(defun delete-to-end-of-buffer (add-to-kill-ring-p)
  "Deletes from point to end of buffer.
   If prefix argument is given, kill the region, adding it to the kill ring."
  (interactive "P")
  (if add-to-kill-ring-p
      (kill-region (point) (point-max))
    (delete-region (point) (point-max))))

不久前我写了一篇关于这个的博客文章。它类似于布鲁斯的答案,但为您提供了向命令发送前缀参数 (Cu) 的选项,在这种情况下,文本将被“剪切”(添加到杀伤环)而不是被删除。

于 2013-07-17T11:53:06.230 回答