sublime Adventカレンダーの5日目です(2記事目;ω;`)。
はじめに
皆さんsublime使ってますか!使っていることだと思います。
ではsublimeのプロジェクトを使っていますか?
使わなくても特に不便ないので使っていない人も多いと思います。
しかしsublimeのプロジェクトは便利なのでぜひ使いましょう!
sublimeのプロジェクト
sublimeのプロジェクトはIDEのようなワークスペースではなくディレクトリの管理をします。
なのでどちらかと言えばブックマークのような使い方になると思います。
では早速使っていきましょう。
普段使っているsublimeの画面ではサイドバーにディレクトリが乗っていると思います。
これらのディレクトリをプロジェクトとして管理するには図のようにメニューバーのproject
からSave Project As
として適当な所に保存します。
そうすると、***.sublime-project
と***.sublime-workspace
というファイルが出来ると思います。
sublime-workspace
これは履歴や開いていたファイルや画面分割のデータです。これによってプロジェクトが閉じた時と同じ状態を復元することが出来ます。自分でいじることはないと思います。
sublime-project
これはプロジェクト管理の本体です。
最初は以下のようになっていると思います。
{
"folders":
[
{
"path": "/path/to/project/report5"
},
{
"path": "/path/to/project/report4"
}
]
}
これに追加するとそのプロジェクトだけ有効になります。便利ですね!
以下のものが設定できます。
folders
- path フォルダーへのパス。必須
- name サイドバーでの表示名
- file_exclude_patterns 非表示にするファイル名のパターン
- folder_exclude_patterns 非表示にするディレクトリ名のパターン
- file_include_patterns 表示にするファイル名のパターン
- folder_include_patterns 表示にするディレクトリ名のパターン
setting
PreferencesのUser settings
を上書きすることが出来る。
build system
標準設定のビルドシステムを上書きする設定を書ける。
適当に設定したあとのsublime-projectはこのような感じになるでしょう。
{
"folders":
[
{
"path": "/path/to/project/report5",
"name":"test5"
},
{
"path": "/path/to/project/report4",
"file_exclude_patterns":["*.out"],
"folder_exclude_patterns":["*.out.*"]
}
],
"settings":
{
"translate_tabs_to_spaces": false,
}
}
詳しくはドキュメントを参考にして下さい。
個人的にsublimeの気に入っていることはこういった設定が全てファイルで管理されていていることです(なにと比べてとはいいませんが)。どの設定が適用されているのか分かりにくいという意見もありますが、柔軟性があり、また自分の好きなように変更できるので便利です。
Gotoの強化
sublimeには関数宣言や変数宣言の場所に跳ぶGoto Definition
やGoto Symbol Definiton
の機能がありますが、これがプロジェクトだとプロジェクト内の全てのファイルから検索することが出来るそうです。(ある程度はそのままでも出来るようですが)
プロジェクトの管理
さてこれでsublimeのプロジェクトを作れるようになったわけですが、このまま使っていると***.sublime-project
などのファイルが量産されてしまい、どこになにがあるのか分からなくなってしまいます。保存する時に一箇所に保存したらいいのですが、なかなかそこまで几帳面に出来ないと思います。
そこでProject Manager
というプラグインを入れます。
Package ControlからProject Manager
を入れて下さい。
ここでAdd Projectをすると新しいプロジェクトが作られます。
また、下の方には保存したプロジェクトの一覧が表示されています。これらを選択するとそのプロジェクトが開かれます。
project-setting
ファイルはsublimeの設定があるPackages/User/Projects
の中に保存されます。ここでさらにフォルダ分けをしてもProjectMangaerは認識してくれるので、こまめに分かりやすいように分類するといいでしょう。
pecoで起動
sublimeでプロジェクトを使う設定がほぼ終わりました。これでプロジェクトがだいぶ便利になったと思います。
しかし普段terminalを使っている身としては一度sublimeを開いて、projectManagerを開いて、プロジェクトを開く、というのは少しめんどうです。
なので、あの便利で素晴らしいpecoを使って起動できるようにします。
以下をzshrcに追加します。(shellscriptを普段書かないのでもっといい方法があるかもしれません...)
#pecoでsublime-projectを開く(project managerを使用)
function sublime-projects() {
subl_root='/path/to/Packages/User/Projects'
root_len=${#subl_root}+3
# files=`(ls -l ~/Projects/sublime_projects | grep project | cut -d " " -f 10)`
files=`find ~/path/to/Packages/User/Projects -name "*sublime-project"`
if [[ -n "$files" ]]; then
project=`echo $files | awk '{ name=substr($0,'${root_len}'); print substr(name,0,index(name,".sublime-project"))}'| peco`
if [[ -n "$project" ]]; then
subl `echo $files | grep $project`
fi
else
echo "no projects"
fi
}
alias subp='sublime-projects'
これでsubpというコマンドを打つとsublimeのプロジェクトの一覧がpecoで表示され起動出来るようになりました!
皆さんもこれで便利なsublimeライフを!