Ctrlk可以删除光标当前位置到行末的所有内容。有没有相应的方法可以删除光标当前位置到行首的所有内容呢?
对于我来说,Ctrl-0Ctrl-k可以达到您想要的效果。我认为这是默认配置,肯定不是我修改过的。
如果这不起作用,请尝试Ctrl-u0Ctrl-k。同样,这似乎是我的安装(Emacs 24.x,Mac OS X)中Emacs的默认行为。
如果您更喜欢较少的按键绑定(而不是单独使用删除行的按键,或者必须调用前缀参数),您可以使用crux-smart-kill-line,它将“杀死到行尾并在下一次调用时杀死整行”。但如果您更喜欢删除
而不是杀死
,则可以使用以下代码。
对于点到字符串操作(杀死/删除),我建议使用zop-to-char
(defun aza-delete-line ()
"Delete from current position to end of line without pushing to `kill-ring'."
(interactive)
(delete-region (point) (line-end-position)))
(defun aza-delete-whole-line ()
"Delete whole line without pushing to kill-ring."
(interactive)
(delete-region (line-beginning-position) (line-end-position)))
(defun crux-smart-delete-line ()
"Kill to the end of the line and kill whole line on the next call."
(interactive)
(let ((orig-point (point)))
(move-end-of-line 1)
(if (= orig-point (point))
(aza-delete-whole-line)
(goto-char orig-point)
(aza-delete-line))))
Emacs 学习曲线陡峭。当新用户遇到这个问题时,她应该记录一个由 2 个按键组成的宏:Shift+Ctrl+a 和 Ctrl-w(剪切),给它命名、保存并设置一个键绑定,以便在后续的 Emacs 会话中使用该宏。
C-k
,'前缀'C-0
似乎没有任何效果) - One Two ThreeM-0 C-k
我认为这是你指的第一个键绑定。M-arg
通常用作C-u arg command
的速记。 - user797257C-u
。 - Jake Ireland