@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Emacs

Emacs Lisp のデバッガ edebug の使い方

pcomplete (programmable completion) の書き方 - 刺身☆ブーメランのはてなダイアリー で書いた pcmpl-lwp-request.el のデバッグをしているときに、便利な方法はないものかとおもってぐぐって見つけた edebug というのがとても便利だった。Emacs Lisp デバ…

pcomplete (programmable completion) の書き方

Emacs には pcomplete.el というものが付属しており、これはいわゆる bash-completion のようなものだが、 bash-completion ほど充実していなくて git などは補完できなかったので、自分でやってみた。まずいくつか読むべきファイルがある。俺の場合は /Appl…

anything.el で選択したものを別ウィンドウ(フレーム)で開かない設定

(setq anything-samewindow t)でいける!何度も忘れて困った・・・と思ったけどなんかうまくいかない。 GNU Emacs 23.0.60.1 (i386-apple-darwin9.7.0, NS apple-appkit-949.46, MacPorts の emacs-app-devel (@20091101), Cocoa を利用中。常に別フレームで…

バイト -> ギガバイトに変換する関数

ちょっと欲しくなったので書いてみた。 (defun gigabytes (n) (interactive "nBytes:") (message (number-to-string (/ n 1.0 1024 1024 1024))))1.0 で割らないと整数の割り算になって小数点以下が得られないのと、 message は文字列を受け取る関数なので割…

Emacs で編集中のバッファのタブをスペースに置き換える

M-x tabify, M-x untabify を使う。リージョンを指定するので C-x h とかで全部選択してしまうと楽。M-x tabify と M-x untabify - naoyaのはてなダイアリー 他、検索したらたくさん見つかった。素の Vi でてきとうにファイルを編集してタブでインデントされ…

M-x goto-line

今日やっと goto-line をみつけた。 Vim でいう 33G で 33 行目へカーソルをジャンプ、相当のもの。 http://www.ac.cyberhome.ne.jp/~yakahaira/vimdoc/usr_03.html#03.5 いままで Emacs でこの単純でよく必要になる作業のやり方がわからなかったので、モー…

anything.el 挑戦日記(一日目)(三回目)

今日からまた anything.el を使い始めました。過去に二回くらい挑戦して挫折した覚えがあるので、三回目のチャレンジです。とりあえず今やりたいことは、 local::lib でインストールした CPAN モジュールの pod がひっかからないので anything-c-source-man-…

実行結果がミニバッファに表示される関数の結果をコピーしたいときは *Messages* バッファをみればいい

例えば (count-lines-region) (M-=) を使うと、結果はミニバッファに表示される。しかしミニバッファへの出力はすぐ消えちゃうのでコピーしづらい。そういうときは、 *Messages* バッファをみるとそこにも出力されてるので、そこからコピーすれば kill-ring …

tokyo-emacs #x02 行ってきた

主催の id:hayamiz さんをはじめ、スタッフの皆さん、発表者の皆さん、お疲れ様でした。ありがとうございました。レベル高かった・・・。 eshell の何かで発表してみようかなー、なんて思ってて結局今回も名乗りを上げることはなかったのだけど、やんなくて…

mapconcat

Emacs Lisp で join みたいなのはないのかと思ってぐぐってたら 折り畳み表示 - (new Hatena).blog() をみつけて、 mapconcat というのを使えばいいことがわかった。elispでjoin - subpop - subtech にも載っていた。二年前か・・・。で、現在の環境変数を得…

MacPorts の emacs-app-devel (Cocoa Emacs) に乗り換えた

Cocoa Emacs を MacPorts からインストールしてみた。 - 日々、とんは語る。 を参考に。というかここの手順どおりにやればよい。インストール先ディレクトリも書いてあって親切だ。いままで自前でビルドした Cocoa Emacs を使っていて、 site-lisp の中身だ…

eshell で local::lib

;; local::lib (setenv "MODULEBUILDRC" "/Users/k-kaneko/perl5/.modulebuildrc") (setenv "PERL_MM_OPT" "INSTALL_BASE=/Users/k-kaneko/perl5") (setenv "PERL5LIB" "/Users/k-kaneko/perl5/lib/perl5:/Users/k-kaneko/perl5/lib/perl5/darwin-thread-mul…

re-builder で作った正規表現を query-replace-regexp に渡しても動作しない?

結論 re-builder で作った「文字列」を (insert "XXXX") して出力された「正規表現」を query-replace-regexp に渡せ メモ M-x re-builder で正規表現を組み立てるとき、その正規表現は「文字列」として与えなければならない(っぽい)。逆に、 query-replac…

Emacs で新規に空のバッファを作る

M-x switch-to-buffer [RET] hoge-buffer [RET]これしか知らない。 iswitchb 使ってるので C-x b でできないからやたら面倒。 create-new-buffer とか new-buffer とか、ありそうでなかった。もしくは *scratch* とかに貼り付けておいて、M-x rename-buffer …

Cocoa Emacs のフォント設定をコピペした

Cocoa Emacsでのフォント設定 - あどけない話 に書いてあるフォント設定をまるまるコピペした。 ;; フォントの設定 ;; http://d.hatena.ne.jp/kazu-yamamoto/20090122/1232589385 (setq my-font "-*-*-medium-r-normal--14-*-*-*-*-*-fontset-hiramaru") (se…

今日の eshell alias

$ alias svn 'SVN_EDITOR=/Applications/Emacs.app/Contents/MacOS/bin/emacsclient svn $*'Cocoa Emacs の中で起動した eshell から見える環境変数を定義するには environment.plist を編集して一回ログアウトしないといけないんだけどログアウト面倒くせー…

eshell におけるコマンド置換(バッククォート)

bash などのシェルには、コマンド置換という機能がある。 $ banner `uptime`eshell にも同様の機能があるが、バッククォートではなくて ${} を使う。 $ banner ${uptime}bash などのシェルにはやはりバッククォートと同様のことをする $() があり、 eshell …

eshell のバージョンってどうやって調べればいいのだろう

echo $SHELL で bash を名乗るからには環境変数には何もないわけだしなあ・・・。 (eshell-version) とかありそうだけどなかった。そういえば Emacs 22.1 あたりを使ってたときは、標準添付じゃなくて最新バージョンっぽい eshell を自前で入れようとしたら…

.emacs.el に outline-minor-mode を有効化する設定を追加した

.emacs.el を小分けにして load で個別に読み込むのが最近の?トレンドのようだけど、管理すべきファイルが増えてしまって自分にはかえって難しいと思ったので、徐々に .emacs.el に設定をまとめなおしている。でも .emacs.el が長くなると読みづらいのは確…

emacs-w3m でカーソルのある位置のリンクを外部ブラウザで開く

ローカル IMAP サーバ + Mew + emacs-w3m かつ Plagger を使い Subscription::LivedoorReader + Publish::IMAP という、とても面倒くさい環境にて。Mew の Message バッファで HTML メールは emacs-w3m で読むようにして、読んでるブログの記事とかの本文中…

emacs-w3m をインストールしたが起動しなかった

追記 CVS HEAD を co しなおしてやり直したらちゃんとインストールできた。 HTML メールも読めた。初期状態だと Mew は HTML メールを解析しないので、 (setq mew-use-text/html t) した。 Mew で HTML メールを読んでみたかった。mew.el にコメントアウトさ…

C-M-/ dabbrev-completion

どういう風に機能するのか知らないままにしておくのは気持ちが悪いので試してみた。bash のデフォルトの補完みたいな動きをするわけか。 compiler complete computer って書いてあるバッファで c[C-M-/] って押すと com まで補完されてウィンドウが分割して…

動的略語展開をすっかり無意識のうちに使うようになっていた

たぶん初めて動的略語展開という単語を目にしたのは社内のウィキで、むかーしの技術者ミーティングの議事録(ログ)のページを読んでいて Emacs 使いの先輩社員が「dabbrev なしでプログラムを書く気がしない」みたいなことを書いていて、 dabbrev ってなん…

Cocoa Emacs にして良かったこと悪かったこと

良かったこと コピペが透過的になった(Firefox で Cmd + C でコピーした文字列が C-y で Emacs のバッファにペーストできる) Mew で画像が添付されたメールを開くと画像が表示されるようになった フォント/タイプフェイスにいっそう綺麗なアンチエイリアス…

今日の .emacs

Cocoa Emacs にしたら region を pbcopy へ送る emacs lisp がうまく動かなくなった。このへんいじるべきかなーと思ってこんな風に変えた。 ;; X Window System のクリップボードとヤンクを共有する (ターミナルから起動するとダメ) (when (eq window-system…

bell を消す

bell がポンポンうるさいので消した。 (setq visible-vell t) だとすごくかっこ悪くて残念な感じになってしまったので、こんな風にしてみた。 (setq ring-bell-function (lambda () (message "ding ding!")))

Cocoa Emacs で複数のディレクトリを INFOPATH に設定する

INFOPATH も複数のディレクトリを指定したかったので、適当にコロンで区切ってみた。 <plist version="1.0"> <dict> <key>PATH</key> <string>/usr/bin:/bin:/usr/sbin:/sbin</string> <key>INFOPATH</key> <…</dict></plist>

Cocoa Emacs で環境変数を一発で設定する (~/.MacOSX/environment.plist 自動生成)

FAQ っていうか Info に書いてあった。手動で environment.plist ファイルを作る必要はない。(emacs)Top:: > *Note Mac OS / GNUstep:: > Mac / GNUstep Basics に載っていた。 M-x info mEmacs [RET] で、 Mac OS / GNUstep -> Mac / GNUstep Basics の項目…

Cocoa Emacs のディレクトリ以下に Mew をインストール

Mew が cannot load file とかのエラーで起動できなくなった。 load-path をチェックしてみるも、ちゃんと /usr/local/share/emacs/site-lisp/mew とかは含まれている。 /Applicatoins/Emacs.app/Resources/site-lisp 以下とかにないとまずいのかな、と思っ…

environment.plist で Cocoa Emacs の Info パスを設定する

Cocoa Emacs から Info を読もうとしたら、 Info のサーチパスがターミナルの中で起動したときと違うようで Mew の Info とかが読めなかった。Info-direcotry-list や Info-additiolan-direcotry-list Info-default-directory-list などのヘルプを見てみた上…