2015/01/03(土) [n年前の日記]
#1 [emacs] NTEmacsの設定を見直し中
バッファの上にタブを表示する、tabbar.el なる elisp の設定を見直してるところ。今まで使ってたのはかなり古い版だったようで、現行版は色々設定が変わってた。
_あちらこちらの記事
からコピペして、以下のような感じに修正。
以下、参考ページ。
_tabbar.el 2.0 の導入 - Clipboard
_EmacsWiki: Tab Bar Mode
_emacs tabbar.el : Emacsをタブエディタ化し、バッファを俯瞰する | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 スクリーンショット | るびきち「日刊Emacs」
_[emacs] emacs-nav を入れたり ElScreen から tabbar に乗り換えたり | いわぶろ(ろてん)
_tabbar.elでEmacsをタブエディタ化 (自動で最適な設定をしたい) - cloverrose's blog
;;; tabbar_init.el ---
;;
;; バッファの上部にタブを表示
;;
;; M-Left、M-Right タブ間を移動
;; home、S-home タブ間を移動
;; C-TAB、C-S-TAB タブ間を移動
(require 'tabbar)
;; タブ上でマウスホイール操作無効
(tabbar-mwheel-mode -1)
;; 画像を使用するかどうか
(setq tabbar-use-images nil)
;; タブをスクロール
(setq tabbar-auto-scroll-flag t)
;; 左に表示されるボタンを無効化
(dolist (btn '(tabbar-buffer-home-button
tabbar-scroll-left-button
tabbar-scroll-right-button))
(set btn (cons (cons "" nil)
(cons "" nil))))
;; グループ化しない
(setq tabbar-buffer-groups-function nil)
;; scratch 以外で先頭に「*」がついてるタブを表示しない
(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 1)
;; タブセパレータの長さ
(setq tabbar-separator '(0.8))
;; 外観変更
(set-face-attribute 'tabbar-default nil
:family (face-attribute 'default :family)
:foreground "#white" :background "gray60" :height 1.0)
(set-face-attribute 'tabbar-separator nil
:foreground "#002c37" :background "gray60" :height 1.0)
(set-face-attribute 'tabbar-unselected nil
:foreground "#002c37" :background "gray85" :box nil)
(set-face-attribute 'tabbar-modified nil
:foreground "#008b00" :background "gray85" :box nil :weight 'bold)
(set-face-attribute 'tabbar-selected nil
:foreground "#e4007e" :background "white" :box nil :weight 'bold)
(set-face-attribute 'tabbar-button nil :box nil)
;; 編集されたらタブのラベルに記号を追加
(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))
;; First-change-hook is called BEFORE the change is made.
(defun ztl-on-buffer-modification ()
(set-buffer-modified-p t)
(ztl-modification-state-change))
(add-hook 'after-save-hook 'ztl-modification-state-change)
;; This doesn't work for revert, I don't know.
;;(add-hook 'after-revert-hook 'ztl-modification-state-change)
(add-hook 'first-change-hook 'ztl-on-buffer-modification)
(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 [M-right] 'shk-tabbar-next)
(global-set-key [M-left] 'shk-tabbar-prev)
(global-set-key [(control tab)] 'shk-tabbar-next)
(global-set-key [(control shift tab)] 'shk-tabbar-prev)
(define-key global-map [home] 'shk-tabbar-next)
(define-key global-map [\S-home] 'shk-tabbar-prev)
以下、参考ページ。
_tabbar.el 2.0 の導入 - Clipboard
_EmacsWiki: Tab Bar Mode
_emacs tabbar.el : Emacsをタブエディタ化し、バッファを俯瞰する | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 スクリーンショット | るびきち「日刊Emacs」
_[emacs] emacs-nav を入れたり ElScreen から tabbar に乗り換えたり | いわぶろ(ろてん)
_tabbar.elでEmacsをタブエディタ化 (自動で最適な設定をしたい) - cloverrose's blog
[ ツッコむ ]
#2 [anime] ローニャ、雪山の回から春が来たの回まで視聴
鳥女の見せ方に感心。これはチビッ子達が泣きそう。基本的に明るいシーンが多いので、その落差でますます強烈なシーンに。ゴロー監督って、こういうシーンを見せるのが実は上手い、ような気もしてきたり。ゲド戦記でも妙な雰囲気を出せてたし…。
少年、イケメンですなあ。こりゃ惚れるわ…。ていうか何スかこの ラブラブ波動…。
少年、イケメンですなあ。こりゃ惚れるわ…。ていうか何スかこの ラブラブ波動…。
[ ツッコむ ]
以上、1 日分です。