cockscomblog?

cockscomb on hatena blog

Sequel Proのクエリエディタで一つ前の文字を消す方法

f:id:cockscomb:20131005164803p:plain

Sequel Pro

Sequel ProというOS X用のオープンソースソフトウェアがあって、MySQLGUIクライアントとして使える。いろいろ便利でid:hitode909さんに教わってからよく使っている。

^H

Sequel Proには唯一重大な欠点があって、クエリエディタで一つ前の文字を消すことができない。^Hを押とMySQLのヘルプが出る。このため一文字でも打ち間違うとその瞬間すべてが台無しになり、習字の授業のような緊張感がある。一文字いちもじ心を込めて丁寧にタイプしなければならない。

ここで朗報です、Sequel Proはオープンソースプロジェクトです。Subversionリポジトリからcheckoutしよう。

http://www.sequelpro.com/docs/Source_Code

Xcode 5でビルドできますが、プロジェクトの設定が古いSDKを要求してきたりするので勘で直さなければならない。よく経験を積んでいたら直せると思う。

Xcode

Xcode

  • Apple
  • 開発ツール
  • 無料

SPTextViewの2241行目(いま現在のHEADにおいて確認)にある以下の記述を削除してビルドするとよい。

#ifndef SP_CODA
    // Note: switch(insertedCharacter) {} does not work instead use charactersIgnoringModifiers
    if([charactersIgnMod isEqualToString:@"h"]) // ^H show MySQL Help
        if(curFlags==(NSControlKeyMask))
        {
            [self showMySQLHelpForCurrentWord:self];
            return;
        }
#endif

これで^Hで一つ前の文字を消せるようになる。完全にハードコーディングされているからここまでしないとダメ。

いままで^B ^Dみたいにしないといけなかったけど、これなら一度で消せるので非常に快適になります。ご利用ください。

雑談

SP_CODAとか書いてあるのは、Coda 2にも一部のコンポーネントが内蔵されているからです。Panic Inc.はお礼にアイコンを作ってあげたという経緯がある。

Codaよくできてると思う。

https://itunes.apple.com/jp/app/coda-2/id499340368?at=11l8LQ

https://itunes.apple.com/jp/app/diet-coda/id500906297?at=11l8LQ

あとそういえばSSHクライアントのPromptっていうの便利で、学生時代にワークステーション数値計算しながら、時折様子を見るために使っていた。これもPanic Inc.です。

https://itunes.apple.com/jp/app/prompt/id421507115?at=11l8LQ

雑談 2

ショートカットキーみたいなやつ、デフォルトのキーバインドを上書きするのはよくない習慣で、特に^Hをヘルプにアサインされているソフトウェアが数多く見られますが、ユーザーは一つ前の文字を消したいと思っているはずで、これは頻度も高い。ですから^Hにヘルプをアサインすべきではないので、皆さん注意してください。しかしながら一文字いちもじ心を込めて丁寧にタイプしてほしいといったケースにおいては、この方法は大変有効です。

追記

KeyRemap4Macbook使えばよさそうという気もする。僕は使わない強い意志があって使ってなかった。