norinyang メガ進化!

気ままに色々

Sublime Text 3 でカーソルを見失う問題

Sublime Text の カーソルとカーソル行ハイライトが全く主張してくれなくてどこにいるかしょっちゅう見失う
もっと、原色ばりばりに光り輝いてほしい

という訳で、どうにかしてみた

http://tmtheme-editor.herokuapp.com/

Sublime Text のテーマを自分で作れる&プレビューがみられるちょういけてる便利ツール!

がしかし、このツール初見だとどうしたらいいかいまいちわからんし
そもそも自分が今使っているテーマをベースに編集したいけどどうすんの?
ってなる
英語厳しい

ベースとなるテーマを選ぶ

デフォルトではMonokaiというテーマが選ばれているはずで、どこからかえればいいかわからない
URL構造みればどうなってるかわかるが、Monokaiってなってるところをベースにしたいテーマ名二かえたらよいが
対応してる/してないとかあるしGUIからやる方法を知っておく方が何かとよい
f:id:norisu0313:20140219020813j:plain

画面左上このボタンを押すとテーマの一覧が出てくる
f:id:norisu0313:20140219021213j:plain

こんな感じ

好きなテーマを選んでクリック!

今回はみんな大好き Flatland を選択しました。

カーソル行ハイライト色を変える

カーソル行ハイライトの設定がは General タブ内なので切り替え
f:id:norisu0313:20140221010709j:plain

Line Highlight って項目がある
f:id:norisu0313:20140221010935j:plain

この項目がカーソル行ハイライトの色になるのでこれを書き換える
Color の部分クリックすると GUI のカラーパレット出てくるので適当に変更

残念なことにプレビューにちゃんと表示されないので、うまくいっていない訳ではないです

実際に Sublime Text 3 に適用

まずはいじったカラーテーマをファイルとしてダウンロード
f:id:norisu0313:20140221011300j:plain

Mac なら
/Users/[ユーザー名]/Library/Application Support/Sublime Text 3/Packages/Color Scheme - User/
にダウンロードしたファイルをおいて
Sublime Text をきどうして、普通に追加されたテーマを選べばOKです

Windowsだとパスが違うので注意

だがしかし

さて、ここまでやって思った、カーソル行の色濃くしたから行はわかるようになったけど、行の中でカーソルがどこにあるかわからない問題解決してない!?
元々vimerでかつSublime TextでもVintageモード使っている身としては
f:id:norisu0313:20140221011909j:plain
こう
なんというかブロックぽくなってほしい

Sublime Text 2 の場合は
SublimeBlockCursor - Packages - Package Control
このパッケージを入れたらカーソルをブロックにすることができる

しかし Sublime Text 3 は未対応で、直接 github から落としてきてパッケージの下にぶち込んだりしても動きません

ST3 Support · Issue #21 · netpro2k/SublimeBlockCursor · GitHub
完全に放置されてることがわかる

という訳でこの Sublime Text 3 で使えるように直してみた
といっても、解決方法は上記URLに書かれているのでそれを実践

まずは落としてくる

cd /Users/[ユーザー名]/Library/Application Support/Sublime Text 3/Packages/ 
git clone git://github.com/netpro2k/SublimeBlockCursor

SublimeBlockCursor.py の書き換え

変更するべきなのは2箇所

6行目

    def view_is_widget(view):

となっているところを

    def view_is_widget(self, view):

に変更

25行目

        if view_is_widget(view) or (is_vintage_mode and not command_mode):

となっているところを

        if self.view_is_widget(view) or (is_vintage_mode and not command_mode):

に変更

これでブロック調こカーソルになったはず

f:id:norisu0313:20140221015237j:plain