12

Sublime Text 2ボックスで提案されたすべての領域に選択範囲を拡大する方法がすでに存在するかどうか疑問に思っているので、Ctrl + Dを使用して一致をスキップする方法に示すように、押し続ける必要はありませんCtrlSublime Text 2の複数の選択?DCtrlKD

画面上のボックスの90%は、私が複数選択したいものとまったく同じであり、そうするための1つの重要なオプションがあれば非常に便利です。

たとえば、

foo(2,42,23,2,2)

最初の2をクリックすると、3つのシングル2の周りにのみボックスが表示されます。これらを1つのコマンド/マクロで選択したいと思います。

Ctrl-と一緒に行く場合は、42と23の2を---でDスキップする必要があります。CtrlKD

このようなものが存在しない場合は、そのような機能のためのプラグインを作成するためのポインタをいただければ幸いです。

更新:ファイル全体に変更を加えるのに最適なAlt+を使用することをお勧めします。F3ただし、複数選択の範囲を現在表示されているページ、タグ、角かっこなどに制限することも有益です。

4

3 に答える 3

12

「2」の前または後にクリックして、WindowsおよびLinuxの場合は+を使用して、またはAtl+を使用してすべての2を選択できます。F3Ctrl⌘</kbd>+G on OS X.

于 2013-01-16T15:15:50.870 に答える
8

そのような場合、私は次のことをしました:

エントリを入れてくださいKey bindings - User

{ "keys": ["alt+s"], "command": "toggle_in_selection", "context":
    [
        { "key": "setting.is_widget", "operator": "equal", "operand": true }
    ]
},

注:別のキーの組み合わせを選択できます。

次に、検索するテキストを選択します。これを使用ctrl+Lして、1行ctrl+shift+mを選択したり、現在の角かっこの内容を選択したり、Selectionメニューにリストされているその他の方法、またはその他の方法を選択したりできます。


ヒント:新しいファイルを作成し、ファイル名を選択して、新しいプラグインまたはユーザーキーバインディングが保存されUser.sublime-commandsているそのフォルダーに保存します。Packages/Userそして、このスニペットをそのファイルに入れます。

[
    // Selection Menu
    { "caption": "Selection: Expand to Paragraph", "command": "expand_selection_to_paragraph" },
    { "caption": "Selection: Expand to Scope", "command": "expand_selection", "args": {"to": "scope"} },
    { "caption": "Selection: Expand to Brackets", "command": "expand_selection", "args": {"to": "brackets"} },
    { "caption": "Selection: Expand to Indentation", "command": "expand_selection", "args": {"to": "indentation"} },
    { "caption": "Selection: Expand to Tag", "command": "expand_selection", "args":     {"to": "tag"} }
]

メニューにあるこれらの展開選択オプションSelectionもコマンドパレットに追加されるため、ショートカットを覚えておく必要はありません。「キャプション」を自分に最も適したものに変更できます。


検索するテキストを選択したら、ctrl+fまたはctrl+i(検索またはインクリメンタルサーチ)を押して、上からのショートカットを使用して、[選択中]ボタンを切り替えます(検索バーの左側から6番目のボタンは矢印のように見えます)。垂直バーを右下に向けます)。(オプション:「単語全体」ボタン(引用符のように見えます)を切り替えるには、Alt + Wを押します。これは、で自由に一致させ、で2一致させたくない場合に使用します)。選択を微調整したら、すべての一致を選択->完了。foo(2,42,23,2,2)242alt+enter

検索したいものを書く必要はありません。最初にそれを選択し、ctrl+e( "slurp_find_string"コマンド)を押して検索バーに配置し、後で検索バーを開くとそこに表示されます。

したがって、全体的なプロセスは次のようになります。

  1. (オプション)ctrl+e検索する選択したテキストに対して、後で書く必要がないようにします
  2. 検索したいすべてのテキストを選択するために任意の方法を使用してください
  3. ctrl+fまたはctrl+i、検索バーを開くには、1。を実行しなかった場合は、検索内容を入力します。
  4. 切り替えない場合は選択範囲を切り替え、必要に応じて単語全体を切り替えます
  5. すべてを見つけてalt+enter完了です

最初は少し複雑に聞こえますが、10回実行すると、プロセス全体(ステップ2を除く)に1秒以上かかることはありません。さらに、いくつかの崇高な設定を微調整すると、いくつかの設定を自動で切り替えることができます。たとえば、任意の選択で自動ctrl + eを実行したり、開いた選択で検索バーを開くたびに自動切り替え選択を実行したりできます。

注:MacまたはWindowsを使用している場合、ショートカットが異なる場合があります。

それがお役に立てば幸いです。不明な点がある場合は、もっと質問してください...

編集:私はしばらくの間キー設定で遊んでいました、そしてこれで終わりました:

// without whole-words
{ "keys": ["ctrl+space", "f"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse":false, "in_selection": false, "whole_word": false}, "context":
    [
        { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }
    ]
},
{ "keys": ["ctrl+space", "f"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse":false, "in_selection": true, "whole_word": false}, "context":
    [
        { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
    ]
},

//with whole-words
{ "keys": ["ctrl+space", "w"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse":false, "in_selection": false, "whole_word": true}, "context":
    [
        { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }
    ]
},
{ "keys": ["ctrl+space", "w"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse":false, "in_selection": true, "whole_word": true}, "context":
    [
        { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
    ]
},

のどこかに置くとKey bindings - User、2つのショートカットが表示されます"ctrl+space", "f"ctrl+space最初に、その後にf、と同様に"ctrl+k", "ctrl+d")、および"ctrl+space", "w"。1つ目は、単語全体を無効にしたインクリメンタルサーチパネルを提供し、2つ目は単語全体を有効にしたインクリメンタルサーチパネルを提供します。どちらも、ショートカットを押したときに何かが選択されたかどうかに基づいて、選択範囲内で事前に選択されています。あなたがそれを見れば、あなたはそれをあなた自身の欲求にどのように微調整するかについての考えをほとんど得るはずです。

于 2013-01-20T17:26:52.760 に答える
1

「foo(2,42,23,2,2)」の例では、単一の「2」を複数選択して「23」を除外したい場合は、「、2」のいずれかの後にカーソルを置くことができます。 '| 発生した場合は、テキストを選択せず​​に[CTRL]+[D]または[ALT]+[F3]を押します。

于 2022-01-28T17:07:56.113 に答える