杀死/清除文本直到缓冲区结束的替代方法是什么?

时间:2013-07-16 06:13:30

标签: emacs

他们可以替代 C-Spc M-> del / 退格来杀死文字,可能只是删除没有污染和膨胀杀死环,直到缓冲区结束?

要求,因为我没有找到上述方法,相当优雅。

修改

wvxvw's suggestion是一个很好的但我发现它不适用于超大文件,因为Emacs不允许堆叠超过十四 Cu

3 个答案:

答案 0 :(得分:4)

M-> 在跳转到缓冲区末尾之前设置标记,因此只需 M-> M-x删除区域会这样做。如果你做了很多,你可以将一个键绑定到后者。

答案 1 :(得分: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 :删除了有关选择的部分

答案 2 :(得分: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))))

我曾经写过blog post一段时间。它类似于Bruce的答案,但是您可以选择向命令发送前缀参数(C-u),在这种情况下,文本将被“剪切”(添加到杀死环),而不是仅删除。