Sublime Textで複数のカーソルを使用して1行おきに行を選択するにはどうすればよいですか?


162

Sublime Text 2では、1行おき(または奇数/偶数)の行を瞬時に選択して、それらの行に複数のカーソルを置くことができますか?

ありがとう。


5
答えを受け入れたくないですか?
Martin Thoma 14

回答:


381
  1. 検索: Ctrl +F
  2. 正規表現がまだ有効になっていない場合は、有効にします:Alt+R
  3. 式を入力してください .*\n.*\n
  4. すべて検索:Alt+Enter
  5. 左矢印を押して選択を取り除き、カーソルだけを残します。
  6. これで、すべての奇数番号の行の先頭にカーソルがあります。偶数行が必要な場合は、下を押します。
  7. ファイルによっては、ファイルの右下に1つのカーソルがない場合があります。マウスを使用して(くそー!)一番下までスクロールし、を押したままCtrl、足りないカーソルを追加する場所をクリックします。

83
(.*\n){10}10行ごとに使用することもできます
Joe Daley

21
新しい改善として(.*(\n|$)){2}
zessx

3
いいね!@zessxの(.*(\n|$)){2}ソリューションには最後の行が含まれています
woojoo666 '27 / 10/27

3
OS X 10.11.5で実行されているSublime 2では、RegEx検索のショートカットはAlt + Command + Rです。また、Command + Fを押して次のようなアイコンをクリックして、RegEx検索を有効にすることもできます。 *]
lustig

97

あなたはそれを簡単に行うことができます:

  • すべての行、またはドキュメント全体を選択します Ctrl +A
  • 複数のセレクターを追加:Ctrl+ Shift+ L(Macの場合:Command + Shift + L)

編集:


12
この質問に対する正しい答えではありませんが、これは私が欲しかったものです。共有してくれてありがとう
Rajani Karuturi 2013

素晴らしくてシンプルなヒント!
フィリップ2013

5
このソリューションは私が必要としているものですが、OPが望んでいるものではありません。
悲鳴を上げる14年

13

私は崇高に代替行を選択する方法を探していました。

非常に良い答えをしてくれたJoe Daleyに感謝します。正規表現を使用すると、ファイルの最後に改行がない場合、ファイルの最後の行が選択されないことに気付きました。

私はその答えを改善したかったのですが、現時点では上の答えについてコメントするのに十分な評判がないようです。

正規表現をオンにして次の検索文字列を使用し、Alt + Enterキーを押すことができます。左矢印が続きます。これにより、カーソルが1行おきに配置されます(Joe Daleyが説明したのと同じ手順)。

^.*\n.*$

7

プラグインで試すことができます: Tools/New Plugin...

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)

このファイルを Packages/User

次に、そのプラグインのキーバインディングを追加します。

{ "keys": ["super+alt+l"], "command": "expand_selection_to_other_lines" }

このコマンドは、他のすべての行を選択します。あなたが選択した他のラインを持っている場合は、使用することができますSplit selection into lines(コマンドをCtrl+ Shift+ LCmd+ Shift+ LMacの場合)。

すべてを1つのショートカットにしたい場合は、次のようにプラグインを変更できます。

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)
        self.view.window().run_command("split_selection_into_lines")
        self.view.window().run_command("move", {"by": "characters", "forward": False})

最後の行は選択を削除するためのもので、選択された行の先頭に複数のカーソルが残ります。


1
これは有望に見えます-できるだけ早くこれを試します!
user2136580 2013年

どうもありがとうございました!プラグインは初めてです。楽しいはずです。他のすべての行を選択できるようになるのは素晴らしいことです。乾杯!
user2136580 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.