2013-08-29 3 views
0

Я хочу отметить буферы с несохраненными изменениями на панели вкладок на вкладке в emacs. Также я хочу назначить F1 - F12 в буфер и открыть их, нажав соответствующую кнопку. Но поскольку у меня нет практики программирования в lisp, я понятия не имею, с чего начать. Также у меня появилось ощущение, что изучение lisp, чтобы знать, как настроить emacs на низком уровне, - невероятное полезное умение.Настройка вкладки emacs, делая несохраненные изменения видимыми

Так что мой вопрос не в том, как его архивировать, а скорее, где начать искать. И, может быть, как начать изучать Лисп.

Спасибо

ответ

0

Вы также можете посмотреть tabbar.el, чтобы выяснить, где находится фактический текст панели (т. Е. Где вы хотите добавить индикаторы «несохраненные»). Чтобы выяснить, имеет ли буфер несохраненные изменения, вы можете использовать функцию buffer-modified-p.

0

Вы подняли слишком много вопросов в одном вопросе.

Я кратко отвечу каждому, но вы должны задать отдельный вопрос, если вы не поняли.

Я хочу отметить буферы, которые имеют несохраненные изменения, в панели вкладок вкладки в emacs.

Нет, вы не хотите этого. Это уже сделано в modeline.

я хочу назначить F1 - F12 в буфер и откройте их, нажав на кнопку в соответствии

Нет, вы не хотите этого. Ключи ценны, вы не хотите их тратить. Использовать Mouse Buffers menu или list-buffers.

, как начать обучение Lisp

В Emacs, тип С-Н я м Emacs Lisp Intro RET и начать читать.

Emacs великолепно настраивается, и вы можете сделать это именно так, как хотите. Однако вы должны понимать, что он используется более 30 лет многими умными людьми, поэтому, когда ваше желание разумно, скорее всего, это можно сделать из коробки, а если нет, вам будет очень весело реализуя его самостоятельно.

+0

Режим-линия указывает, если текущий буфер содержит несохраненные изменения. Я думаю, он хочет иметь указание на другие буферы, перечисленные на вкладке. – Stefan

+0

@Stefan: dunno, возможно, вы правы. если это действительно так, его вопрос, он должен задать новый вопрос конкретно об этом без каких-либо дополнительных тем. – sds

+0

@Stefan: именно это я и спрашивал, я знал allreadya о линии режима. – zabeltech

1

Как упоминалось в sds, вам нужно будет ознакомиться с информационными страницами. Вы можете сделать C-h i m Emacs Lisp RET, как упоминалось в sds, или вы можете сделать M-x информацию, а затем найти Emacs Lisp Intro.

2

Этот код работает со складскими версиями Emacs и tabbar.el - он создает + знак в начале имени измененного буфера на вкладке.

;; BUFFER MODIFICATION STATE INDICATOR 
(defadvice tabbar-buffer-tab-label (after fixup_tab_label_space_and_flag activate) 
    (setq ad-return-value 
     (if (and (buffer-modified-p (tabbar-tab-value tab)) 
        (buffer-file-name (tabbar-tab-value tab))) 
      (concat " + " (concat ad-return-value " ")) 
      (concat " " (concat ad-return-value " "))))) 
(defun ztl-modification-state-change() 
    (tabbar-set-template tabbar-current-tabset nil) 
    (tabbar-display-update)) 
(defun ztl-on-buffer-modification() 
    (set-buffer-modified-p t) 
    (ztl-modification-state-change)) 
(add-hook 'after-save-hook 'ztl-modification-state-change) 
(add-hook 'first-change-hook 'ztl-on-buffer-modification) 

Если вы хотите, чтобы сделать еще один шаг дальше, посмотреть на исходный код для aquamacs-tabbar.el - он содержит настраиваемые параметры, такие как tabbar-unselected-modified и tabbar-selected-modified. Вы бы необходимо либо использовать Aquamacs для упомянутых выше вариантов, или вам нужно будет сделать несколько изменений к следующим файлам так, что они работают с запасом версии Emacs: aquamacs-tabbar.el, tabbar.el и tabbar-window.el:

https://github.com/davidswelt/aquamacs-emacs/tree/master/aquamacs/src/site-lisp/tabbar


См. Также этот пример возможностей дальнейшей настройки внешнего вида.

screenshot http://www.lawlist.com/images/frames_tabbar.png

Смежные вопросы