スキップしてメイン コンテンツに移動

emacsの設定: package.el

 
~/lib/conf/emacs/package.el



;; load-path
(setq load-path
(append
'(
"~/lib/conf/emacs/site-lisp/apel"
"~/lib/conf/emacs/site-lisp/elscreen"
"~/lib/conf/emacs/site-lisp/emu"
"~/lib/conf/emacs/site-lisp/flim"
"~/lib/conf/emacs/site-lisp/gnuplot-mode"
"~/lib/conf/emacs/site-lisp/howm"
"~/lib/conf/emacs/site-lisp/ruby-mode"
"~/lib/conf/emacs/site-lisp/semi"
"~/lib/conf/emacs/site-lisp/w3m"
"~/lib/conf/emacs/site-lisp/wl"
"~/lib/conf/emacs/site-lisp/riece"
"~/lib/conf/emacs/site-lisp/yatex"
)
load-path))

;;;;;;;;;;;;;;;;;;;;
;; dot-mode
;;;;;;;;;;;;;;;;;;;;
(load-file "~/lib/conf/emacs/site-lisp/dot-mode/graphviz-dot-mode.el")

;;;;;;;;;;;;;;;;;;;;
;; gnuplot-mode
;;;;;;;;;;;;;;;;;;;;
;; these lines enable the use of gnuplot mode
(autoload 'gnuplot-mode "gnuplot" "gnuplot major mode" t)
(autoload 'gnuplot-make-buffer "gnuplot" "open a buffer in gnuplot mode" t)
;; this line automatically causes all files with the .gp extension to
;; be loaded into gnuplot mode
(setq auto-mode-alist (append '(("\\.gp$" . gnuplot-mode)) auto-mode-alist))

;;;;;;;;;;;;;;;;;;;;
;; howm
;;;;;;;;;;;;;;;;;;;;
(setq howm-menu-lang 'ja)
(global-set-key "\C-c,," 'howm-menu)
(autoload 'howm-menu "howm" "Hitori Otegaru Wiki Modoki" t)
(eval-after-load "calendar"
'(progn
(define-key calendar-mode-map
"\C-m" 'my-insert-day)
(defun my-insert-day ()
(interactive)
(let ((day nil)
(calendar-date-display-form
'("[" year "-" (format "%02d" (string-to-int month))
"-" (format "%02d" (string-to-int day)) "]")))
(setq day (calendar-date-string
(calendar-cursor-to-date t)))
(exit-calendar)
(insert day)))))

;;;;;;;;;;;;;;;;;;;;
;; ispell
;;;;;;;;;;;;;;;;;;;;

(autoload 'ispell-word
"ispell" "Check the spelling of word in buffer." t)
(autoload 'ispell-region
"ispell" "Check the spelling of region." t)
(autoload 'ispell-buffer
"ispell" "Check the spelling of buffer." t)
(autoload 'ispell-complete-word
"ispell" "Look up current word in dictionary and try to complete it." t)
(autoload 'ispell-change-dictionary
"ispell" "Change ispell dictionary." t)
(autoload 'ispell-message
"ispell" "Check spelling of mail message or newsx post.")
(defun ispell-tex-buffer-p ()
(memq major-mode '(plain-tex-mode latex-mode slitex-mode yatex-mode)))
(setq ispell-enable-tex-parser t)
;; 日本語交じりの文書を扱う
(eval-after-load "ispell"
'(add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))
;; latex 文書を扱う
(setq ispell-filter-hook-args '("-w"))
(setq TeX-mode-hook
(function
(lambda ()
(setq ispell-filter-hook "detex"))))
(setq ispell-program-name "/usr/bin/aspell")

;;;;;;;;;;;;;;;;;;;;
;; elscreen
;;;;;;;;;;;;;;;;;;;;

;; prefix key
;;(setq elscreen-prefix-key "\C-z")
;; disable tab
(setq elscreen-display-tab nil)
;; start elscreen if emacs-version >= 22 && using window-system
(if (and (>= emacs-major-version 22) window-system)
(load "elscreen" "ElScreen" t))
;; show the screen list on frame title
(defun elscreen-frame-title-update ()
(when (elscreen-screen-modified-p 'elscreen-frame-title-update)
(let* ((screen-list (sort (elscreen-get-screen-list) '<))
(screen-to-name-alist (elscreen-get-screen-to-name-alist))
(title (mapconcat
(lambda (screen)
(format "%d%s %s"
screen (elscreen-status-label screen)
(get-alist screen screen-to-name-alist)))
screen-list " ")))
(if (fboundp 'set-frame-name)
(set-frame-name title)
(setq frame-title-format title)))))
(eval-after-load "elscreen"
'(add-hook 'elscreen-screen-update-hook 'elscreen-frame-title-update))

;;;;;;;;;;;;;;;;;;;;
;; mpg123
;;;;;;;;;;;;;;;;;;;;
;;(if (= (call-process "which" nil nil nil "mpg123") 0)
(if (and (= (call-process "which" nil nil nil "mpg123") 0)
window-system)
(progn
(load-file "~/lib/conf/emacs/site-lisp/mpg123/mpg123.el")
(setq mpg123-display-slider nil)
;; id3 tag modify addon
(load "~/lib/conf/emacs/site-lisp/id3/id3.el")
))

;;;;;;;;;;;;;;;;;;;;
;; riece (IRC)
;;;;;;;;;;;;;;;;;;;;
(autoload 'riece "riece" "Riece mode" t)

;;;;;;;;;;;;;;;;;;;;
;; ruby-mode
;;;;;;;;;;;;;;;;;;;;
(autoload 'ruby-mode "ruby-mode"
"Mode for editing ruby source files" t)
(setq auto-mode-alist
(append '(("\\.rb$" . ruby-mode)) auto-mode-alist))
(setq interpreter-mode-alist (append '(("ruby" . ruby-mode))
interpreter-mode-alist))
(autoload 'run-ruby "inf-ruby"
"Run an inferior Ruby process")
(autoload 'inf-ruby-keys "inf-ruby"
"Set local key defs for inf-ruby in ruby-mode")
(add-hook 'ruby-mode-hook
'(lambda ()
(inf-ruby-keys)))

;;;;;;;;;;;;;;;;;;;;
;; verilog-mode
;;;;;;;;;;;;;;;;;;;;

(load-file "~/lib/conf/emacs/site-lisp/verilog-mode/verilog-mode.el")
(autoload 'verilog-mode "verilog-mode" "Verilog mode" t )
;; Any files that end in .v should be in verilog mode
(setq auto-mode-alist (cons '("\\.v\\'" . verilog-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.tb\\'" . verilog-mode) auto-mode-alist))
;;(setq auto-mode-alist
;; (cons '("\\.v_rout\\'" . verilog-mode) auto-mode-alist))
;; Any files in verilog mode shuold have their keywords colorized
(setq verilog-indent-level 4
verilog-indent-level-module 4
verilog-indent-level-declaration 4
verilog-indent-level-behavioral 4
verilog-indent-level-directive 4
verilog-case-indent 4
verilog-auto-newline nil
verilog-auto-indent-on-newline nil
verilog-tab-always-indent t
verilog-auto-endcomments t
verilog-minimum-comment-distance 40
verilog-indent-begin-after-if t
verilog-auto-lineup '())
(add-hook 'verilog-mode-hook
'(lambda ()
(add-hook 'local-write-file-hooks
(lambda() (untabify (point-min) (point-max))))))

;;;;;;;;;;;;;;;;;;;;
;; w3m
;;;;;;;;;;;;;;;;;;;;

;(load-library "migemo")
(autoload 'w3m "w3m" "Interface for w3m on Emacs." t)
(autoload 'w3m-find-file "w3m" "w3m interface function for local file." t)
(autoload 'w3m-browse-url "w3m" "Ask a WWW browser to show a URL." t)
(autoload 'w3m-search "w3m-search" "Search QUERY using SEARCH-ENGINE." t)
(autoload 'w3m-weather "w3m-weather" "Display weather report." t)
(autoload 'w3m-antenna "w3m-antenna" "Report chenge of WEB sites." t)
;(setq w3m-home-page
;(concat "file://" (getenv "HOME") "/conf/html/local.html"))
(setq w3m-home-page (concat "http://www.google.com"))
(setq w3m-use-cookies t)

;;;;;;;;;;;;;;;;;;;;
;; Wanderlust
;;;;;;;;;;;;;;;;;;;;

(load "mime-setup")
(autoload 'wl "wl" "Wanderlust" t)
(autoload 'wl-other-frame "wl" "Wanderlust on new frame." t)
(autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)
(autoload 'elmo-split "elmo-split" "Split messages on the folder." t)


;;;;;;;;;;;;;;;;;;;;
;; YaTeX-mode
;;;;;;;;;;;;;;;;;;;;x

(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq auto-mode-alist
(cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(setq dvi2-command "xdvi"
tex-command "platex -src-specials"
dviprint-command-format "dvips %s | lpr"
YaTeX-kanji-code 3)

;;;;;;;;;;;;;;;;;;;;
;; YaHtml-mode
;;;;;;;;;;;;;;;;;;;;

(setq auto-mode-alist
(cons (cons "\\.html$" 'yahtml-mode) auto-mode-alist))
(autoload 'yahtml-mode "yahtml" "Yet Another HTML mode" t)
(setq yahtml-www-browser "firefox")


>> emacsの設定

このブログの人気の投稿

TeXマクロプログラミング

2012.03.30 更新 スライド化しました.   新しいマクロ定義 以下に例を示す. \dev\hoge{ほげ}    これにより,\hogeが「ほげ」に変換される.引数を使うには,以下のように記述する. \dev\hour#1{今は#1時です}   別の方法 上に示した処理は,以下のようにも記述できる. \newcommand{\hoge}{ほげ} \newcommand{\hour}[1]{今は#1時です}   defとnewcommand違い defとnewcommandが異なる箇所として,以下が上げられる. 定義命令を定義している処理系 マクロを多重定義した場合の動作 引数のとり方  まず,定義されている処理系が異なる.defはtexで定義されており,newcommandは,latexで定義されている.  次に,多重定義した際の動作が異なる.defでは,新しい定義で上書きする.一方,newcommandではエラーを出力する.  最後に,defでは,引数のとり方としてパターンマッチングを利用できる.例えば,以下のマクロ定義があるとする. \def\Hatchr(#1,#2)(#3,#4)#5 これにより,以下に示すインターフェイスを実現する. \Hatchr(3,4)(7,8){hoge}   マクロの複製 以下の処理では,\hogeの内容を\fugaに複製する. \let\fuga\hoge   マクロの初期化 以下のコードで,\hogeを初期化する. \let\fuga\relax  ここで,\relaxは初期化のために利用する空の定義である.   マクロに文字を追加し再定義 defによる定義は,マクロの多重展開をおこなわない.例えば,以下のコードを考える. \def\hoge{ほげ} \def\hoge{\hogeふぇふぇ}  この後,\hogeを利用すると「\hogeふぇふぇ」と展開される.つまり,一度だけしかマクロは展開されない.  マクロを展開してから定義する際には,以下の記述を用いる. \edef\hoge{\hogeふぇふぇ}  これに

beamerでしおりを付ける

しおり   しおりとは,acroreadなどでpdfを表示する際に,ウィンドウの左側に表示される目次のようなものである.このしおりを使うことで,文章の構成を大まかに把握したり,特定の項目に移動することが簡単にできる.   beamerには,標準でしおりを付ける機能が備わっている.以降では,しおりを付ける方法について述べる. しおりをつける   beamerでしおりを付けるには,次のコマンドをtexの文章中に記述する. section{} subsection{} subsubsection{}   カッコの中に記述する文字列が,しおりの項目名に使用される.また,section,subsection,subsubsectionを使い分けることで,階層化をすることも可能. 文字化け対策   しおりは,標準の仕様ではUnicodeのみがサポートされている.EUCを使う場合は,そのままではしおりの日本語が文字化けする.このため,Unicodeを用いない際には,何らかの対策が必要である.   以下では,EUCを利用する人のための対処策を述べる.ここで,dviからpdfを生成する際の方法によって,対処の仕方が異なることに注意する.具体的には,(1)dvipdfmxを用いる場合と,(2)dvipsおよびps2pdfを用いる場合で,対処の仕方が異なる.以降,それぞれについて述べる. dvipdfmxを用いる場合   次のコードをプリアンブルに記述しておくことで解決できる.これにより,しおりの部分の文字列が,自動でUnicodeに変換される. \ifnum 42146=\euc"A4A2 \AtBeginDvi{\special{pdf:tounicode EUC-UCS2}}\else \AtBeginDvi{\special{pdf:tounicode 90ms-RKSJ-UCS2}}\fi   ただし,実行にはEUC-UCS2というファイルが必要.texをインストールする際に,標準でシステムに入る場合はこのままコンパイルできるが,無ければコンパイルできない.私がこれまで経験したなかでは,Vine 5.0, Mac OSXには含まれているが,Debian lennyには入っていなかった.   システムにEUC-UCS2が無い場合,以下のようなサイトから取ってくる.取って

ssh-agentの管理を自動化する

ssh-start.sh ssh-agentの管理を自動化するスクリプトssh-start.shを紹介する. 詳細 ssh-agentを使うことで,sshでリモートログインする際に,パスワードの入力を省略できる. ssh-agentを利用するためには,ソケットのパスとプロセスIDを環境変数に登録する必要がある.環境変数に登録すべき情報は,ssh-agentの起動時に,以下のように標準出力に出力される. $ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-XTqIvn4918/agent.4918; export SSH_AUTH_SOCK; SSH_AGENT_PID=4919; export SSH_AGENT_PID; echo Agent pid 4919; 上記のように,ssh-agentの出力はシェルコマンドとなっており,実行すれば環境変数がセットされる.このため,多くの解説記事では,次のようにevalを用いる方法が述べられている. $ eval `ssh-agent` Agent pid 4919 しかし,この方法は,同じssh-agentのプロセスを複数のシェルから利用することはできない.上記コマンドを他のシェル上でも実行すれば,動作はするが,次の点で優れた手法とは言えない. ssh-agentのプロセスを複数起動する (本来は1個で充分). 起動毎に秘密鍵の登録,およびパスフレーズの入力が必要となる. 上記の問題は解決するには,1個のssh-agentを複数のシェルから再利用すればよい.例えば2個のターミナルから1個のssh-agentプロセスを利用するには,次のようにする. # terminal 1 $ ssh-agent > ~/tmp.sh $ source ~/tmp.sh Agent pid 4919 # terminal 2 $ source ~/tmp.sh Agent pid 4919 こうすることで,2個のターミナルから同一プロセスのssh-agentを利用できる. 以上の処理を自動化したものが,ここで紹介するスクリプトである. 使い方 環境変数を扱かうため,通常のスクリプトのようには利用できない.このため,sourceコマンドや.(ドット)コマンドで実行する. $ source /path/to/dir/s