我开始使用objective C,而且objective C模式运行得非常好。然而,ObjC使用.h文件,就像C和C++一样。我需要能够同时使用所有三种语言。有人知道如何让Emacs区分是应该使用objC模式还是C/C++模式吗?
编辑:似乎有些人对我的问题存在一些误解。问题在于我有一些与.m文件相关联的.h文件,还有一些与.c文件和.cpp文件相关联的.h文件。我想要的是一个能够放在c-mode-common-hook里面或其他地方的东西,它可以检查是否是objective C .h文件,然后强制它进入objective C模式或其他模式。这样,我只需要打开一个.h文件,它就会自动处于正确的模式。
显然,当我在文件中时,我可以手动更改模式,但那很麻烦,而且我经常忘记,直到按下tab键出现奇怪的事情。这是我目前正在使用的解决方案。
我认为头部注释可能是正确的解决方法,但为了使其真正有用,我需要找出如何让XCode在为我创建文件时将注释放在那里...
编辑2:
我目前正在使用头部注释解决方案。在我能够找出如何让XCode自动添加注释之前,我使用以下elisp函数:
编辑:似乎有些人对我的问题存在一些误解。问题在于我有一些与.m文件相关联的.h文件,还有一些与.c文件和.cpp文件相关联的.h文件。我想要的是一个能够放在c-mode-common-hook里面或其他地方的东西,它可以检查是否是objective C .h文件,然后强制它进入objective C模式或其他模式。这样,我只需要打开一个.h文件,它就会自动处于正确的模式。
显然,当我在文件中时,我可以手动更改模式,但那很麻烦,而且我经常忘记,直到按下tab键出现奇怪的事情。这是我目前正在使用的解决方案。
我认为头部注释可能是正确的解决方法,但为了使其真正有用,我需要找出如何让XCode在为我创建文件时将注释放在那里...
编辑2:
我目前正在使用头部注释解决方案。在我能够找出如何让XCode自动添加注释之前,我使用以下elisp函数:
(defun bp-add-objC-comment ()
"Adds the /* -*- mode: objc -*- */ line at the top of the file"
(interactive)
(objc-mode)
(let((p (point)))
(goto-char 0)
(insert "/* -*- mode: objc -*- */\n")
(goto-char (+ p (length "/* -*- mode: objc -*- */\n")))))