«前の日記(2007-11-12 [月]) 最新 次の日記(2007-11-14 [水])» 編集

堕落と混迷の日々

見てくれた人:人

Sunaの仲間のヒトビト
Sunaの観測地点
Sunaの聞いてる曲

2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|
2009|01|03|08|09|10|11|
2010|01|04|05|06|07|08|10|
2011|03|08|
2013|08|

2007-11-13 [火] 便利さの為の手間。

_ [UNIX]screen を利用して Emacs, w3m を連携させる

学校のUNIXサーバ上で、CUIの画面・セッション管理ツールであるscreen(4.00.02)を立ち上げた上で、テキストエディタのEmacs(21.3.1)とテキストブラウザのw3m(0.5.1)を起動して使っている。
Emacsではメモ整理環境としてhowm(1.3.4)を利用し、2chブラウザであるnavi2ch(1.7.5-DEV)も使っている。このような環境では、しばしば文中のURLに飛びたい事がある。
Emacsは高機能なので、文中のURLを任意のブラウザで開く関数を持っている。emacs-w3m等を利用すれば、Emacs上で対象ページを閲覧できる。

ところが、学校のサーバにはemacs-w3mは導入されていない。自分で持って来る事もできるが、素のw3mの操作感の方が個人的に好きだったりするし、この際Emacsで開いたURLを直接w3mに開かせようと思い立った。

幸い、Emacsはカスタマイズ性が高く、URLを渡すブラウザとして任意のコマンドを指定できる。この機能とscreenを組み合わせて、望みの事を実現できた。 具体的には、以下を ~/.emacs に書き加える。前提条件は、w3mでEmacsっぽいライン編集を許可していることと、別スクリーンにw3mが呼ばれていること。

(setq browse-url-browser-function 'browse-url-screenw3m)
(defun browse-url-screenw3m (url &rest ignore)
"Browse URL using w3m."
(interactive (browse-url-interactive-arg "URL: "))
(message "Loading the URL with w3m...")
(shell-command (concat "screen -X eval \'at w3m stuff \"U^A^K" url "^J\"\'"))
(shell-command "screen -X eval \"select w3m\"")
(message "Loading the URL with w3m...done")
)

これで、Emacs上でURLとして認識されている文字列上でEnter入れたら、自動的にw3mの画面に遷移してそのURLを開く、という動作が可能になった。
お好みで、(global-set-key "\C-c\C-j" 'browse-url-at-point)とかセットしておいても良いと思う。カーソルをURLに置いてC-c,C-jすればブラウザ呼べるようになる。
今までscreenでコピペしてたので、かなり便利になった。関数名とかは適当です。おかしい所あったらツッコミ下さい。既出だったりしたら残念だな。w

因みに参考にしたのは以下のページ。

EmacsWiki: BrowseUrl
Emacsでブラウザ呼ぶ為の様々な設定例がある。参考になった。
[Screen] man の結果を起動中の w3m 上に表示させる
ここのwmanを参照。このスクリプトも便利そう。

ついでに、w3mで見ていてページのURLとタイトルをメモしたくなった時に、素早くscreenでコピる方法も見付けたので~/.w3m/keymapに以下の様に設定。

keymap C-c-u EXEC_SHELL 'screen -X eval "register . \'$W3M_URL $W3M_TITLE\'" "stuff \" \""'

自分はWebページをメモるとき、「URL + 半角スペース + ページタイトル」でテキストファイルに記録してるので、w3m で C-c u のキーバインドで一発でコピれるようになった。便利。

[Screen] w3m で現在閲覧中のサイトの URL をコピーする
こちらはこのページを参考にした。

2007-11-20 訂正:concatの行のダブルクオート2つをシングルクオートに変更。
URLに含まれる記号がシェルで展開されてしまうのを防ぐ為。
2007-11-21 訂正:w3mのURLコピーの行も内側のダブルクオートをシングルクオートに変更。

お名前:
E-mail:
コメント:
[]

サイト構築中…完成はいつの日か。
連絡先:sunasaji+web at gmail dot com