目次

emacs

以下,微妙に使うショートカットを一部抜粋

M-= 文字数のカウント
C-M-\ カレントリージョンをまとめてインデント
C-c Enter (.f90モード) &(改行)&を出力

テキストの印刷

C-u M-x ps-print-buffer-with-faces でpsファイルにカラーのまま出力. 白黒でよければ, C-u M-x ps-print-buffer

エラーメッセージ

** (emacs:16172): CRITICAL **: murrine_style_draw_box: assertion `height >= -1' failed

なんてエラーがでる場合,/usr/share/themes/Ambiance/gtk-2.0/gtkrc を編集. GtkRange::trough-under-steppers = 0 ⇒ GtkRange::trough-under-steppers = 1.

フレームを縦分割したときも折り返し

C-x 3したときに、右から文字があふれる人のために。

(setq truncate-partial-width-windows nil)

折り返しをON/OFF

C-c C-lで折り返したり溢れさせたり、を切り替えれるようになる。

(defun toggle-truncate-lines ()
  "折り返し表示をトグル動作します."
  (interactive)
  (if truncate-lines
      (setq truncate-lines nil)
    (setq truncate-lines t))
  (recenter))
(global-set-key "\C-c\C-l" 'toggle-truncate-lines) ; 折り返し表示ON/OFF

etags

たくさんサブルーチンを作る人は、tagをつけると幸せ。

~/workdir$ etags *f90 *f

とやると、workdir 内にある *f90 *fの中で呼ばれているサブルーチンのリストを作ってくれる。 リストはTAGSというファイルに吐き出される。

さらに、 *.f90のなかに、hogeというサブルーチンがあるとき、emacsでhogeの文字の上にカーソルをもってきて

M-.

と叩くと、hogeが定義されている場所に連れていってくれる。 元の箇所へ帰るときは

M-*

http://www.bookshelf.jp/soft/meadow_42.html#SEC634 http://www.emacswiki.org/emacs/?action=browse;oldid=TagFile;id=TagsFile

背景を黒く

背景が黒の方が目にやさしいらしい。 .zshrcか何かに、

alias emacs='emacs -r'

でおk。もっと凝ったことをしたければ、 http://www.emacswiki.org/emacs/ColorTheme なんてのもあるらしい。 load-pathの通った場所 1) にcolor-theme.elを置いて、 .emacsに

(require 'color-theme)

と書いて、M-x color-theme-[Tab]で気に入ったものを探せばよろしい。 気に入ったテーマが見つかったら、.emacsに

(color-theme-hogehogehoge)

と書いておくと、emacsを起動するたびにhogehogehogeを開いてくれる。 ただし、拾ってきたcolor-theme.elにはbugがいる模様。common-color-configurationの部分をコメントアウトすれば、一応動くようにはなる。FIXME

ispell-buffer

M-x(Alt押しながらx)ispell-bufferで、スペルチェックしてくれる。 Error: No word lists can be found for the language “ja_JP”.と怒られるかも。 ~/.aspell.confというファイルを新規作成して、

lang en_US

と書いておく。

ispell-buffer起動後は、変更したい単語を選ぶことでスペルミスをした単語を修正できる。 また、間違っていない場合(elastodynamics, FEMなど)はSpaceを押すとスキップでき、さらにその単語を自分の辞書に追加したい場合はiを押せば良い。 追加の単語は ~/.aspell.en.pws に記述される.直接編集することも可能.

emacsから日本語文書を直接印刷

sudo apt-get install gs-cjk-resource cmap-adobe-japan1
(setq ps-multibyte-buffer 'non-latin-printer)
(require 'ps-mule)
(defalias 'ps-mule-header-string-charsets 'ignore)

anthyの設定

; Anthy, swith mode by CTRL-
(load-library "anthy")
(setq default-input-method "japanese-anthy")
 
;(setq its-hira-period ".")
;(setq its-hira-comma ",")
(anthy-change-hiragana-map "," ",")
(anthy-change-hiragana-map "." ".")

スタートアップスクリーン

デフォルトで分割されている窓を1つに

(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(inhibit-startup-screen t))
(custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 )

yatexの設定

;旧来のショートカットを利用(ubuntu only?)
(setq YaTeX-inhibit-prefix-letter nil)
 
;;*.texで自動的にYaTeXモード
(setq auto-mode-alist
      (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
;;TeX typeset
(setq tex-command "platex")
;;dvi preview
(setq dvi2-command "xdvi")
;; 1 = Shift_JIS, 2 = ISO-2022-JP, 3 = EUC-JP, 4 = UTF-8
(setq YaTeX-kanji-code 4)
;;use LaTeX2e and AMS-LaTeX
(setq YaTeX-use-LaTeX2e t)
(setq YaTeX-use-AMS-LaTeX t)
;;font latex hook
(add-hook 'yatex-mode-hook
         '(lambda () (require 'font-latex)
            (font-latex-setup))) 
;;RefTeX mode
;(add-hook 'yatex-mode-hook '(lambda () (reftex-mode t)))
;;auto fill mode
;(add-hook 'yatex-mode-hook '(lambda () (auto-fill-mode t) (setq fill-column 70)))
;;color
;;(setq YaTeX-use-font-lock t)
;; section color
;;(setq YaTeX-hilit-sectioning-face '(light時のforecolor/backcolor dark時の forecolor/backcolor))
;;(setq YaTeX-hilit-sectioning-face '(white/snow3 snow1/snow3))
;(add-hook 'yatex-mode-hook
;'(lambda () (require 'font-latex)
;            (font-latex-setup)
;            (progn
;              (modify-syntax-entry ?% "<" (syntax-table))
;              (modify-syntax-entry 10 ">" (syntax-table))
;              (make-variable-buffer-local 'outline-level)
;              (setq outline-level 'latex-outline-level)
;              (make-variable-buffer-local 'outline-regexp)
;              (setq outline-regexp
;                    (concat "[  \t]*\\\\\\(documentstyle\\|documentclass\\|chapter\\|"
;                           "section\\|subsection\\|subsubsection\\|paragraph\\)"
;                            "\\*?[ \t]*[[{]")
;                    ))))
;;outline-minor-mode
;(add-hook 'yatex-mode-hook '(lambda () (outline-minor-mode t)))
;(setq-default outline-level 'outline-level)
;
;(defun latex-outline-level ()
;  (save-excursion
;    (looking-at outline-regexp)
;    (let ((title (buffer-substring (match-beginning 1) (match-end 1))))
;      (cond ((equal (substring title 0 4) "docu") 20)
;            ((equal (substring title 0 4) "para") 15)
;            ((equal (substring title 0 4) "chap") 0)
;            ((equal (substring title 0 4) "appe") 0)
;            (t (length title))))))
;
;;misc mode
;(add-hook 'yatex-mode-load-hook
;          (function
;           (lambda ()
;             (YaTeX-define-key "w" 'sdic-describe-word)
;             (YaTeX-define-key "\C-w" 'YaTeX-switch-mode-menu)))) 
;
;math-sign の追加
;
;(setq
; YaTeX-math-sign-alist-private
; '(
;   ("q"         "Q"          "(Q)")
;   ("z"         "Z"          "ZZ")
;   ("t""text""text")
;   ("qu"        "quad"         "__")
;   ("qq"        "qquad"         "____")
;   ("ls"        "varlimsup"     "___\nlim")
;   ("li"        "varliminf"     "lim\n---")
;   ("il"        "varinjlim"     "lim\n-->")
;   ("pl"        "varprojlim"    "lim\n<--")
;   ("st"        "text{ s.t. }" "s.t.")
;   ("bigop"     "bigoplus"      "_\n(+)~")
;   ("bigot"     "bigotimes"     "_\n(x)\n ~")
;   ))
;;dvipdfmxの追加
;; dviからpdfを作成する%sはファイル名
(setq dviprint-command-format "dvipdfmx %s")
;; latexmkを使う場合
; (setq tex-command "latexmk -dvi")
;;mendexの指定 †
;(setq makeindex-command "mendex")
;;テンプレート
;; ~/.LaTeX-templateは新規ファイル作成時に自動挿入するファイル名
;(setq YaTeX-template-file "~/.LaTeX-template")

a2psjを使った印刷

a2psjが必要.

sudo apt-get install a2ps-perl-ja
;;;====================================
;;;; print - 印刷設定
;;;====================================
;;; Postscript で印刷
(setq print-command-format "a2psj| lpr")
  (defun print-region (begin end)
    (interactive "r")
      (shell-command-on-region begin end print-command-format))
  (defun print-buffer ()
    (interactive)
      (print-region (point-min) (point-max)))
(setq print-function (function print-buffer))

emacs.elのサンプル

(setq ps-multibyte-buffer 'non-latin-printer)
(require 'ps-mule)
(defalias 'ps-mule-header-string-charsets 'ignore)
 
(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(inhibit-startup-screen t))
(custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 )
 
 
;;*.texで自動的にYaTeXモード
(setq auto-mode-alist
      (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
;;TeX typeset
(setq tex-command "platex")
;;dvi preview
(setq dvi2-command "xdvi")
;; Kanji code
;;;   1=Shift JIS
;;;   2=JIS
;;;   3=EUC
(setq YaTeX-kanji-code 3)
;;use LaTeX2e and AMS-LaTeX
(setq YaTeX-use-LaTeX2e t)
(setq YaTeX-use-AMS-LaTeX t)
;;font latex hook
(add-hook 'yatex-mode-hook
         '(lambda () (require 'font-latex)
            (font-latex-setup))) 
;;RefTeX mode
;(add-hook 'yatex-mode-hook '(lambda () (reftex-mode t)))
;;auto fill mode
;(add-hook 'yatex-mode-hook '(lambda () (auto-fill-mode t) (setq fill-column 70)))
;;color
;;(setq YaTeX-use-font-lock t)
;; section color
;;(setq YaTeX-hilit-sectioning-face '(light時のforecolor/backcolor dark時の forecolor/backcolor))
;;(setq YaTeX-hilit-sectioning-face '(white/snow3 snow1/snow3))
;(add-hook 'yatex-mode-hook
;'(lambda () (require 'font-latex)
;            (font-latex-setup)
;            (progn
;              (modify-syntax-entry ?% "<" (syntax-table))
;              (modify-syntax-entry 10 ">" (syntax-table))
;              (make-variable-buffer-local 'outline-level)
;              (setq outline-level 'latex-outline-level)
;              (make-variable-buffer-local 'outline-regexp)
;              (setq outline-regexp
;                    (concat "[  \t]*\\\\\\(documentstyle\\|documentclass\\|chapter\\|"
;                           "section\\|subsection\\|subsubsection\\|paragraph\\)"
;                            "\\*?[ \t]*[[{]")
;                    ))))
;;outline-minor-mode
;(add-hook 'yatex-mode-hook '(lambda () (outline-minor-mode t)))
;(setq-default outline-level 'outline-level)
;
;(defun latex-outline-level ()
;  (save-excursion
;    (looking-at outline-regexp)
;    (let ((title (buffer-substring (match-beginning 1) (match-end 1))))
;      (cond ((equal (substring title 0 4) "docu") 20)
;            ((equal (substring title 0 4) "para") 15)
;            ((equal (substring title 0 4) "chap") 0)
;            ((equal (substring title 0 4) "appe") 0)
;            (t (length title))))))
;
;;misc mode
;(add-hook 'yatex-mode-load-hook
;          (function
;           (lambda ()
;             (YaTeX-define-key "w" 'sdic-describe-word)
;             (YaTeX-define-key "\C-w" 'YaTeX-switch-mode-menu)))) 
;
;math-sign の追加
;
;(setq
; YaTeX-math-sign-alist-private
; '(
;   ("q"         "Q"          "(Q)")
;   ("z"         "Z"          "ZZ")
;   ("t""text""text")
;   ("qu"        "quad"         "__")
;   ("qq"        "qquad"         "____")
;   ("ls"        "varlimsup"     "___\nlim")
;   ("li"        "varliminf"     "lim\n---")
;   ("il"        "varinjlim"     "lim\n-->")
;   ("pl"        "varprojlim"    "lim\n<--")
;   ("st"        "text{ s.t. }" "s.t.")
;   ("bigop"     "bigoplus"      "_\n(+)~")
;   ("bigot"     "bigotimes"     "_\n(x)\n ~")
;   ))
;;dvipdfmxの追加
;; dviからpdfを作成する%sはファイル名
(setq dviprint-command-format "dvipdfmx %s")
;; latexmkを使う場合
; (setq tex-command "latexmk -dvi")
;;mendexの指定 †
;(setq makeindex-command "mendex")
;;テンプレート
;; ~/.LaTeX-templateは新規ファイル作成時に自動挿入するファイル名
;(setq YaTeX-template-file "~/.LaTeX-template")
 
;;;====================================
;;;; print - 印刷設定
;;;====================================
;;; Postscript で印刷
(setq print-command-format "a2psj| lpr")
  (defun print-region (begin end)
    (interactive "r")
      (shell-command-on-region begin end print-command-format))
  (defun print-buffer ()
    (interactive)
      (print-region (point-min) (point-max)))
(setq print-function (function print-buffer))
1) .emacsに
(setq load-path (cons (expand-file-name "~/適当な/ディレクトリの/名前") load-path))
を書けばよい