Archive

Archive for September, 2009

linuxにおける画面分割の活用

September 5th, 2009 No comments

#追記
時代はGNU screenからtmuxへ – それ、Gentooだとどうなる?
tmuxというのもいいかもしれません
というのも、tmuxは特別な操作をしなくてもdetach時点での分割状態を保存してくれます
screenだとどうやれば分割状態を保存出来るのか自分は分かっていません
ただ、tmuxは現状パッケージマネージャで入れられないようなので更新が面倒ではあります
#追記終了

Linuxでは大体ターミナルから操作を行っているのですが、前からターミナルを便利に活用できるらしいscreenというのが気になっていました
screenは複数のシェルを切り替えて使えたり、分割表示したり出来るというのは知っていたので興味津々

早速インストールして実行すると普通のシェルっぽい表示です
このままだと複数のシェルを起動した時にどれを操作しているのか分からないので.screenrcを弄ります

hardstatus alwayslastline “%{= wk} %-w%{=bu dr}%n %t%{-}%+w %= %{=b wb}%y/%m/%d %{=b wb}%c”

とりあえずこれだけ書いてscreenを再起動
すると画面下部に0 bashみたいな表示になると思います(shellがbashの場合)

その状態で^a-c(又は^a-^c)と押すと0 bash 1 bashという表示になると思います(1 bashが赤文字の反転状態、そのシェルがフォーカスされている)
※^はCtrl、-は一度指を離す操作(つまり^a-cはCtrl押しながらa押下、指を離す、c押下という操作になる)

これでシェルが2つ起動している状態になります
シェルの切り替えは^a-0とかで出来ます(数字はシェルごとの番号に置き換え)

次に、screenで画面を分割してみます
^a-S(大文字のS)で画面が上下に分割されます
新たに生成された画面にはシェルがないと思うので^a-TABで画面を移動し、
^a-cしてシェルを生成するか、^a-0などして既存のシェルを割り当てます

環境(screenのビルド具合)によっては縦にも分割できます
^a-|(小文字のLではなく縦棒、いわゆるパイプなので注意)で縦に分割されます
画面の移動は同じくTABで出来ます
これで3ペイン表示とか出来るようになりました
ちなみにシェルの切り替えはvimの操作中とかでも普通に出来ます
ただし、screenのコマンド(^a-*)がvimなんかのコマンドと被らないように注意しなければなりません

さらにvimにおける画面分割も覚書
:split、:spで横分割
:vsplit、:vsで縦分割

これだけでかなり効率が上がると思います

screen

screen

Tags: , ,

MacでgVim

September 4th, 2009 No comments

windowsではKaoriyaさんのを使っているのですが、Mac版は公開されてないようでした
検索するとmacvim-kaoriya – Project Hosting on Google Codeなるプロジェクトを発見
早速インストール
portで云々などの情報も見たので面倒臭そうとか思ったのですが、普通にdmgを入れるだけでOKでした
自動更新も出来るみたいなのでport経由じゃなくても更新は簡単そうですね

Tags: ,

ActiveSupportで日時変換

September 2nd, 2009 No comments

Railsではたまに1.week.from_nowといった書き方を見ます
これはActiveSupportによってnumericクラスが拡張されているもので、様々な指定方法があります

例えば、?時からその日中(23:59まで)のデータをfindしたい場合、

# 12:00~23:59まで
date = Time.parse("12:00")
cond = []
cond << "created_at > ? AND created_at < ?"
cond << date
cond << (date + 1.day).beginning_of_day
@data = Model.find(:all, :conditions => cond)

といった書き方が出来ます
beginning_of_dayは時間の部分をその日の00:00に変換したtimeオブジェクトを返します(Time型のみ)

Rails の Date, Time 拡張

Tags: