35

仕事でホットキーを見つけようとしています。私はこの仕事に就いたばかりで、ほぼ人生で初めて Mac を使用しています。

私のラップトップに戻って、Eclipseを使用しているときに、次の両方のホットキーが1つあったことを覚えているようです。

  • 現在の行の最後;に aを追加します (キャレットがその行のどこにあったとしても)
  • セミコロンを追加した行と同じインデント レベルで、新しい行の先頭にカーソルを置きます。

これが Eclipse 固有のホットキーであったかどうか、または Sublime Text 2 でそのホットキーを複製する方法を知っている人はいますか?

4

6 に答える 6

75

これに対する最善の解決策は、Sublime Text にマクロを記録してから、それをキーボード ショートカットに割り当てることです。次の手順を実行します:

  1. alert('hello') のような行を作成し、文字 'o' の直後にカーソルを置きます。
  2. 次に、[ツール] > [マクロの記録]に移動して、記録を開始します。
  3. Command+を押します→</kbd> to go to the end of line.
  4. 押し;て叩くEnter
  5. [ツール] > [マクロの記録の停止] に移動して、マクロの記録を停止します。
  6. [ツール] > [マクロの再生] (オプション)でマクロをテストできるようになりました。
  7. [ツール] > [マクロの保存]に移動して、マクロを保存します(例: EndOfLine.sublime-macro)。
  8. Preferences > Key Bindings - User ファイルの角かっこの間にこれを追加して、ショートカットを作成します。

    {
    "keys": ["super+;"], "command": "run_macro_file", "args": {"file": "Packages/User/EndOfLine.sublime-macro"}
    }
    
  9. Commandこれで、 +を押すたびに;、魔法のように現在の行の末尾にセミコロンが配置され、カーソルが次の行に移動します。

ハッピーコーディング!

于 2013-08-10T19:58:09.917 に答える
19

あなたの質問を 3 回ほど読んだ後、私は最終的に、あなたが両方の操作を実行するための1 つのホットキーを探していることに気付きました。おっと。

あなたの要求は、 Smart Semicolon Eclipse プラグインのCtrl+ Shift+;ホットキーのように聞こえます。天才レベルの IQ のセミコロンを追加するには、おそらくまったく新しい Sublime Text 2 プラグインが必要ですが、Sublime Text のMacrosを使用してスマートなセミコロン風のキー バインディングを簡単に作成できます。実は今まで知りませんでした!

この場合、実際には、新しいファイルをコピーして貼り付けるよりも、自分でマクロを記録するのが最速の方法です (これで、より多くのファイルを作成する経験が得られます)。まず、新しいファイルを開き、お気に入りのガベージ行を入力します。

Lord Vetinari's cat|

次に、キャレットを行内の任意の場所に移動します。

Lord Veti|nari's cat

ここで、 のホットキーであるCtrl+を押します。ステータスバーが有効な場合、「[a] マクロの記録を開始しています」と通知されます。(キーがない場合は、以下に進みます)、 、の順に押します。最後に、もう一度+を押して録音を停止します。そうすると、ステータスバーに「マクロの記録を停止しました」と表示されます。選択したコード セグメントで+ +を押して、マクロが機能していることを確認します。QTools -> Record MacroEndEnd;EnterCtrlQCtrlShiftQ

を押すだけで、設定が に設定さEnterれている限り、それに応じて次の行のインデントが調整されます。の 59 行目を参照してください。"auto_indent"truePreferences -> Settings – Default

満足したら、新しいマクロを で保存しますTools -> Save Macro...。として保存しましPackages/User/smart-semicolon.sublime-macroた。私のファイルは次のようになりました。手動でマクロを作成できない、または作成しない場合は、自由にコピーしてください。

[
    {
        "args":
        {
            "extend": false,
            "to": "eol"
        },
        "command": "move_to"
    },
    {
        "args":
        {
            "characters": ";"
        },
        "command": "insert"
    },
    {
        "args":
        {
            "characters": "\n"
        },
        "command": "insert"
    }
]

"extend": false,マクロが作業選択範囲にテキストを追加しないことを意味します。非公式ドキュメントのコマンド ページ で、コマンドのオプションの詳細を確認してください。

マクロが作成されたので、カスタム キー バインドを適用できます。Preferences -> Key Bindings – User次の行をファイルに追加します。

 { "keys": ["ctrl+shift+;"], "command": "run_macro_file", "args": {"file": "Packages/User/smart-semicolon.sublime-macro"}, "context":
      [
           { "key": "selector", "operator": "equal", "operand": "source.java" }
      ]
 },

Ctrl+ Shift+;を好きなキーバインドに置き換え、ファイルを保存して試してみてください。配列は"context"キー バインディングを Java ファイルに制限します (コンテキストの詳細については、非公式ドキュメントのキー バインディングページを参照してください)。キーバインディングをどこでもアクティブにしたい場合は、代わりに次の行を使用してください。

 { "keys": ["ctrl+shift+;"], "command": "run_macro_file", "args": {"file": "Packages/User/smart-semicolon.sublime-macro"} },

このNetTuts+ の記事には、マクロとそれらのキーへのバインドに関する詳細が記載されていますよく参考にしました。このUserEcho の投稿には、挿入をより拡張可能にするための詳細情報が含まれているようです。

于 2013-05-22T16:49:05.687 に答える
11

この目的のために構築された既製の崇高なパッケージを使用することもできます: AppendSemiColon

パッケージ コントロールを使用してインストールできます。「AppendSemiColon」を検索するだけです。

Place a semicolon at the end of the cursor's current line(s) by pressing:
Command+; on OS X
Ctrl+; on Windows and Linux

You can also automatically go to the next line at the same time like this:
Command+Shift+; on OS X
Ctrl+Shift+; on Windows and Linux

私はこのパッケージをしばらく使用していますが、うまく機能します。

更新: 著者がコメントで述べたように、必要に応じてデフォルトのホットキーを変更できるようになりました (個人的には、デフォルトが気に入っています)。例として、次のように変更します。

[
  { "keys": ["ctrl+;"], "command": "append_semi_colon" }, 
  { "keys": ["ctrl+shift+;"], "command": "append_semi_colon", "args": {"enter_new_line": "true"} }
]

sublime-keymap で、必要なキーを使用します。

最新バージョンをテストしましたが、この機能も問題なく動作します。追加のホットキーを押すと、追加のセミコロンが誤って追加されるというバグがありました。この小さな煩わしさも修正されました。ありがとう、MauriceZ/mzee99!

于 2015-07-01T21:36:20.060 に答える
1

私はSublime Text 3を使用しています...あなたの投稿に触発されて、.sublime-keymapに以下を追加しました:

{ "keys": ["ctrl+enter"], "command": "run_macro_file", "args": {"file": "Packages/User/endOfLine.sublime-macro"} },

これでどれだけの時間が節約できるかに驚いています。

于 2014-09-10T07:24:09.837 に答える