conque
2012年10月10日
普段、bashなどのシェルを使って作業をしていると、その作業履歴や出力結果を保存しておきたいときがある。
通常であれば、terminalのスクロール機能で遡って、ウィンドウマネージャの機能でコピペをすればいいのだが、それすらもマウスを使わずにやろうとすると、なかなか難しい。
VZ Editorの時代は、VZを常駐させておけば、ワンキーでバックログをエディターに取り込めたものである。
ひとつのソリューションは、screenやtmuxといった、仮想端末の仕組みを導入することであるが、それは利用形態そのものが変わってしまうため、そこまでするのは大げさだと思った。
シェルのバックログを何らかの手段で保存しておき、それを任意のタイミングでvimのバッファに渡せればいいわけで、それを実現する方法を探ってみた。
vimshellも良さげであったが、しっくりしたのは、ConqueTermというvimのプラグイン。
http://code.google.com/p/conque/
vimからpythonを呼び出すのは、evervimと変わらないので、早速導入。
vimを起動して、
:ConqueTerm bash
と打つと、bashでシェル画面になる。
vimのインサートモードでシェルが動いているので、<ESC><Enter>と打つと、インサートモードを抜ける。
すると、今までの出力結果が、vimのバッファ上にある、という仕組み。
以下のショートカットと設定を、.vimrcに書いておくことにした。
CWinsertを1にしておくと、インサートモードからの抜け方がCtrl+wの1キーで抜けられるようになる。
また、シェル画面の開き方も、SplitやVsplitやtabが選べる。
これでまた、キーボードから手を離さなくてよくなった。
vim楽しい!
通常であれば、terminalのスクロール機能で遡って、ウィンドウマネージャの機能でコピペをすればいいのだが、それすらもマウスを使わずにやろうとすると、なかなか難しい。
VZ Editorの時代は、VZを常駐させておけば、ワンキーでバックログをエディターに取り込めたものである。
ひとつのソリューションは、screenやtmuxといった、仮想端末の仕組みを導入することであるが、それは利用形態そのものが変わってしまうため、そこまでするのは大げさだと思った。
シェルのバックログを何らかの手段で保存しておき、それを任意のタイミングでvimのバッファに渡せればいいわけで、それを実現する方法を探ってみた。
vimshellも良さげであったが、しっくりしたのは、ConqueTermというvimのプラグイン。
http://code.google.com/p/conque/
vimからpythonを呼び出すのは、evervimと変わらないので、早速導入。
vimを起動して、
:ConqueTerm bash
と打つと、bashでシェル画面になる。
vimのインサートモードでシェルが動いているので、<ESC><Enter>と打つと、インサートモードを抜ける。
すると、今までの出力結果が、vimのバッファ上にある、という仕組み。
以下のショートカットと設定を、.vimrcに書いておくことにした。
nnoremap <silent> ,g :ConqueTermSplit bash <CR>
let g:ConqueTerm_CWInsert = 1
CWinsertを1にしておくと、インサートモードからの抜け方がCtrl+wの1キーで抜けられるようになる。
また、シェル画面の開き方も、SplitやVsplitやtabが選べる。
これでまた、キーボードから手を離さなくてよくなった。
vim楽しい!