Thunderbird:キーバインドをvim風に変更する

新しいMacが届き、Thunderbirdをインストールしました。素の状態だとfキーとbキーでメッセージを行き来します。 これをgmailのようにjとkで移動したいので、アドオンをインストールしました。

  1. Thunderbirdの「ツール」から「アドオン」を選ぶ
  2. 「すべてのアドオンを見る」
  3. 検索窓にdorandoと入力
  4. Dorando Keyconfigをインストール
  5. インストールが終わったらthunderbirdを再起動
  6. 「ツール」から「アドオンの設定」→「Dorando Keyconfig」
  7.  既存のJとKキーの割り当てを削除
  8. 「前へ>メッセージ」をKに変更し「適用」をクリック
  9. 「次へ>メッセージ」をJに変更し「適用」をクリック

svn:ワーキングコピーの特定のファイルを特定のリビジョンに戻す

まず、どのリビジョンで変更になったかを確認:

svn log ファイル名

ここで、svn logが全ての更新を表示してくれない場合は、リポジトリ全体を/tmpとかにcoすると出ます(他に方法があるとは思うけど・・・)

次に、ファイルをもとに戻します:

svn update -r リビジョン番号 ファイル名

Git:削除してしまったファイルを復活させる

まず、どのコミットで消してしまったかを探します:

git rev-list -n 1 HEAD -- deleted_image.png

すると長いコミットのハッシュが出力されます。 そのコミットで削除してしまったので、その1つ前の状態から取得します:

git checkout コミットハッシュ^ -- deleted_image.png

コミットハッシュの後にカラット^を付けてください。

bash:空白を含むファイル名

次のように、全てのファイルに対してなにかの処理を行いたいとします:

for i in `find . -type f`
do
ls ${i}
done

この場合、hello world.txtといったようにファイル名に空白が入っているとうまく動きません。 デフォルトのIFS(区切り文字)が空白を含むため、

ls hello
ls world.txt

といった具合に解釈されてしまうためです。

対策ですが、

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for i in `find . -type f`
do
ls ${i}
done
IFS=$SAVEIFS

のようにIFSを一旦、空白を含まないものに差し替えるとうまくいきます。

vim:viminfoが生成されない

CentOS7で.viminfoが書き出されない、変だなーと思ったら、デフォルトのvimには入ってないのでした。

yum -y install vim-enhanced

と実行して.viminfoが有効になっているvimをインストールし

vi .bash_profile

として

alias vi='vim'

と設定。最後に

source .bash_profile

とすると、viminfoが利用されるようになります。

CakePHP3:既存のソースにローカリゼーションを導入する

諸々の事情で、既存のソースを多言語対応することになりました。 いろんな箇所に

echo "こんにちは"

といった具合に辞書を参照しない形でテキストが埋め込まれています。 これを

echo __('こんにちは');

に変更したいのだけど、手で書いていたら日が暮れてしまう。 そこでvimのマクロを使うことにしました。

.vimrcに次を書いてください:

let @a=':s/\%V.*\%V./<\?= __(''&'') \?>/^M'

※最後のMについてはそのまま入力するのではなく、コントロールキーを押しながらvMと押すと入ります

次に、テキストを辞書への参照に変更したいソースをvimで開いて、vコマンドで選択し、次に、@aと入力すると__('')で括られます。