created and maintained by tokd
EmacsTips
Emacs(Meadow) の Tips です.
hideshow
ブロック毎に表示と非表示を切替えるためのマイナーモード.C 言語などで深いネストがあるときに便利.
(add-hook 'c-mode-common-hook 'hs-minor-mode) (eval-after-load "hideshow" '(define-key c-mode-base-map "\C-c:" 'hs-toggle-hiding))
image-types
Meadow2 でマルチページの TIFF のインライン表示をしようとすると、固まったように
なって画像が画面に表示されるまで非常に時間がかかってしまう。TIFF は外部ビューワ
で構わないので、以下のようにした。
ImageMagick 6.2.0 Q16 対応版なら固まらないみたい。
(setq image-types (delq 'TIF (delq 'tiff image-types)))
Copyright 表記の更新
自動的に Copyright の年表記を更新するため、以下のようにした。ここでは VHDL ソースを想定しているが、同じようにすればどの言語でも適用できると思う。
(defun update-copyright-year () (interactive) (save-excursion (let ((current-year (format-time-string "%Y" (current-time)))) (goto-char (point-min)) (if (and (re-search-forward "^-- Copyright (C) ") (not (looking-at current-year))) (progn (forward-char 4) (if (looking-at "-20[0-9][0-9]") (replace-match (concat "-" current-year)) (insert "-" current-year))))))) (add-hook 'write-file-hooks (lambda () (if (string-match "\\.vhd$" buffer-file-name) (update-copyright-year))))
Emacs VHDL mode のコンパイルでエラー箇所にジャンプする
ModelSim vcom 用。
(require 'compile) (add-to-list 'compilation-error-regexp-alist-alist '(vhdl "^.+ \\(Error:\\|Warning: \\)\\(\\[[0-9]+\\] \\)*\\(.+\\)(\\([0-9]+\\)): .+$" 3 4)) (add-to-list 'compilation-error-regexp-alist 'vhdl)
'~' が latin-jisx0201 となるのを抑制する
Mew で `~` 以降が URL として認識されないので、mew-browse.el -> browse-url.el -> thingatpt.el と追ってみたけど無関係そう。ふと思いついて、C-u M-x what-cursor-position してみたら、チルダが latin-jisx0201 になっている。これだと正規表現にマッチしないので、以下のようにした。
(aset (get 'oldjis-newjis-jisroman-ascii 'translation-table) (make-char 'latin-jisx0201 126) (make-char 'ascii 126))
不要なバッファを自動的に消去する
lcomp.el の代わりに tempbuf.el を使ってみた
(require 'tempbuf) (setq tempbuf-life-extension-ratio 0 tempbuf-minimum-timeout 1) (add-hook 'compilation-mode-hook 'turn-on-tempbuf-mode) (add-hook 'completion-list-mode-hook 'turn-on-tempbuf-mode) (add-hook 'view-mode-hook 'turn-on-tempbuf-mode)
リモートファイルをドラッグ&ドロップで開く
dnd.el で "Remote files not supported" となって開けないので適当に修正
(defun dnd-open-file (uri action) (let ((local-file (dnd-get-local-file-uri uri))) (if local-file (dnd-open-local-file local-file action) (find-file (substring uri 5)))))
Spawning child process: exec format error
.emacs に以下を追加すれば解決することがある。
(require 'mw32script) (mw32script-init)