我正在使用Emacs。当我写这个时,我想要那个(|是重点):
for (int i=0; i<n; i++) {|
我按下Enter(或不同的键,无论如何),我明白了:
for (int i=0; i<n; i++) {
|
}
所以我可以立即开始输入块的内容,然后块自动关闭。
我该怎么做?
答案 0 :(得分:2)
这是我的C / C ++设置,可以解决您的问题:
(defun ins-c++-curly ()
"Insert {}.
Threat is as function body when from endline before )"
(interactive)
(if (looking-back "\\()\\|try\\|else\\|const\\|:\\)$")
(progn
(insert " {\n\n}")
(indent-according-to-mode)
(forward-line -1)
(indent-according-to-mode))
(insert "{}")
(backward-char)))
(add-hook 'c-mode-common-hook 'my-c-common-hook)
(defun my-c-common-hook ()
(define-key c-mode-base-map "{" 'ins-c++-curly))
这是for
的{{3}}:
# -*- mode: snippet -*-
#name : for (...; ...; ...) { ... }
# --
for (unsigned int ${1:i}=0; $1<${2:N}; ++$1)$0
请注意,该代码段不支持大括号,因此我可以决定是否需要它们 或者只是一个声明。
只是为了向您展示将我从零引导到代码的键序列
在您的问题中:for
C-o C-o C-o {。
答案 1 :(得分:1)
如果要自动关闭字符,M-x electric-pair-mode
可能有用(需要Emacs 24或更高版本)。试试吧,看看它是否符合您的需求。
我认为以下内容也可能有所帮助。