LINUX.ORG.RU

Православное, некоторые только с ним и работают.

GoodPerson
()
Ответ на: комментарий от Mindincrash
aidaho@vaio:~$ axi-cache search emacs auto complete                                                                       5 results found.
Results 1-5:
100% auto-complete-el - intelligent auto-completion extension for GNU Emacs
aidaho ★★★★★
()

Вполне православное.

realloc ★★★★
()
Ответ на: комментарий от theNamelessOne

Типа такое?

(global-set-key (kbd "TAB") 'company-indent-or-complete-common)
Если да, то куда это вписать? В какой-то файл директории .emacs.d, в какой именно файл?

Mindincrash
() автор топика
Ответ на: комментарий от theNamelessOne
company-indent-or-complete-common

Черт, это 2 разные команды. Я не умею понимать с полуслова (
Это в init.el в папке .emacs.d нужно писать?

Mindincrash
() автор топика
Ответ на: комментарий от feofan

Какой код мог бы при открытии .c файла запускать company-mode и блиндить company-complete на клавишу TAB?

Mindincrash
() автор топика
Ответ на: комментарий от theNamelessOne

Пробовал в company.el в .emacs.d писать такое: (define-key company-active-map (kbd "TAB") 'company-complete-common-or-cycle)
Но что-то ничерта не работает (((

Mindincrash
() автор топика

Православное дополнение для C, Obj C и C++ это irony.

Freyr69 ★★★
()
Ответ на: комментарий от Mindincrash

Пробовал в company.el в .emacs.d писать такое: (define-key company-active-map (kbd «TAB») 'company-complete-common-or-cycle)

А если

(global-set-key (kbd "TAB") 'company-complete)

Freyr69 ★★★
()
Последнее исправление: Freyr69 (всего исправлений: 2)
Ответ на: комментарий от feofan

Его настраивать проще и приятне

Учитывая, что auto-complete настраивать обычно вообще не надо, это какое-то странное утверждение.

no-such-file ★★★★★
()
Ответ на: комментарий от Mindincrash

Типа такое?

Да.

Если да, то куда это вписать?

Emacs читает конфиг из ~/.emacs либо из ~/.emacs.d/init.el. Можешь использовать любой из них, я предпочитаю второй вариант.

theNamelessOne ★★★★★
()
Ответ на: комментарий от Mindincrash

подсказка появляется даже когда Я еще не нажимал на TAB. Это нормальное поведение?

Это каноничное поведение. На самом деле, ты зря забиндил на tab, т.к. на нём обычно автовыравнивание. M-. тоже не советую, это поиск по тегам.

Какое сочетание клавиш лучше поставить, чтоб и удобно и конфликтов не возникало?

Проще всего использовать модификатор Super (aka Mod4, aka Win), там из коробки ничего нет и сторонние пакеты туда ничего не биндят. Всякие сочетания с Ctrl могут внезапно использоваться.

no-such-file ★★★★★
()
Ответ на: УМВР от theNamelessOne

Может это Ваша личная функция?
company 0.8.12, а у Вас?
Попробую переустановить...

Mindincrash
() автор топика
Ответ на: комментарий от Mindincrash

Может это Ваша личная функция?

Я бы такое запомнил.

company 0.8.12, а у Вас?

У меня версия 20160228.1705 из Melpa. Судя по номеру версии, у тебя стоит company из репозитория gnu. Попробуй установить из Melpa, вдруг поможет.

theNamelessOne ★★★★★
()
Ответ на: комментарий от theNamelessOne

Я в программировании не шарю, пока. Можете подсказать как сделать чтоб это включалось только в тех буферах, где C/C++.

(company-mode)
(global-set-key (kbd "TAB") 'company-indent-or-complete-common)
Просто не хочется включать globale-company-mode при просмотре или редактировании файлов не относящихся к C/C++ или globale-company-mode не будет включаться в посторонних буферах?

Mindincrash
() автор топика
Ответ на: комментарий от no-such-file

А как модификатор Super должен писаться для функции kbd? Какой аргумент? Пытался так:

(global-set-key (kbd w32-lwindow-modifier) 'company-indent-or-complete-common)

Mindincrash
() автор топика
Ответ на: комментарий от no-such-file

Так тоже пробовал

(global-set-key (kbd "Super") 'company-indent-or-complete-common)
Emacs отвечает:
Warning (initialization): An error occurred while loading `/home/user/.emacs.d/init.el':

error: Key sequence S u p e r starts with non-prefix key S

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file.  Start Emacs with
the `--debug-init' option to view a complete error backtrace.

Mindincrash
() автор топика
Ответ на: комментарий от Mindincrash

Можете подсказать как сделать чтоб это включалось только в тех буферах, где C/C++

(require 'company)
(global-set-key (kbd "TAB") 'company-indent-or-complete-common)
(add-hook 'cc-mode-common-hook #'company-mode)
theNamelessOne ★★★★★
()
Ответ на: комментарий от Mindincrash

Попробуй

(global-set-key [s-tab] #'company-indent-or-complete-common)

Если я ничего не напутал (проверить не могу, т.к. у меня это сочетание перехватывает DE), то команда будет назначена на Super+Tab.

Могу ещё посоветовать сочетание [C-tab] (Ctrl+Tab).

Emacs отвечает:

(kbd "Super") равносильно (kbd "S u p e r").

theNamelessOne ★★★★★
()
Ответ на: комментарий от theNamelessOne

Вставил ваш код в init.el:

(require 'company)
(global-set-key (kbd "TAB") 'company-indent-or-complete-common)
(add-hook 'cc-mode-common-hook #'company-mode)
Когда пытаюсь дополнить нажатием TAB, то Emacs пишет:
Company not enabled

Mindincrash
() автор топика
Ответ на: комментарий от no-such-file

Super это префикс.

(global-set-key (kbd "s-tab") 'company-indent-or-complete-common)

Ответ Emacs:

Warning (initialization): An error occurred while loading `/home/user/.emacs.d/init.el':

error: s- must prefix a single character, not tab

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file.  Start Emacs with
the `--debug-init' option to view a complete error backtrace.

Mindincrash
() автор топика
Ответ на: комментарий от theNamelessOne

Спасибо. Так работает:

(require 'company)
(global-set-key (kbd "TAB") 'company-indent-or-complete-common)
(add-hook 'c-mode-common-hook #'company-mode)
Вот только как правильно сменить TAB на что-то более полезное?
При таком коде:
(require 'company)
(global-set-key [s-tab] #'company-indent-or-complete-common)
(add-hook 'c-mode-common-hook #'company-mode)
Клавиша Win(Super) ничерта не делает. Win(Super)+TAB тоже ничего не дает.

Mindincrash
() автор топика
Ответ на: комментарий от no-such-file

Такие настройки:

(require 'company)
(global-set-key (kbd "<s-tab>") 'company-indent-or-complete-common)
(add-hook 'c-mode-common-hook #'company-mode)
Открываю Emacs. Открываю .c файл. Ввожу co и нажимаю кнопки Win(Super)+TAB и ничего, никаких вариантов не предлагает...

Mindincrash
() автор топика
Ответ на: комментарий от theNamelessOne

А нажми C-h k (Ctrl+H, затем k), а потом Super+Tab и скажи, что получилось.

Вообще на клавишу Win(Super) не реагирует. Но в XFCE, например, комбинация Super+P отрывает настройки экрана. Хммм...

Mindincrash
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.