向后删除行 (Emacs)

37

这可能很基础,但我确实尽力寻找答案了。“C-k”从光标处删除到行末,但是否有类似的快捷键可以从光标点向后删除一行呢? 最好

6个回答

48

尝试使用 C-u 0 C-k 命令,即使用前缀0的C-k命令可将光标从当前位置删除至行首。有关C-k(kill-line)的更多信息,请参阅文档。


我无法在我的OS X Emacs上使用C-0 C-k;它只会打印0并删除该行的其余部分。 - The Unfun Cat
@The Unfun Cat:对我来说很奇怪,它在我的GNU Emacs 24上运行良好(Linux)。我周围没有Mac,所以我无法检查是否可以复制该问题。 - asjo
我正在使用GNU Emacs 22.1.1(mac-apple-darwin),这可能是原因。 - The Unfun Cat
3
alt-0 C-k 在命令行的 Emacs 风格中也可以使用!非常有用。 - Mat M
截至2017年4月,在OS X 10.11上,C-0 C-k在minibuffer中有效,但在bash控制台中只需使用C-u即可。 - agranov
在命令行中,alt-<minus> 对我来说可以向后删除,而alt-0则不行。不确定为什么。 - Deadly Pointer

10

正如其他答案所建议的那样,C-0C-k会从当前光标位置一直删完该行。有关更多信息,请参阅 文档 了解 C-k (kill-line)。您还可以使用 C-S-backspace 来删除光标前后整行内容,这将调用 kill-whole-line

另一个方便的方法是重新绑定默认为 C-wkill-region 函数,并将该键绑定到函数 backward-kill-word 上,这将模仿 readlineC-w 行为 (unix-word-rubout)。我将 quoted-insert 移动到 A-q 后,将 kill-region 重新绑定到 C-q。是的,这需要移动一些按键,但如果您尝试一下,我认为您会发现这很方便。


在迷你缓冲区中也可以正常工作。 - ceving

7

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

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

我自己也使用了同样的快捷方式,从长远来看,它非常方便。我还发现M-m M-k更加方便 :) - monotux

1
我试着使用负数和C-k作为参数来使用C-u命令,这样做是有效的。
例如,要删除光标前面的4行,请尝试使用C-u -4 C-k

非常有趣,从未想过这一点,但我打算找到一种简单的方法,在光标位于末尾的当前行上进行删除,但这可能会将光标移到其后面的各个行的开头,这样可以概括事物,非常棒。 - Vass

0

M-0C-k(因为C-0C-k 在我的电脑上无法使用)。

要删除行首所有空格:

M-mM-0C-k


0

这并不完全是到行首,但你可能想要查看hungry-delete包。安装后,将以下内容添加到初始化文件中:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接