とある人工知能の雑記帳

人工知能(主に自然言語処理)とかに関する覚え書き

SublimeText2とターミナルの相互起動など

SublimeText2(以下ST2)は非常に便利かつ多機能なテキストエディタで自分も愛用しているけど、まだいくつか痒いところがある。

  • コードを実行する時に一々ターミナルでcdを打つのも面倒くさい。
  • 加えてターミナルからファイルをopenする時もプログラムも指定したい。以前に.bashrcにaliasを記述する方法を見つけたが、どうも上手く行かなかった。

ということでST2とターミナルとの相互起動ができたら結構捗るんじゃないかと思って、メモ書きといった意味も込めてここに残しておく。

ターミナル→ST2

ターミナルで

sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

を実行。

Make Links

ちなみに、lnはファイルやディレクトリにリンクを貼るというコマンド。また、lnのオプションでシンボリック・リンク[-s, --symbolic]とハード・リンク[-d, -F, --directory]を作ることができる。この2つのリンクの違いとして、

  • シンボリック・リンク: あるファイルやディレクトリを別のパスで参照できるようにする仕組み。
  • ハード・リンク:あるファイルやディレクトリに別の名前を与え、ユーザやアプリケーションがその名前をファイル本体と同様に扱えるようにする仕組み。
  • シンボリックリンクはデバイスやファイルシステムにまたがって自由にリンクを張ることができるが、ハードリンクではファイルシステムを管理するファイルエントリに複数の名前を登録するため、異なるファイルシステムへリンクできないなどの制限がある。ハードリンクでは実体ファイルの削除ができるが、シンボリックリンクを通じて実体を削除することはできない。

また、ファイルやディレクトリに仮想的な別の名前を与えるという点ではWindowsの「ショートカット」やMac OSの「エイリアス」に近いが、これらはリンク先のファイルを実体と同じようには扱えないため、実装や機能の面では大きく異なる。*1

話が逸れたが、上記のコマンドを実行した後、

subl --help

を実行して、

Usage: subl [arguments] [files]         edit the given files

   or: subl [arguments] [directories]   open the given directories

   or: subl [arguments] -               edit stdin

 

Arguments:

  --project <project>: Load the given project

  --command <command>: Run the given command

  -n or --new-window:  Open a new window

  -a or --add:         Add folders to the current window

  -w or --wait:        Wait for the files to be closed before returning

  -b or --background:  Don't activate the application

  -s or --stay:        Keep the application activated after closing the file

  -h or --help:        Show help (this message) and exit

  -v or --version:     Show version and exit

 

--wait is implied if reading from stdin. Use --stay to not switch back

to the terminal when a file is closed (only relevant if waiting for a file).

 

Filenames may be given a :line or :line:column suffix to open at a specific

location.

といった画面が出てくればひとまずターミナル→ST2は成功。 

ST2→ターミナル

ここではST2にパッケージ「Sublime Terminal」を入れる方法を使う。

ST2にパッケージを入れることに関してはPackageControl(以下PC)なるパッケージ管理のアドオンを利用する。PCはいわばMacPortsのようなものであると中々便利。詳しい入れ方については省略するが、もっと知りたければ記事末尾の参考リンクを見てもらえば。

またしても話が逸れたが、入れ方としては

  1. 「Command+Shift+P」でCommandPaletteを呼び出して
  2. 「Package Control: Install Package」と入力
  3. 「Terminal」と入力してインストール

といった感じ。インストールが終われば

Open Terminal at File

Press ctrl+shift+t on Windows and Linux, or cmd+shift+t on OS X

Open Terminal at Project Folder

Press ctrl+alt+shift+t on Windows and Linux, or cmd+alt+shift+t on OS X

 が実行可能となる。

TerminalのデフォルトエディタをST2に設定

ついでに。以下のコマンドを入力。

export EDITOR='subl -w'

そしてエディタの環境変数をいじる。

~/.bashrcなどに上のコマンドを追加する。

 .bashrcや.bash_profileの具体的な初期設定についても参考リンク参照。

 

これで当初の目標は達成できた。

参考リンク

 

*1:IT用語辞典 e-Words