我刚刚开始感受到emacs,但是当我按下返回键时,我很沮丧。我知道如果我按下C-j就会这样做,但我不能养成这种习惯。我不能。我需要回击,我讨厌每次重新选择。
我进入选项并发现C模式钩子和C ++模式钩子等 - 他们定义了两个键映射(10和13,我记得0A和0D是CR / LF因为我在它们中使用了很多程序) - 我想,因为一个人说“(lambda nil (define-key lisp-mode-map [13] (quote newline-and-indent))
”而另一个人说的是(quote newline)
而不是{{1}},我只是把 - 并且缩进放在它的末尾并且认为它会起作用。< / p>
但事实并非如此:我设置并保存,尝试,但无济于事。重启emacs,仍然没有成功。如何缩进我的代码呢?令人非常疯狂的是,emacs需要一个lisp学位才能根据你的基本需求进行配置。
另外,作为一个侧面问题:我如何复制并粘贴剪贴板? Killing / yanking很方便,但我讨厌每次都想要编辑 - >复制粘贴到其他地方。
- 编辑 -
好的,我将以下几行放入我的.emacs中并且有效:
(add-hook 'c-mode-common-hook (lambda () (local-set-key (kbd "RET") 'newline-and-indent)))
感谢您的帮助
答案 0 :(得分:19)
我将返回键设置为全局充当我的~/.emacs
文件中的新行和意图:
(global-set-key "\C-m" 'newline-and-indent)
适合我。
答案 1 :(得分:15)
正如那里建议的那样,将以下代码放在你的.emacs
中(defun set-newline-and-indent ()
(local-set-key (kbd "RET") 'newline-and-indent))
(add-hook 'c-mode 'set-newline-and-indent)
您可以自定义变量C Default Styl。在您的emacs中,转到选项 - &gt;自定义Emacs-&gt;特定选项,然后键入c-default-style并设置为您的选择。通过这样做,您不需要点击TAB。从行的开头键入,然后点击“;” ,它会自动缩进。
希望这有帮助
答案 2 :(得分:6)
除了其他建议之外,请尝试C-c C-a
切换自动换行功能,以便您的模式行显示C/la
。那你甚至不需要在大部分时间按Enter键;相反,当您键入分号或大括号时,会插入换行符并使您的代码缩进。有时您需要按Enter键,并且您没有获得自动注释(除非您按照另一个答案的建议重新绑定RET
)但是如果您只是开始键入下一行,您可能会注意到它正确缩进当你输入一些标点字符时。
要开始使用“Lisp学位”,请为信息浏览器键入C-h i
,然后转到“CC模式”节点(它与Emacs的节点分开;键入d
目录并在那里找到CC模式。)
答案 3 :(得分:6)
如果要缩进整个c / c ++文件,只需执行
那,btw,也适用于xml,python代码和其他类型。
答案 4 :(得分:1)
尝试[enter],(kbd“enter”)或(read-kbd-macro“enter”),他们都做了微妙的不同的事情;)
另外,对我来说,复制/粘贴只是有效。你可以尝试运行emacs -q,看它是否有效?如果是这样,那么.emacs可能会出现问题。
我也有:
(when window-system
;; use extended compound-text coding for X clipboard
(set-selection-coding-system 'compound-text-with-extensions))
但这可能会做其他事情;)
答案 5 :(得分:0)
复制:移动开始,CTRL空间,移动到结束,ALT-W
粘贴:CTRL-y
on unix:鼠标左键复制,右键鼠标粘贴
答案 6 :(得分:0)
这样做的简单方法是使用electric-indent-mode
。如果您想手动启用它,只需执行
M-x electric-indent-mode
要自动启用它,请在.emacs
中说明以下内容:
(electric-indent-mode)
这将是Emacs 24.4中的默认设置。