1

emacsのタブバータブバーで、変更が保存されていないバッファをマークしたい。また、F1〜F12をバッファに割り当て、対応するボタンを押して開きたいと思います。しかし、私は Lisp でプログラミングの練習をしたことがないので、どこから始めればよいかわかりません。また、低レベルでemacsを構成する方法を知るためにlispを学ぶことは、信じられないほど役立つスキルだと感じました。

したがって、私の質問は、それをどのようにアーカイブするかではなく、どこから探し始めるかです。そしておそらく、Lisp の学習を開始する方法。

ありがとう

4

4 に答える 4

4

次のコードは、ストック バージョンの 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などのカスタマイズ可能なオプションが含まれています。上記のオプションには Aquamacs を使用するか、Emacs のストック バージョンで動作するように次のファイルにいくつかの修正を加える必要があります: 、、および:tabbar-unselected-modifiedtabbar-selected-modifiedaquamacs-tabbar.eltabbar.eltabbar-window.el

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


ルック アンド フィールをさらにカスタマイズする可能性については、こちらの例も参照してください。

スクリーンショット
(出典: lawlist.com )

于 2013-08-29T18:00:08.367 に答える
1

1 つの質問であまりにも多くの問題を提起しました。

それぞれに簡単にお答えしますが、明確でない場合は別の質問をしてください。

emacsのタブバータブバーで、変更が保存されていないバッファをマークしたい。

いいえ、あなたはそれを望んでいません。これはすでにモード ラインで行われています。

F1~F12をバッファに割り当てて、対応するボタンを押して開きたい

いいえ、あなたはそれを望んでいません。鍵は貴重なものです。そんなふうに無駄にしたくありません。マウス バッファ メニューまたはを使用しますlist-buffers

Lispを学び始める方法

Emacs で、入力して読み取りを開始します。C-h i m Emacs Lisp Intro RET

Emacs は見事にカスタマイズ可能であり、思いどおりに動作させることができます。ただし、多くの賢い人々によって 30 年以上も使用されていることを認識しておく必要があります。そのため、あなたの希望が合理的な場合はいつでも、箱から出してすぐに実行できる可能性があります。そうでない場合は、実装するのがとても楽しいでしょう。それを自分で。

于 2013-08-29T13:56:29.053 に答える
0

tabbar.elバーの実際のテキストが作成される場所 (つまり、「保存されていない」インジケータを追加する場所) を調べて把握することもできます。バッファに保存されていない変更があるかどうかを調べるには、buffer-modified-p関数を使用できます。

于 2013-08-29T14:35:16.437 に答える