bash
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楽しい!
2012年10月09日
Mac OS Xを使い始めて、疑問に思っていたこと。
terminalを起動してbashが起動しているのに、.bashrcが反映されない。
改めて調べてみると、bashでの.bashrcは本来の設定場所ではなさそう。
.bash_profileがメインっぽい。
このページがわかりやすい。
http://d.hatena.ne.jp/takuya_1st/20110102/1293970212
ま、.cshrcの頃からの名残で、.bashrcもあるのかなと思いつつ、黙って.bash_profileで.bashrcを読み込む設定を入れた。
参考にしたのは以下。
http://tstylestudio.com/wp/2010/10/12/158/
terminalを起動してbashが起動しているのに、.bashrcが反映されない。
改めて調べてみると、bashでの.bashrcは本来の設定場所ではなさそう。
.bash_profileがメインっぽい。
このページがわかりやすい。
http://d.hatena.ne.jp/takuya_1st/20110102/1293970212
ま、.cshrcの頃からの名残で、.bashrcもあるのかなと思いつつ、黙って.bash_profileで.bashrcを読み込む設定を入れた。
参考にしたのは以下。
http://tstylestudio.com/wp/2010/10/12/158/
2010年01月27日
bashを使っていて、コマンドの別名定義は、.bashrcの中で、alias文を使う。
|
のように。
ところが、引数を与えたいaliasは書くことができない。
|
とは、書けない。 正解は、以下のようにfunctionを使う。
|
詳しくは、こちら。
- ブログネタ:
- Desktop Linux 入門 に参加中!