道友们好,我用的是spacemacs,上面是我的部分配置代码,但打开 c 文件时,只打印出了第二个语句,子函数里的第一个语句没有打印出来,请问是什么问题呢?谢谢大家!
不完全清楚什么状况,猜测你的 (add-hook 'c-mode-hook 'my-setup-...)
加载晚了,类似下面这个 message
第一次打开 Emacs Lisp 文件时也不会执行
(defun my-emacs-lisp-setup ()
(message "loading my setup..."))
(add-hook 'emacs-lisp-mode-hook
(lambda ()
(add-hook 'emacs-lisp-mode-hook 'my-emacs-lisp-setup)))
谢谢! 现在问题是,我想在进入 C 模式 的最后,执行我自己的配置函数(my-setup-develop-environment),但现在打开 C 文件后,这个设置没起作用,所以感到很不解,请问有什么别的方法,在我打开 C 文件的最后,执行我自己的设置吗?
不了解 Spacemacs,不知道你的 lvway_layer/post-init-cc-mode
是被执行的,如果是像
(add-hook 'c-mode-hook 'lvway_layer/post-init-cc-mode)
这样的话,直接在这个函数里调用你的 my-setup-...
就行了,比如:
(defun lvway_layer/post-init-cc-mode ()
(message "...")
(my-setup-develop-environment))
如果不是的话,就要看具体情况了。
刚刚按照你的方法试了下,发现启动时报错:(void-function spacemacs | add-company-backends)。。。 但还是谢谢你,我去查查这是什么问题先!
把你完整的配置贴上来呗
为什么截图代码缩进那么乱?确定代码都写在函数里面吧?
打开 c 文件之后:
-
M-x describe-variable
RETmajor-mode
结果是不是c++-mode
或c-mode
?是的话检查第 2 项。 -
M-x describe-variable
RETc++-mode-hook
或c-mode-hook
看看这两个 hook 里有没有你添加的方法。
哎,lisp 语法不了解,感觉无从下手,我还是先去看看lisp基本语法的东西再来配置吧,谢谢了!
谢谢,现在问题解决了,是函数重复定义的问题。至于缩进乱的问题,是因为我还不会 lisp,有空再看看lisp相关的书学学。另外我还想问下,company 的变量 company-minimum-prefix-length 在进入 c-mode 后,已经等于3了,但写代码的时候,发现打一个字母出来就开始补全,像下面的这样:
请问这是什么问题呢!谢谢回答
设置company-minimum-prefix-length
:
company-minimum-prefix-length is a variable defined in ‘company.el’.
Its value is 2
Original value was 3
Documentation:
The minimum prefix length for idle completion.
You can customize this variable.
P.S.:elisp自动indent