在 Emacs 中,当我键入M-h
( mark-paragraph
) 时,Emacs 会选择点下的段落以及额外的行(通常位于段落的正上方)。有没有办法让 Emacs 只选择段落?
笔记:我在 下注意到了这种行为shell-script-mode
,但没有检查其他主要模式是否也会发生这种情况。
答案1
这就是 Emacs 区分段落的方式。我不会反对它。这样,如果您继续按 M-{,更多段落会被无缝标记。如果你真的想缩小一行,只需 Cn。
我并不是有意无礼,但是从 Windows 背景开始使用 Emacs,我浪费了很多时间试图让它工作确切地我多么想要。 CUA、删除选择等等等等,我学到了很多,但也浪费了很多时间。
现在我在禁用大部分功能的情况下运行 Emacs,并且我实际上发现“Emacs 范例”有效。大多数时候。
答案2
我也是 Vim 用户,一开始我想要类似的行为,但多想一点,我发现 Emacs 的做法更符合逻辑,想象一下这种情况:你想删除另外两个段落之间的一个段落,如果你只需选择没有多余行的行,您将在提醒段落之间出现两个空行。
即使这样,我也有一个函数只选择段落,没有额外的行:
;; mark just the paragraph
(defun dg-mark-paragraph ()
(interactive)
(mark-paragraph)
(goto-char (region-beginning))
(when (= (string-match paragraph-separate (thing-at-point 'line)) 0)
(forward-line)))
(global-set-key (kbd "M-8") 'dg-mark-paragraph)