vimclient 機能を知ったのでメモを.
vim --servername VS
servername
にはユニークにユーザーが与える. ここでは, vim server
の頭文字のつもりで VS
とした.
vim --servername VS --remote-send "<esc><esc>iHello, VS. Do you read this?"
--remote-send で与えた文字列を、VS
と名のついた vim で、 忠実に、キーストロークを再現してくれる. ここでvim特有のキー表記、<esc>
だとか <cr>
だとか <C-n>
だとか が効く.
今の場合、
"<esc><esc>iHello, VS. Do you read this?"
これを送信した. 頭の "<esc><esc>i"
で確実に挿入モードに移行して、 その状態で文字列を入力する. 最後にノーマルモードに戻ることをしていない.
:help
には、ノーマルモードへの移行には
<C-\><C-n>
を使おうと、書いてあった. 理由は、<esc>
だと、ビープ音がなったり、画面のなんていうのかあのぴかっってやつ、一瞬白くなるやつ、あれがあるように設定してる人もいるから.それにしても、<c-\><c-n>
なんて初めてみた.確かに今、挿入モードやコマンドモードでこれを打ってみると、ノーマルに移行できた.
ノーマルモードへの移行は、頭ですることにしよう.
for i in `seq 1 10`; do vim --servername VS --remote-send "<esc><esc>:insert<cr>${i}<cr>."; done
:insert
コマンドの存在は知ってたけど、実際に使ったのは初めてだ.
:insert<cr>hoge<cr>fuga<cr>.<cr>
と使うものらしい. へぇ.
この機能、いかに活用すれば私の人生が幸福になるものか.
ちょっと思いつかなかった.
普通に考えれば、 ユーザーがvimを開き、それを見てそれを操作してる場面で、裏から別のプロセスがそのvimに操作を加えることになりそう. つまり、ユーザー側がサーバ. 自分が見てるものが突然、挿入モードに入ったりなんだったりしたら迷惑でしかない.
だから私が考えたのは、ユーザーはそのvimで文書の編集をする機会は2割以下で、ほかはただ、見るだけ.例えば、Twitterをvim上に実現するみたいに.
実際に使われてる例をまず見るのが一番だった. 実は、vmail
に使われている.
vim で gmail を見たり、送受信したりできるよ!っていう 謳い文句だけど、vimと言いながら gem install
させるじゃねーかと 思ってたんだけど、 vim単体で実現するのが面倒そうなこと(きっとメールの送受信部分だろう) は、Rubyで実現して、vimはユーザーインターフェースであり、インターフェースへの反映に使ってると見た.
i3wm で,壁紙画像をどう設定するんだって調べると,feh を使えっていう 記事が大量に出てくるので,私は少し前からそうしてた
feh --bg-fill ~/Dropbox/Pictures/cool.jpg
feh はそのまま使うとただの画像ビューワとして働く.というかこちらがメインな感じもする.
# 一枚だけ
feh ~/Dropbox/Pictures/cool.jpg
# 4.0 秒で次々行くスライドショー
feh -D 4.0 ~/Dropbox/Pictures/
サムネールモードなるものがあることに気づいた. 他にもモンタージュモードだとか, リストモードだとかあるんだけど, それらの差異はそこまで大きくなくて, それよりも,アクションなるものを設定できる. それが便利だ.
feh -t -E300 -y300 ~/Pictures/ -A 'feh --bg-fill "%f"'
これは,~/Picutures/ 内の画像を,300x300 におさまる大きさに全部変換して, いっぺんに一枚に表示する.アクションとして, 'feh --bg-fill "%f"'
が設定されているが, これは,一枚の画像の上にマウスオーバーした状態で, キーボードの0
を押すと, 'feh --bg-fill "%f"'
が新しい /bin/sh から実行される. ただし,%f
は,その画像のフルパス. フォーマットは他にもたくさんあって,もちろん組み合わせられる.
希望としては,マウスオーバーして,キーを押すなんてまどろっこしいことじゃなくて,クリックでいいじゃんって思うんだけど,サムネールモードにおいてクリックは,その一枚を新しいウィンドウで表示,という動作に結び付けられている.
アクションは10個まで,設定できて, 1
キー以上でそのアクションを起こせる
不満点として,さきほどのクリックにアクションを設定できないこともだけど, デフォルトだと,横に細く縦に長く表示されて, スクロールするのに,マウスのスクロールする回るあれじゃ動かなくて, ドラッグしないとスクロールできない. 面倒だ.
全体の大きさ(画像一枚じゃなくて,画像郡を表示するあのウィンドウ自体)は,-W, -H で設定するんだけど,両方を設定すると,W * H に表示できない画像は表示しない.だからどちらか一方までしか設定しないほうがいい.
feh -t -W 1300 -E300 -y300 ~/Pictures/ -A 'feh --bg-fill "%f"'