スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

NTEmacsにタブ機能をつける

 これまでバッファ切り替えに 「buffer-menu」や「bury-buffer」を使っていたのですが,Firefoxや InternetExplorer8などに付いているタブ機能になれてしまったせいか,大量のバッファを開いている場合,直感的に操作しずらいと思っていました.
 そこで,いっそのこと Emacsでもタブ機能をつけてしまえば良いと思い,調べてみたところtabbarというパッケージを見つけました.

 なお,これらの導入,設定にはEmacs をタブブラウザ化する (Vine Linux 4.2) - ChangeLogメモの抜粋を参考にさせていただきました.
 ただし,一部自分好みに変更しています.具体的には
  • 「 *」ではじまるバッファをタブ化しないところ,「 *scratch*」だけはタブ化するようにした
  • 左上に表示される各種ボタンを非表示にした
  • アクティブタブの文字の配色を赤にした
  • タブとタブの表示間隔を「0.7」から「0.5」に変更した
(require 'cl)
(require 'tabbar)

(setq tabbar-buffer-groups-function
      (lambda (b) (list "All Buffers")))
(setq tabbar-buffer-list-function
      (lambda ()
        (remove-if
         (lambda(buffer)
           (unless (string= (buffer-name buffer) "*scratch*")
             (find (aref (buffer-name buffer) 0) " *"))
           )
         (buffer-list))))
(tabbar-mode)

(setq tabbar-home-button-enabled "")
(setq tabbar-scroll-right-button-enabled "")
(setq tabbar-scroll-left-button-enabled "")
(setq tabbar-scroll-right-button-disabled "")
(setq tabbar-scroll-left-button-disabled "")

;(global-set-key [(control tab)] 'tabbar-forward)
;(global-set-key [(control shift tab)] 'tabbar-backward)

(dolist (func '(tabbar-mode tabbar-forward-tab tabbar-forward-group tabbar-backward-tab tabbar-backward-group))
  (autoload func "tabbar" "Tabs at the top of buffers and easy control-tab navigation"))
(defmacro defun-prefix-alt (name on-no-prefix on-prefix &optional do-always)
  `(defun ,name (arg)
     (interactive "P")
     ,do-always
     (if (equal nil arg)
         ,on-no-prefix
       ,on-prefix)))
(defun-prefix-alt shk-tabbar-next (tabbar-forward-tab) (tabbar-forward-group) (tabbar-mode 1))
(defun-prefix-alt shk-tabbar-prev (tabbar-backward-tab) (tabbar-backward-group) (tabbar-mode 1))
(global-set-key [(control tab)] 'shk-tabbar-next)
(global-set-key [(control shift tab)] 'shk-tabbar-prev)

(set-face-attribute 'tabbar-default-face nil :background "gray60")
(set-face-attribute 'tabbar-unselected-face nil :background "gray85" :foreground "gray30" :box nil)
(set-face-attribute 'tabbar-selected-face nil :background "#f2f2f6" :foreground "red" :box nil)
(set-face-attribute 'tabbar-button-face nil :box '(:line-width 1 :color "gray72" :style released-button))
(set-face-attribute 'tabbar-separator-face nil :height 0.5)

 画面イメージはこんな感じです.
pict091107-001.png
スポンサーサイト

テーマ : UNIX/Linux
ジャンル : コンピュータ

コメントの投稿

非公開コメント

リンク
最新コメント
カテゴリー
最近の記事
月別アーカイブ
ブログ内検索
最新トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。