SublimeTextでMarkdown記法を使い、自分用Wiki(メモ)を書いている。
ただ「Monokai Extended」というMarkdownのハイライトをしてくれるPackageを導入してから、HTML化しなくなった。
だから、以下のようにメモしておいたパスやURLを、いったんコピーして「名前を指定して実行」に貼り付けて開いていた。
メモとか参考資料とか
----------------------------------------
* [○○ドキュメント](\\192.168.1.1\hoge\documents)
* [設定シート](\\192.168.1.1\hoge\setup\setup_sheets)
* [タスク管理](http://localhost/task)
----------------------------------------
* [○○ドキュメント](\\192.168.1.1\hoge\documents)
* [設定シート](\\192.168.1.1\hoge\setup\setup_sheets)
* [タスク管理](http://localhost/task)
また、HTML化するにしても「file:///」を先頭に書かなければならないのも面倒だった。
ということで初めてSublimeTextのPackageをつくってみた。
下準備
以下のディレクトリにPackage用のフォルダを作成する。
- ポータブル版:[略\Sublime Text Build 3065\Data\Packages]
- インストール版:[C:\Users\ユーザ名\AppData\Roaming\Sublime Text 3\Packages]
今回は「OpenDir」というフォルダを作成した。
このフォルダにいろいろ突っ込んでいく。
このPackageができたときには、次のような階層になる。
Packages\OpenDir
- OpenDir.py
- Default.sublime-commands
- Default (Windows).sublime-keymap
メイン(選択したパス・URLをエクスプローラで開く)
メニューバーから[Tools] > [New Plugin]をクリック。表示されたテンプレートの名前を「OpenDir.py」にして、先ほど作成した「OpenDir」フォルダに保存する。
この「OpenDir.py」に処理を書いていく。
※ Pythonは使ったことがないので、手探り感満点w
import sublime, sublime_plugin
# Explorer起動のためにインポート
import os
# メソッド名は「Package名+Command」で記載する ※CamelCaseで書く
class OpenDirCommand(sublime_plugin.TextCommand):
def run(self, edit):
# self.view.sel() : 選択範囲が格納させる(複数ある場合も)
for region in self.view.sel():
if not region.empty():
# self.view.substr : 選択範囲にあるテキストを取得
path = self.view.substr(region)
# 選択範囲のパスをエクスプローラで開く
os.system('explorer ' + "\"" + path + "\"")
コマンドを設定する
[Shift]+[Ctrl]+[p]で起動するコマンドパレットに、今回つくったOpenDirを表示させる。先ほどの「OpenDir」フォルダに
Default.sublime-commands
というファイルを作成し、JSON形式でコマンドの設定を行う。[
{
"caption": "OpenDir: 選択したパスを開く",
"command": "open_dir"
}
]
- caption:コマンドの説明を書く。コマンドパレットで検索しやすいように、「コマンド名+コマンドの説明」と書くのが一般的
- command:コマンドを書く。用途は?だが、メソッド名から「Command]を消して、snake_case(スネークケース)で書く
これで、コマンドパレットから「OpenDir」を呼び出すことができるようになった。
キーバインドを設定する
いわゆるショートカットキーの設定。
今回は[Shift]+[Ctrl]+[o]で「OpenDir」を起動したい。
「OpenDir」フォルダに
Default (Windows).sublime-keymap
というファイルを作成する。※ Mac:「Default (Mac).sublime-keymap」、Linux「「Default (Linux).sublime-keymap」
これまたJSON形式で設定する。
[
{
"keys": ["ctrl+shift+o"], "command": "open_dir"
}
]
- keys:ショートカットキーを設定する
- command:メソッド名から「Command」を消して、snake_case(スネークケース)で書く。不思議なことにこれで紐付いてくれる
これで[Shift]+[Ctrl]+[o]で選択したパスやURLが、エクスプローラで起動できるようになった。
以上
written by @bc_rikko
0 件のコメント :
コメントを投稿