Livedoorブログからの移動

Sublime Text 3の試用と環境設定

IntelliJ IDEAを長らくscalaの開発環境として使ってきたが,

  • 動作が(eclipseよりは軽くても)重い.
  • gitプラグインが残念
    • git commit時にインスペクション走らせるのはいいけど, 時間がかかりすぎ.
  • スクリプトをちょっと書くには向かない.
  • プラグイン書くの面倒くさい. 
等の理由から何かないものかと探していた.

emacsという線も考えていたけれども, プロジェクトごとの設定等には難があるように感じたので, Sublime Textを使ってみることにした. 選んだ理由としては,

  1. 設定ファイルがJSONなので書きやすそう.
  2. プラグインがPythonな(scalaではない)のは若干残念だけどどうせシェルコマンドのラッパしか作らないので問題無さそう.
  3. いわゆるIDE的な使用をするのに最低限の機能は持っていそう.

といった感じ.


Sublime Textはweb上の情報が分散しているように感じされたので, 自分の環境設定と使い方についてをまとめておく.

ただし, 全部まとめると長くなるので, 今記事は基本設定(具体的にはインストール, 外観, 基本的なキーバインド)についてのみ触れる.

インストール

Sublime Textは無料版と有料版があるが, 無料版は機能制限ではなく, たまに購入を促されるだけで無期限・全機能を使える.

70ドルとこの手のソフトとして高くはないので, ダイアログが鬱陶しくなったら買おうかな, みたいなことを考えている. 現状まだIntelliJから乗り換えるかが検討段階なので買う気になれない.

今回は無料版のインストール方法(in Ubuntu 14.04)を説明する.インストールは以下のコマンドで行える.

$ sudo add-apt-repository ppa:webupd8team/sublime-text-3
$ sudo aptitude update
$ sudo aptitude install sublime-text

Sublime Text 3はベータ版との噂もあるが, エディタなんてバグってもシステムには影響しないことが大半だし, どうせなら最新版を使ってしまったほうが後々のバージョンアップ時に楽だというのが自分の意見. そもそもSublime Textに詳しくないのでベータ版ってのもどっかで見ただけなので間違ってたらごめんなさい.


パッケージ管理システム

当然ないと始まらない. というか大体のIDEはなんでパッケージ管理弱いんだろうね.

このページへいって, 左側の"SUBLIME TEXT 3"って書かれている箇所の読みにくいスクリプトをコピーする. で, C- `でなんかコンソールっぽいのを開いて, Enterで実行.

しばらく待つとインストール完了.

日本語入力

このままではLinuxだと日本語入力ができないので, コメントが書きづらい. というわけで, このへんを参考にインストール.

mozcemacs-mozcが必要なので,

$ sudo apt-get install mozc emacs-mozc

を忘れずに. あと, デフォルト切り替えキーバインドのC-\はよくいろんなものと競合するのでC-:あたりにでもしておくと良い.

外観設定

いつもどおり, xmonad使用を前提とした設定なので, 普通のウインドウマネージャを使っている人には色々合わないことはあろうかと思う.

フォントサイズ

デフォルトのフォントサイズ10はちょっと小さすぎだったので, フォントサイズを変更する. Preferences -> Settings - Userでユーザ設定のファイルを開き,

    "font_size": 15,

とか書いてフォントサイズを変更する.

ついでに, フォントもSource Code Proにでも変更しておく. 他の環境に移っても動作が変わらないよう, 今のフォントに文句がなくとも何かしら統一する, というのは重要だと思う.

  "font_face": "Source Code Pro",

フリーモード

フリーモード(集中モード)とはコーディングに集中したい時のモード. とはいえ, デフォルトの設定だと単純化させすぎだと自分は思う. 具体的にはステータスバーとミニマップは表示して欲しかった. なんだけど, いくら調べても, そういう設定がない.

で, 公式のドキュメントみたら, メニュー(とか)のView -> Show Status Barでステータスバーを表示するとそれをsublime textが覚えてくれるそうです.

なんだそりゃ. "show_status_bar": trueとか設定ファイルに書き込む方が自然だと思うんですが.


他には行番号とか欲しいなとか, 一つのファイルしかみないなら行折り返しいらないなとか思ったので, 結局こんな設定に落ち着いた.

{
  "line_numbers": true,
  "gutter": true,
  "draw_centered": false,
  "wrap_width": 0,
  "word_wrap": false,
  "scroll_past_end": true
}

画面分割

デフォルトではemacsのような縦横への分割はできない(?). 下の通りにemacsバインドにするとC-x 2とかで分割ができるのでまぁいいか.

キーバインド

emacs風に

まずはemacs bindにしないと色々話が始まらない. これについては, この記事が参考になる, というかほぼそのままでOK.

が, このままだとC-@によるmark-setができないので, ユーザのキーバインド設定に以下のようにして, それを追加する.

{"keys": ["ctrl+@"], "command": "sbp_set_mark"}

参考になった情報

    • 内容がまとまっていて最初の一歩としてはすごく便利だと感じた. まだ読書中.
  • 公式ドキュメント
    • いきなり「非公式のドキュメントは一杯情報があるすごいドキュメントです!」とか書かれているあたりに不安を感じるけど, ちゃんとしたドキュメント.
    • 基本的な使い方, Vintage Mode(viモード?), プラグインの書き方, ひと通りのことが大体書かれている.

現在残っている問題点

  • ファイルを閉じるキーバインドがわからない.
  • mark時に色が変わらないので見づらい.
  • タブ間を移動するキーバインドがわからない.
  • 全角半角で日本語入力の切り替えをしたい.
  • UndoがM-/でない(コメントに使われているからかな).

使ってみての感想

動作が軽快・設定が簡単とプログラミング用エディタとして重要な要素は揃っているように思う.
当初はscala用エディタとして導入を検討していたが, markdown, latex, javascript, html, cssについても環境設定して完全にemacsを置き換えることも視野に入ってきた.