Mac で「CotEditor で開いているファイルを Google Chrome で開く」コマンドを作る

僕は普段、Mac では「CotEditor」というテキストエディタを使っている。Windows における Notepad++ のような、軽量かつ高機能なエディタである。

僕はこの CotEditor で Markdown ファイルを書くことが多いのだが、Markdown のプレビューは Chrome ブラウザ (「Markdown Preview Plus」拡張機能) を使っているので、「今 CotEditor で開いているファイルを Chrome で開きたいな」と思うことがよくある。

Windows の場合、WSH (VBScript) を使えば、色々なウィンドウ操作を柔軟に行えたりするが、MacOS の場合は AppleScript で同等のことができる。そして、ターミナルから直接 AppleScript を実行できる osascript というコマンドが用意されているので、今回はコレを使って、ターミナルから、CotEditor で開いているファイルを Chrome で開く Bash コマンドを作ってみる。


まず検索してみたところ、「CotEditor の最前面にあるファイルパスをターミナルに投げつけて実行する」という AppleScript が見付かった。

実行権のあるファイルを直接ターミナルで実行したい場合は、コレだけで良い。

tell application "CotEditor"
  set myPath to path of document 1
  tell application "Terminal"
    do script myPath in front window
  end tell
end tell

コレを元に、CotEditor で開かれているファイルのフルパスだけを取得し、open コマンドの引数に与えるようにしたら、「CotEditor で最前面にあるファイルを Chrome で開く」ことができた。

$ open -a 'Google Chrome' "$(osascript -e 'tell application "CotEditor" to path of document 1')"

エイリアスにするなら、このように書く。シングルクォート1つ ' は、'\'' とエスケープする必要がある。

alias openfromcot='open -a '\''Google Chrome'\'' "$(osascript -e '\''tell application "CotEditor" to path of document 1'\'')"'

エイリアスを ~/.bashrc にでも書いたら、あとはターミナルから

$ openfromcot

と叩くだけで良い。コレなら楽ちんだ。

なお、CotEditor のウィンドウが開かれているか、という存在チェックをしていないのでご容赦を。