SublimeText」タグアーカイブ

Sublime Text 4 Custom 2

Sublime Text プラグインについて日本語の解りやすいトコ無いなぁ。
試してみたら Packages/*/ 以下にある *.py は全部勝手に読み込むや。
つまり自作するならコレでいい、ディレクトリ名は何でもいい。

plugins

ショートカットで実行するには sublime-keymap に書き込む。
配布するなら個別ディレクトリにして OS 別キー割り当てが可能らしい。

Hoge/
- Default (Linux).sublime-keymap
- Default (OSX).sublime-keymap
- Default (Windows).sublime-keymap
- hoge.py

command(super) と Ctrl を変えるだけなんだろうけどね。

スニペットファイルは User 以下に置く。
PHP に定義は text.html.php でイケた。

<snippet>
    <content><![CDATA[
<pre class="brush: ${1:py}">$0</pre>
]]></content>
    <tabTrigger>prep</tabTrigger>
    <scope>text.html.php</scope>
</snippet>

ファイル名はなんでも良くて sublime-snippet の拡張子を付ける。
一つにつき一ファイルにしないと読み込みしてくれないようです。

トリガーで流し込むスニペットはこうやってファイルを作る。
ショートカットで流し込むスニペットは sublime-keymap に直接書く。

key

Default (OSX).sublime-keymap は上記メニューで勝手に作られる。
ちなみに一番上のメニューから Packages ディレクトリは開ける。

[
    { "keys": ["f5"], "command": "build" },
    { "keys": ["alt+up"], "command": "swap_line_up" },
    { "keys": ["alt+down"], "command": "swap_line_down" },
    { "keys": ["super+alt+down"], "command": "duplicate_line" },
    // My Plugin
    { "keys": ["super+ctrl+t"], "command": "open_terminal" },
    { "keys": ["super+ctrl+e"], "command": "html_escape" },
    // My Snippets
    {
        "keys": ["super+ctrl+]"],
        "command": "insert_snippet",
        "args": {"contents": "<br />"}
    },
    {
        "keys": ["super+ctrl+r"],
        "command": "insert_snippet",
        "args": {"contents": "<span style=\"color: ${1:red}\">$TM_SELECTED_TEXT</span>$0"}
    }
]

スニペットは変数も使えます。
記法も Gedit や Atom と同じだから迷うことは無いでしょう。

最後にキー割り当てはなるべくデフォルトのまま、ということに。
command+n が新規タブなのは受け入れることにします。
Gedit が Ctrl+T だという理由で command+t に変えていたんだけど。
Atom のデフォルトもそうだったし慣れておかないと後で困りそうなので。

同じ理由で command+h を置換に割り当てるのもヤメに。
command+option+f のほうが直感的なんだけど Gedit での手癖が。
command+h はどう考えても非表示でないとおかしい、手癖より統一を。
どうしても譲れない 4 つだけは変更させていただきます。

ということでアッサリ乗り換え作業が終わりました。
Sublime Text ってこんなに凄かったのか、知らなかった。

buy

ということで購入、$70 じゃなくて $99 だった。
こんな素晴らしいアプリを作ってくれた感謝を込めて。

Sublime Text 4 Custom 1

Sublime Text 4 が F7 でカタカナ変換できない問題。
v3 の時からか、日本語環境だけの問題だから放置されているのね。
これは v3 の時と同じ手段で回避可能でした。

Sublime Text 3のF7を無効にする(macOS) – Qiita

コレをやると左側ペインのデフォルトも編集できるようになるおまけ付き。
問題になりそうなものや無効化したいキーをコメントアウト。

kbd

キーカスタムはスニペットの登録とかがあるので一旦置いて。

ということで基本設定の暫定。
一番上のは最初から書き込まれていたけど何かは知らない。

{
    "ignored_packages":
    [
        "Vintage",
    ],
    // コード保管無効
    "auto_complete": false,
    // 閉じ括弧自動補完無効
    "auto_match_enabled": false,
    // 起動時に新規ウインドウを作らない
    "create_window_at_startup": false,
    // 保存確認飛ばしさせない
    "hot_exit": "disabled",
    // タブ追加は一番最後に
    "open_tabs_after_current": false,
    // タブ入力は半角スペース化
    "translate_tabs_to_spaces": true,
    // 保存時に行末の空白を削除
    "trim_trailing_white_space_on_save": "all"
}

とにかく邪魔なコード保管と閉じ括弧保管を無効に。
保管ってこちらから要求した時にだけやってくれないと困るよ。
腹が減ってないのに飯を出されてもイラッとするでしょ。

起動時に前回終了時のタブを復元阻止は 3, 4 番目。
v4 は検索で見つかる remember_open_files というキーが無い。
hot_exit も真偽値ではない、現行は色々と設定が違っているようだ。
で、create_window_at_startup は名前のとおりな macOS 専用設定。
無効にしないと Finder からファイルを開いた時に二つ起動する。
ただランチャから起動だとウインドウが作られない、即 command+n する。
もっといい方法があるかもだけど。

後はお好みで、筆者はできるだけデフォルトで使いたい派。

次はプラグイン作成。
Sublime Text 3でプラグインを作るメモ – Qiita

Sublime Text 内蔵 Python は 3.3 なのか。
subplocess.run や html モジュールが使えない、ちと面倒。
これも一つにつき一ファイルづつ、まるで Linux だな。

import sublime, sublime_plugin

class HtmlEscapeCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        sel = self.view.sel()
        for region in sel:
            src = self.view.substr(region)
            dst = ''
            for s in src:
                if s == '>':
                    dst += '&gt;'
                elif s == '<':
                    dst += '&lt;'
                elif s == '&':
                    dst += '&amp;'
                else:
                    dst += s
            self.view.replace(edit, region, dst)

とりあえず html_escape プラグインを作ってみた。
こんなブログをやっていると絶対に必要になるからね。
てか上記で早速使ったわ。

import sublime, sublime_plugin, os, subprocess

class OpenTerminalCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        path = os.path.dirname(self.view.file_name())
        subprocess.Popen(['open', '-a', 'Terminal', path])

もう一つ、編集ファイル位置から Terminal.app 起動。
他のカスタムはスニペットでなんとかなるかな。

後は自作スニペットの登録とキーカスタムだね。
長くなってしまうので今日はココまで。
最後に。

kawasemi

今日は五条川にいました。

Sublime Text 4

そういえば 2022.12.15 で Atom がアーカイブになる。
Gedit も GNOME には含まれなくなり 3 で止まる。
筆者愛用のテキストエディタが両方とも終焉を迎えることに。
Gedit はまだ大丈夫だけど Atom はそろそろ乗り換え先を探さないと。

macOS 用のテキストエディタを色々試した時期があったけど。
当時は Atom 以外は全部気に入らなかったんだよな。

VScode が何故人気があるのか解らない、イライラするだけだろアレ。
他もなんか文化の違いに馴染めず Gedit のように使える Atom に。
それとできればプラグインではなくスクリプトで拡張したいのよ。

Atom を Gedit のように使う – Paepoi

Sublime Text もその時に試したけれど使い方がよく解らなかった。
突っ込んで使ってみたら気に入るかもしれん、今 v4 になっているのね。

Download – Sublime Text

dmg ではなく app での配布なのか。
/Applications に移動して command+o、なんか久々。

gatekeeper

初回はやっぱり許可が必要、以降は普通に使える。
てか起動が早い、いや Atom が遅いだけなんだけど。

? Sublime Text 4 の日本語化とおすすめパッケージ – Qiita

で日本語化。

*.jp をコピーは「フォルダに新規ターミナル」を使って。

cp *.jp ../Default/

末尾の jp を外すには Default に移動して。

for name in *.jp; do; mv $name ${name%.jp}; done

プログラミングのために使う人ならこれくらい打てよってね。
いや、しょぼいシェルの Linux や Windows の人は知らんけど。
bash zsh どっちでも使えます。

日本語化できたので基本入力を試してみる。
command+s や command+c は macOS デフォルトどおりだな。
command+← はインデントの先頭にジャンプがデフォルト、よし。
全部ウインドウを閉じてもアプリは終了しない、macOS では当然。
再起動で前回開いていた書類を開くのは流行なのか?

F7 でカタカナ変換ができない、何か競合しているのか?
fn+← が行頭ではなく先頭になる、command にすればいいんだけど。
行の入れ替えは command+control+↓ ではなく option+↓ にしたい。
新規タブが command+n なのはそろそろ受け入れようかな。

JavaScript だとコード保管をするのね。
VScode ほどウザくない、でもやっぱり邪魔だなぁ。
それよりも、閉じ括弧の自動保管はマジでやめてくれ!

html や php を開いて pre と打ち込んで tab キー。
おぉスニペットがデフォルトで有効なのか、後は追加だな。

残念ながらモードラインはデフォルトでは未対応だけど。
#!/usr/bin/osascript
のシバンがあれば Apple Script と拡張子無しでも認識。
-l オプションで JXA を見分けるまではしてくれなかった。

そんなことよりこれですよ、command+b で。

sublimetext

筆者が Gedit や Atom でカスタムしていることがデフォルトで。
Python としか書いていないけど Python3 で動きますね。
ただしシバンを読み取って実行しているわけではないみたい。
JXA は実行できなかった、手段はあるみたいなので探す。

以上日本語化のみでデフォルト状態での雑感。
Sublime Text ってこんなに凄かったのか!
いや多分大多数の人とは気にする部分が違うと思いますけど。
70$ 払うかどうかはカスタムを試してから。