Я использую:
Соответствующие части моего файла .emacs следующие (в моем файле .emacs сейчас очень мало другого, я пытался уменьшить его до минимума при исследовании этой проблемы).
;; Auto-complete
(add-hook 'after-init-hook
(lambda()
(ac-config-default)))
;; Auto-complete C/C++ header file names
(add-hook 'c-mode-common-hook
(lambda()
(require 'auto-complete-c-headers)
(add-to-list 'ac-sources 'ac-source-c-headers)
(add-to-list 'achead:include-directories '"/usr/include/c++/4.9.1")
(add-to-list 'achead:include-directories '"/usr/include/c++/4.9.1/x86_64-unknown-linux-gnu")
(add-to-list 'achead:include-directories '"/usr/include/c++/4.9.1/backward")
(add-to-list 'achead:include-directories '"/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include")
(add-to-list 'achead:include-directories '"/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include-fixed")))
Автозаполнение отлично работает для:
#include <iost...
Но не для:
#include "MyCla...
Однако он работает для:
#include <MyCla...
хотя MyClass.hpp не является системным включаемым файлом (и находится в ./, который является стандартным путем поиска для auto-complete-c-headers). Но тогда я должен отредактировать скобку и изменить ее на кавычку.
Глядя на код для auto-complete-c-headers, мне кажется, что кавычка должна работать.
Любая идея о том, что может быть причиной этой проблемы?
Я думаю, что, возможно, Emacs входит в какой-то режим после
#include "
это мешает ему принимать предложения от auto-complete-c-headers.
Я в основном очень доволен своим последним опытом работы в Emacs в качестве редактора программиста, и я был бы благодарен за любой совет о том, как решить это небольшое раздражение.
Я сталкиваюсь с той же проблемой, что и несовершенное решение, вы можете использовать:
(setq ac-disable-faces nil)
Это позволит автоматически конкурировать между кавычками.
Если это не сработает, попробуйте объединить его с autopair или же электрическая пара-режим.