LINUX.ORG.RU

Вопросы по emacs + ECB


0

0

Недавно задавал этот вопрос тут.

Взял свежий CEDET 1.0pre4 + ECB 2.33b2. Вот выдержка из конфига:

(add-to-list 'load-path (expand-file-name "~/.emacs.d/ecb"))

(require 'ecb)
(ecb-activate)
(setq auto-mode-list
      (append '(("\\.c$" . c-mode)) auto-mode-alist))

(defun my-ecb-hook ()
   (local-set-key "\M-gs" 'ecb-goto-window-sources)
   (local-set-key "\M-gm" 'ecb-goto-window-members))

(add-hook 'c-mode-common-hook 'my-ecb-hook)

Вот вопросы, которые пока не удается решить:

1. Не могу заставить, что бы ECB загружался _только_ для сишных исходников. Если переместить (ecb-activate) в my-ecb-hook, то при запуске вместо исходника вижу «First steps after activating ECB...»

2. Window Tree отображается с /, а не с родительской директории открытого файла

3. Не работают local set keys внутри ECB-ных окон. Если сделать M-g s — попадаем в окно с исходниками, и если оттуда сразу же сделать M-g m, то говорит, что M-g m is undefined

4. Как сделать, что бы ширина основного окна была равна 80 символам? Сейчас она равна 74.

Спасибо.

anonymous

Никогда не пользовался автозапуском ECB - всегда сначала открывал какой-нить файл проекта через C-x C-f, а затем делал M-x ecb-activate <RET>.

>Как сделать, что бы ширина основного окна была равна 80 символам? Сейчас она равна 74.

Можно попробовать сделать 80 и запомнить размер окон ECB через его меню.

marsijanin ★★
()

> Не могу заставить, что бы ECB загружался _только_ для сишных исходников.

Ты для этого ничего не сделал, неудивительно.

> Не работают local set keys внутри ECB-ных окон.

Ты биндишь скорее всего тогда, когда ecb еще не активирован

> Как сделать, что бы ширина основного окна была равна 80 символам?

ecb-create-new-layout и делаешь то, что тебе нужно.

Вот часть моего конфига, может лучше загружать ecb не автоматически, а только когда надо?

(setq ecb-active nil)


;;; Functions
(defun my-ecb-toggle-windows ()
  (interactive)
  (if ecb-active
      (ecb-toggle-ecb-windows)
    (ecb-activate)))


;;; Hooks
(add-hook 'ecb-activate-hook #'(lambda ()
                                 (setq ecb-active t)))

(add-hook 'ecb-deactivate-hook #'(lambda ()
                                   (setq ecb-active nil)))

(add-hook 'ecb-directories-buffer-after-create-hook
          #'(lambda ()
              (local-set-key (kbd "C-c C-d") #'ecb-dired-directory)))


;;; Bindings
(global-set-key (kbd "<f11>")    #'ecb-toggle-enlarged-compilation-window)
(global-set-key (kbd "M-<f11>")  #'ecb-toggle-compile-window)
(global-set-key (kbd "<f12>")    #'my-ecb-toggle-windows)


anonymous
()

Мм, а как выделить код так, как это сделанно в первом посте?

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