web-dev-qa-db-ja.com

セミコロンで行を終了し、Sublime Text 2の新しい行にジャンプするホットキー

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

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

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

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

33
Samuel Stiles

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

  1. Alert( 'hello')などの行を作成し、文字 'o'の直後にカーソルを置きます。
  2. 次に、Tools> Record a Macroに移動して、記録を開始します。
  3. 押す Command+ 行末に移動します。
  4. 押す ; そしてヒット Enter
  5. Tools> Stop Recording Macroに移動して、マクロの記録を停止します
  6. Tools> Playback Macro(オプション)でマクロをテストできるようになりました
  7. Tools> Save Macroに移動してマクロを保存します(例:EndOfLine.sublime-macro)
  8. Preferences> Key Bindings-User fileの角括弧の間にこれを追加してショートカットを作成します。

    {
    "keys": ["super+;"], "command": "run_macro_file", "args": {"file": "Packages/User/EndOfLine.sublime-macro"}
    }
    
  9. 今、あなたが打つたびに Command+;、それは魔法のように現在の行の終わりにセミコロンを置き、カーソルを次の行に移動します。

幸せなコーディング!

71
drdiv

質問を3回程度読んだ後、両方の操作を実行するためのoneホットキーを探していることがわかりました。おっと。

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

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

Lord Vetinari's cat|

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

Lord Veti|nari's cat

今、押します Ctrl+QTools -> Record Macroのホットキー。ステータスバーが有効になっている場合は、「[a]マクロの記録を開始しています」と通知されます。押す End (あなたが持っていない場合 End キー、下にスキップ)、次に ;、その後 Enter。最後に、 Ctrl+Q もう一度録音を停止します。実行すると、ステータスバーに「Stopped recording macro」と表示されます。を押して、マクロが機能していることを確認します Ctrl+Shift+Q 選択したコードセグメント。

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

満足したら、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 +記事 には、マクロとそれらをキーにバインドすることに関するmuch詳細情報があります。よく参考にしました。この serEcho post は、挿入をより拡張可能にするための詳細情報を持っているようです。

18
angerson

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

package control を使用してインストールできます。「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

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

更新:著者がコメントで述べたように、必要に応じて default hotkeys を変更することもできます(個人的には、デフォルトが大好きです)。例として、変更してください:

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

あなたの崇高なキーマップであなたが望むどんなキーでも使うことができます。

私は最新バージョンをテストしましたが、この機能も正常に動作します。余分なホットキーを押すと余分なセミコロンが誤って追加されるバグがありました-このマイナーな煩わしさも修正されました。 MauriceZ/mzee99に感謝します。

11
nonbeing

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

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

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

1
JMichael

Ctrl+Enter 同じレベルのインデントで新しい行を作成します。

私のようなものを見つけることができませんでした Ctrl+A あなたは言及しました

1
Felipe

@Felipeは2番目のポイントをカバーしました。単純なマクロまたはプラグインを使用して、最初の動作を模倣できます。というか、キーの組み合わせを押した後のカーソルの位置を説明しなかったからです。カーソルを次の行に移動しますか?新しい行を挿入しますか?あなたはアイデアを理解していると思います。

EclipseはOS XだけでなくWindowsでも動作すると確信しています。そのため、これに慣れている場合は、どうしても使用しないでください(もちろん、仕事でSTが必要な場合を除きます)。ほとんどのキーバインディングはおそらく同じか類似しています(まあ、ショートカットの制御ではなく、おそらくコマンドです)。

http://www.Eclipse.org/downloads/?osType=macosx

STを引き続き使用する場合は、プラグインの基本を学ぶことはおそらく価値があります。多くのビルドが可能なため、他のエディターと同じ振る舞いをすることができ、(プラグインの作成またはそれを行うプラグインの検索を通じて)追加の労力がかかるだけです。

0
skuroda