Emacs

カーソル位置のトークンを取得する

(タグジャンプの時のように) find-grep にカーソル位置のトークンを自動的に渡したくて、gtags-current-token を参考に、以下のような elisp を作っていたけど、これって thing-at-point でできるのね。 (defun my-get-current-token () (cond ((looking-at …

--script オプション指定時のロードメッセージ抑制パッチ

ここで Emacs のバグを発見したので、修正がてら報告。src/emacs.c で noninteractive のフラグを立てているのでそれを利用してやればよい。 [PATCH] Restrain the load message when emacs running with --script option http://emacsbugs.donarmstrong.com…

スクリプト言語 emacs

テキスト処理に今まで Sed/Awk/Perl/Ruby を使ってきたが、emacs を使ったことはなかった。Emacs 使いとして怠慢の極みだ。_| ̄|○ ありえるえりあ - Emacs Lisp を仕事で使ってみた「--script」 オプションの説明は man emacs ではでてこないが、info emacs…

bug-gnu-emacs ML を 3 日眺めて、気づいたこと

ML に投げるためのメールのお作法をメモしておく。 - エンコーディングを UTF-8 にしてテキスト形式で送る。 - パッチを添付する時は、件名に[PATCH]をつける。 - パッチ作成には diff -up または diff -uprN を使う(-p オプションが大事)。 - 機能追加アイ…

bug-gnu-emacs ML に elisp を初投稿してみる

機能向上の elisp を bug-gnu-emacs ML (バグレポートやちょっとした改善、機能要望向け) に投げてみた。 Minor Enhancement: Toggle narrowing/widen a function region and all http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=434 過去ログ…

より快適に grep-find する(改)

「よい人生とはよい検索だ。」(アキハバラ@DEEP)ということで(?)、以前作ったオレ版 grep-find を改良することにした。より快適に grep-find する以前は *grep* バッファを映しているフレーム以外で呼び出すと続けてフレームを作ってしまっていた。こ…

elisp の push に絶望したッ!

絶望したッ! elisp の push がリストの末尾ではなく先頭に要素を追加することに絶望したッ!それじゃ unshift じゃないかッ! ; OK。でも (d a b c) というリストになる。 (setq x '(a b c)) (push 'd x) ; OK。これがやりたかっただけなのに…。 (append x …

バッファは溜るよ、どこまでも

タグジャンプをしていると、いつのまにかどんどんバッファが溜っていく。C-x C-b してお目当てのソースに行こうと思っても大量のバッファ(ファイルに限らず *Help* とか *Buffer List* とかも含む)がリストされていてその時点でちゃぶ台を返したくなる。こ…

grep-find のジャンプ先バッファで行番号を表示する

せっかく grep-find が行番号つきで検索箇所を表示してくれるのでジャンプした先でも行番号を表示するようにしたい。 ジャンプした後に C-x ESC ESC の repead-command で呼び出した関数を調べると compile-goto-error という関数であることがわかった。じゃ…

より快適に grep-find する

Emacs の機能の中でも M-x grep-find はお気に入りのひとつ。文字列検索に加え + *grep* バッファに移動してヒット箇所で Enter するとそこにジャンプしてくれる便利なヤツなのだ。ただ、以下のような不満点もあったのでカイゼンしてみる。 - 検索する時にい…

複数のタグテーブルを切り替え

普段コードを読むときはタブジャンプに etags じゃなくて global に付属している gtags を使っている。理由は複数の候補の時に選択肢を表示して選べるようになっているから。 GNU GLOBAL ソースコードタグシステム http://www.tamacom.com/global-j.html た…

changelog エントリを自動挿入する elisp

お仕事で bug fix した rpm パッケージの spec ファイルを修正したついでに、changelog エントリを自動挿入する elisp を書いてみた。change-log-mode も rpm-spec-mode もよくできているが、日付フォーマットなど細かい制御は自分で行ったほうがより便利だ…

Emacs 22.1.1 インストールノート on Ubuntu 7.04@ガンダム風

Emacs 21.4.1 + mule-ucs 遅いぞ、何やってんの!!(by ブライト@ガンダム) 今まで、Ubuntu 日本語化チームが用意してくれた Emacs 21.4.1 (+ emacs-env-ja + mule-ucs + その他の el パッケージ) を apt-get install して使用していたが、遅すぎるのと gre…

アウトラインモードで翻訳作業

ちょっとした経緯で技術文書の一部を翻訳することになった。こんな時便利なのが Emacs の outline-mode。M-x outline-mode とした後、以下の 4 つのコマンドだけでドキュメントを章や項ごとに表示させたり隠したりすることができる便利ワザ。 - C-c C-t 全見…

man vs woman

Emacs から man を引くのに、M-x man だと日本語が文字化けするが M-x woman だとキレイに表示してくれる。しかも複数のエントリ( mkdir(1) と mkdir(2) など )がある場合は事前にどちらを引くか問い合わせてくれる。カラー表示にもしてくれるし、やはり女…