用于切换缩进的全局设置键设置?

时间:2016-02-03 20:59:56

标签: emacs indentation

在我自己的C / C ++编码中,我更喜欢使用2空格缩进,但是当我与其他人合作时,我会受到需要3空格缩进的样式指南的限制。在我的.emacs文件中(粘贴在下面)我使用自定义设置变量将其设置为2,我可以在运行.emacs时更改它:

M-x customize-set-variable
Set variable: c-basic-offset 
[integer] [radio] Set customized value for c-basic-offset to: 3

(除了为什么自定义 ize -set-variable而不是custom-set-variable s ?此外,它只能每隔一段时间工作;第一次我这样做,在我输入'c-basic-offset'之后就完成了(并且c-basic-offset设置为1)。下次我这样做时,会提示我设置它的值是什么 - 什么是那个?)

所以我可以解决这个问题,但那是打字很多,而且我不想记住它。

我曾经搜索过如何将F5设置为M-x恢复缓冲区;我需要将什么内容放入我的.emacs文件中,以便我可以让F2和F3键将c-basic-offset更改为2和3,因为该操作不是简单的无参数emacs元命令?

仅供参考,我想这是我目前在.emacs文件中的相关部分:

(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.    
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(c-basic-offset 2)
 '(fill-column 80)
 '(global-auto-revert-mode t)
 '(indent-tabs-mode nil)
 '(inhibit-startup-screen t)
 '(initial-buffer-choice nil)
 '(initial-scratch-message nil))


(global-set-key [f5] 'revert-buffer)

1 个答案:

答案 0 :(得分:2)

  

我需要将哪些内容放入我的.emacs文件中,以便我可以使用F2和F3   键将c-basic-offset更改为2和3,因为操作不是a   简单的无参数emacs元命令?

(defun set-offset-2 ()
  (interactive)
  (setq-default c-basic-offset 2))
(defun set-offset-3 ()
  (interactive)
  (setq-default c-basic-offset 3))

(global-set-key [f2] 'set-offset-2)
(global-set-key [f3] 'set-offset-3)
  

除了为什么自定义 ize -set-variable而不是   定制设定变量的取值

调用customize-set-variable会提示用户更改一个变量,然后更新.emacs顶部的列表。 custom-set-variables获取该列表并应用所有这些变量。

  

此外,它只能每隔一段时间工作;我第一次这样做,在我之后   输入&c-basic-offset'它刚刚完成(并且c-basic-offset设置为   1)。下次我这样做时,它会提示我设置它的值    - 那是什么?)

奇怪的是我得到了同样的错误。不知道该怎么做。

我个人不会使用customize-set-variable。相反,我明确地调用setq-default函数。例如,以下内容等同于您之前发布的内容:

(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.    
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
  )

(setq-default c-basic-offset 2)
(setq-default fill-column 80)
(setq-default global-auto-revert-mode t)
(setq-default indent-tabs-mode nil)
(setq-default inhibit-startup-screen t)
(setq-default initial-buffer-choice nil)
(setq-default initial-scratch-message nil)

如果您想应用这些更改,只需将光标放在括号的末尾:

(setq-default c-basic-offset 2)█

然后输入C-x C-e