【问题标题】:delete line backwards (Emacs)向后删除行(Emacs)
【发布时间】:2020-12-23 17:46:12
【问题描述】:

这可能是基本的,但我真的试图找到答案。 “C-k”从光标处删除到行尾,但是否有类似的快捷方式可以从光标点向后删除一行? 最好的

【问题讨论】:

    标签: emacs


    【解决方案1】:

    尝试C-u 0 C-k - 即带有前缀 0 的 C-k 从点到行首杀死。有关详细信息,请参阅 C-k(kill-line)的文档。

    【讨论】:

    • 无法让 C-0 C-k 在我的 OS X emacs 上工作;只打印 0 并杀死其余的行。
    • @The Unfun Cat:奇怪,它对我有用(Linux 上的 GNU Emacs 24)。我没有 Mac,所以无法检查是否可以复制问题。
    • 我使用的是 GNU Emacs 22.1.1 (mac-apple-darwin),这可能是原因。
    • alt-0 C-k 也适用于命令行 emacs 风格!很有用
    • 截至 2017 年 4 月,在 OS X 10.11 上,C-0 C-k 在 minibuffer 中工作,但只有 C-u 在 bash 控制台中发挥​​作用
    【解决方案2】:

    正如其他答案所暗示的那样, C-0C-k 从点到行首杀死。有关详细信息,请参阅 C-k 的documentation (kill-line)。您可能还想使用 C-S-backspace 来终止点前后的整行,其 evals kill-whole-line。

    另一个方便的杀死方法是重新绑定kill-region,它默认为C-w,而是将函数backward-kill-word绑定到该键,然后模仿readline的行为C-w (unix-word-rubout)。在将 quoted-insert 移动到 A-q 之后,我将 kill-region 重新绑定到 C-q。是的,这需要移动一些键,但如果你尝试一下,我想你会发现它很方便。

    【讨论】:

    • 在 Minibuffer 中也能正常工作。
    【解决方案3】:

    这是 asjo 的答案绑定到一个键:

    (global-set-key "\M-k" '(lambda () (interactive) (kill-line 0)) ) ;M-k kills to the left
    

    【讨论】:

    • 我自己也做了同样的快捷方式,从长远来看它非常方便。我还发现M-m M-k 从长远来看更方便:)
    【解决方案4】:

    我尝试使用负数和 C-k 作为参数的 C-u。有效。
    例如删除光标前4行,试试C-u -4 C-k

    【讨论】:

    • 很有意思,没想到这个,但是我本来想找个简单的方法,把当前行删除,光标在末尾,但是这样可以把光标带到各种开头它背后的线条,概括了伟大的事物
    【解决方案5】:

    这并不完全是一行的开头,但您可能想查看hungry-delete 包。安装,然后将以下内容添加到 init 文件中:

    (add-hook 'after-init-hook (lambda ()
      (require 'hungry-delete)
      (global-hungry-delete-mode)))
    

    之后,DEL 将删除直到下一个非空白字符,Backspace 也是如此,但方向相反。

    【讨论】:

      【解决方案6】:

      M-0C-k(因为 C-0C-k 在我的电脑上不起作用)。

      删除行首的所有空格:

      M-mM-0C-k.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多