如何在不破坏当前行的情况下添加新行?

Min*_*Pan 33 emacs

在vim中,我可以通过输入'o'在命令模式下执行此操作,这将在光标下添加一个新行,并进入插入模式.

在emacs中是否有相同的内容?

非常感谢你.

drm*_*ror 38

C-o open-line其他人建议的命令与ovi中的命令不完全相同,因为它会拆分当前行并让光标保留在当前行中.

o使用两个笔划获得与vi完全相同的效果:C-e RET将光标移动到当前行的末尾,然后插入一个新行,将光标留在该行的开头.

你可以将该序列绑定到它自己的键(可能覆盖现有的定义C-o),但我怀疑它是否值得麻烦.

(顺便说一句,对称序列C-a RET给你vi的资本效果,在当前行之前O插入一行.)

  • 更好的命令是`Ce Co`,因为如果启用了自动填充模式,这将避免包裹当前行. (3认同)

cod*_*e4j 20

你解决了问题吗?

我刚刚解决了这个问题.随意使用此代码:)您可以绑定到您喜欢的每个键global-set-key,也可以替换newline-and-indent,newline 以防您不喜欢缩进新行.

;; newline-without-break-of-line
(defun newline-without-break-of-line ()
  "1. move to end of the line.
  2. insert newline with index"

  (interactive)
  (let ((oldpos (point)))
    (end-of-line)
    (newline-and-indent)))

(global-set-key (kbd "<C-return>") 'newline-without-break-of-line)
Run Code Online (Sandbox Code Playgroud)

  • 这是最好的emacs:你可以通过elisp来实现你想要的一切.没有限制也没有限制.您可以制作适合您的emacs,因为它可以高度定制! (3认同)

phi*_*llc 7

我使用前奏,S-RET相当于vi o,C-S-RET相当于vi O.