vim内でircをできる、vimircについての自分用メモです。
vimircそのものについては、公式の http://www.vim.org/scripts/script.php?script_id=931 を参照してください
自作パッチ
vimircの使いづらい部分を自分が勝手に修正したパッチ。かなり適当なので他の人が使えるかは微妙
修正内容
tir.2
- 複数サーバ指定時にport番号が正しく対応していなかった問題を修正
- g:vimirc_preflangforceutf8servers パラメータを追加
- ここにはカンマ区切りでサーバ名を設定します。指定されたサーバは強制的にpreflangがutf-8扱いになります
tir.1
- vim7でエラーが出て動かなくなっていた問題を修正(この修正により、vim6以前では動作しなくなった)
- port番号に何番を指定しても6667番に接続しにいっていた不具合を修正
- g:vimirc_preflang についての説明文コメントを追加(ircサーバのencodingがutf-8かjisかを選択する目的のパラメータ)
TODO
- ログファイルに会話が記録されない問題を直す(あとで)
- 会話中に特定文字列を発見した時のハンドラ設定をできるようにしたい
- gvimでも動作確認をする(面倒なので多分行われない)
- この修正内容をgithubで管理する
概要
- vim操作が可能で、vimプラグインが使えるircクライアント。
- skk.vimから日本語入力したり、普段のvimと全く同じ感覚でircができる。
- 動かすには、vimがperl入り( --enable-perlinterp )でコンパイルされている必要がある(irc通信部分がperlで書かれている為)
- 色々不便な部分がある(後述の「問題点」参照)
問題点
- 今のところ、ログファイルへの会話記録の保存部分が動いてない
- ほおっておくとどんどんメモリを食うので、たまに再起動する必要がある。
- 文章入力中は、他の人が発言しても表示が更新されない
- 文章入力中のまま長時間放っておくと、その間PONGを打ち返せないらしく、接続がタイムアウトしてしまう。
- 全ログ表示ウィンドウなし。全ログを見たい場合は、自分で別screen等でログファイルをtail -f的に表示させる必要がある、が、現在ロギング機能がちゃんと動いていない
skk.vim との相性問題について
- let skk_remap_lang_mode = 1 にしておく事。これをしておかないとSKKオン時に、vimircでのメッセージ送信の為のEnter入力がskk.vim側にキャッチされてしまう
- 漢字変換を行う度に、メッセージ表示欄が再描画されてちらつく
- カレントチャンネルを^Nや^Pで変更した後に、日本語入力モードが何故か英語モードになってしまう時がある
操作tip
- メッセージ送信/ircコマンド入力の前には、iやaを押して入力モードに入る事。
- チャンネルバッファ間の移動は、 ctrl-N と ctrl-P 。
- qでchannel/privを抜ける、もしくはircサーバとの接続を切る
- Qで完全終了。
使い方
.vimircrc の分かりにくい設定項目について
- g:vimirc_server
- 「irc.freenode.net:6667」のようにport指定可。
- カンマ区切りで複数指定可。
- g:vimirc_pass
- これはnickやchanのpassではなく、「パスワードのかかったプライベートircサーバ」のpass。
- 上のg:vimirc_serverの設定が一個だけなら直にパスワードを指定すればok。
- 上のg:vimirc_serverの設定が複数の場合は、「passstr@192.168.0.1」みたいに@を使ってサーバ名を指定する事。
- サーバ名を指定する際は、g:vimirc_serverでport名を書いていたとしても、port部は書かないようにする
- これもカンマ区切りで複数指定可。
- g:vimirc_autojoin
- 「"#chan1|#chan2@irc.foo.com,#chan3@irc.bar.com"」というサンプルがあるが、これは「irc.foo.comの#chan1」「irc.foo.comの#chan2」「irc.bar.comの#chan3」に自動的にJOINする、という意味になる
- これもサーバ個別指定をする際には、port部分を書かないようにする
- サーバ名指定する場合は、上記のg:vimirc_serverに該当サーバを設定しておく事。結構忘れやすい
- g:vimirc_preflang および g:vimirc_preflangforceutf8servers
- これは完全に、「日本のircサーバの文字コードはjis」「freenodeはutf-8」の問題に対応する為だけのもの。よって、以下の設定をすればまず問題ない筈。
- let g:vimirc_preflang = '7bit-jis'
- let g:vimirc_preflangforceutf8servers = 'chat.freenode.net'
- もし個人で立てたプライベートircサーバの日本語コードをutf-8にした場合は、 g:vimirc_preflangforceutf8servers の末尾に「,192.168.0.1」とか適当にカンマ区切りで追加すればok。プライベートircサーバの日本語コードがjisなら、そのままでいい。
- preflang系がうまく動かない場合は、.vimircrcではなく.vimrcのencoding設定がおかしい可能性あり
- なので前述のvimirc起動スクリプトでは明示的にset encodingしている
最終更新 : 2017/01/14 12:16:35 JST