見てくれた人:人
Sunaの仲間のヒトビト
Sunaの観測地点
Sunaの聞いてる曲
学校の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
因みに参考にしたのは以下のページ。
ついでに、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 のキーバインドで一発でコピれるようになった。便利。
2007-11-20 訂正:concatの行のダブルクオート2つをシングルクオートに変更。
URLに含まれる記号がシェルで展開されてしまうのを防ぐ為。
2007-11-21 訂正:w3mのURLコピーの行も内側のダブルクオートをシングルクオートに変更。
サイト構築中…完成はいつの日か。
連絡先: