はじめに
奇妙なことですが、HabréでテキストエディターSublime Text 2の言及を検索したところ、ほとんど何も見つかりませんでした。 私は状況を直し、この美しいツールについてhabrausersに伝えようとしました。 最初に、なぜ彼がそんなに優れているのかを簡単に説明し、次にシンプルだが便利なプラグインを作成します。
Sublime Text 2を選ぶ理由
Sublime Text 2が最高のテキストエディターであると言うふりをすることはできませんが、私は非常に気に入ったので、その理由は次のとおりです。
- 見栄えの良い暗いインターフェイス、視覚効果、気晴らしフリーモード
- ミニチュアの編集可能なテキストを含むソケット。 面白くて本当に便利な検索!
- 複数選択と編集
- 最も高度なエディターに典型的なすべての機能:構文の強調表示、コードの書式設定、オートコンプリートなど
- 箱から入っていないものはリポジトリからダウンロードできます! はい。Sublimeで最も簡単な操作を実行すると、ubuntやdebianのように完全なパッケージ管理システムが表示されます。
- これで十分でない場合は、メインメニューに「新しいプラグイン」という項目があります。 それをクリックして、Pythonで必要な機能を実装するプラグインを作成します。 これについて説明します。
- この奇跡は、1つで59ドル、10ライセンスで500ドルです。 しかし、あなたがしたくない場合は、支払うことはできません。 この場合、制限はなく、リマインダーが時々ポップアップします。
問題の声明
エンジニアリングの実践からの実例。 テキスト内の選択された数値の10進数から16進数への変換。 この機能は、キーボードショートカットCtrl + Shift + Hと同様に、メインメニューとコンテキストメニューからアクセスできる必要があります。 実行結果:数字と大文字を使用して記述された16進数の数字。「0x」などの先頭文字はありません。 選択したテキストが数字ではない場合、ステータスバーでこれを誓います。 この例は、詳細が失われないように意図的に最大限に単純化されているという事実に注目してください。Sublimeのプラグイン作成のシンプルさです。
プラグインを書く
[ ツール]-> [新しいプラグイン]をクリックして、ワークを確認します。 クラスの名前を変更し、runメソッドに関数を記述します。 私は次のものを手に入れました:
import sublime, sublime_plugin class DecToHexCommand(sublime_plugin.TextCommand): MAX_STR_LEN = 10 def run(self, edit): v = self.view # dec = v.substr(v.sel()[0]) # if dec.isdigit(): v.replace(edit, v.sel()[0], hex(int(dec))[2:].upper()) else: # , if len(dec) > self.MAX_STR_LEN: logMsg = dec[0:self.MAX_STR_LEN]+ "..." else: logMsg = dec sublime.status_message("\"" + logMsg + "\" isn't a decimal number!")
dec_to_hex.pyという名前のエディターが提案する場所に保存します。
メニュー項目を追加します。 キーボードショートカットを規定する
ホットキーから始めましょう。 メニューで、[ 設定]-> [キーの割り当て]-[ユーザー ]をクリックします。 JSON形式の設定を持つファイルが開きます。 ほとんどの場合空です。 行を追加します
{ "keys": ["ctrl+shift+h"], "command": "dec_to_hex" }
保存します。 それだけです 原則として、すでに使用できます。 うまくいかない場合は、このテーマのコンソールに書かれている内容を確認する必要があります(Ctrl + `)。
コンテキストメニューにアイテムを追加するには、次の内容のContext.sublime-menuファイルを作成します 。
[ { "command": "dec_to_hex" } ]
前のケースのように、コメントなしですべてが明確だと思います。 プラグインが保存されたのと同じディレクトリに保存します。 つまり %USERPROFILE%\ AppData \ Roaming \ Sublime Text 2 \ Packages \ User 、Windowsユーザー用。 同じ場所で、 Main.sublime-menuファイルを作成します。 この項目は[編集]メニューで最も適切だと思ったので、Main.sublime-menuファイルに次のように書きました。
[ { "id": "edit", "children": [ { "command": "dec_to_hex" } ] } ]
チェックします。 メインメニューとコンテキストメニューに、 Dec To Hexという名前で表示されます。
それだけです プラグインをパッケージにパックして友人と共有する方法、およびトピックが誰にとっても興味深いものである場合は、次回Sublimeのその他の興味深い機能について説明します。
参照:
- www.sublimetext.com/docs/api-reference-プラグインAPIリファレンス
- www.sublimetext.com/download-ダウンロード
- www.sublimetext.com/dev-開発ビルド。 開発バージョンを使用していますが、まだバグを発見していません。
- net.tutsplus.com/tutorials/python-tutorials/how-to-create-a-sublime-text-2-plugin-英語で同じトピックに関する記事
UPD:開発ビルドとライセンスのコストについて書きました。 Sky4eg 、 VCoder 、 vtxのおかげで