IntelliJ IDEAで複数行を編集する方法


113

私はこれをTextMateで行ったのを見てきましたが、IDEAでこれを行う方法があるかどうか疑問に思っていました。

次のコードがあるとします。

 leaseLabel = "Lease";
 leaseLabelPlural = "Leases";
 portfolioLabel = "Portfolio";
 portfolioLabelPlural = "Portfolios";
 buildingLabel = "Building";

すべての行に「+ "foo"」を追加する最良の方法は何ですか?行が右側に正しく配置されていないため、列モードは機能しません...テキストを右揃えする簡単な方法がない限り:P


これは非常にまれに行う必要があることであり、エディターに特別なモードがあったとしても、その使用方法を思い出せません。(上記のように)数行だけの場合は、クリップボードを使用します。何百行もある場合は、そのときに検索/置換ガジェットに移動します。
マイケルバー

列モードでは、左端に5つのカーソルを作成します。次に、Ctrl-RightArrowを使用して右に移動します。複数のカーソル、マクロ、検索置換は、これを実行する素晴らしい方法です。どれが一番好きか決められません。
Daniel Alexiuc 2016年

Macbookの場合は、Option + Shift + Clickです。すべてのIntelliJショートカット:docs.google.com/document/d/...
ソーハムメータ

回答:


174

IdeaIntelliJ IDEA 13.1以降、複数の行を編集する可能性があります。

使用する:

Alt+ Shift+マウスクリック

選択のため。IntelliJブログポストのこの新しい改善について詳しくは、こちらをご覧ください。非常に便利な機能。


1
リンクをありがとう。私は誤ってこの機能を思いつきましたが、どういうわけか私が誤って押したキーの組み合わせを理解できませんでした:)
aberrant80

12
2015年2月現在Alt-Shift-Insert:列選択モードまたは単にAlt-Select。非常に強力で使いやすいです。同時行編集について明確に尋ねているのに、なぜ「検索と置換」を使用するようにOPに指示し続けるのかはわかりません。
RichieHH 2015

4
Macの場合、Alt +クリック。
Gowtham Gopalakrishnan 2017

5
そして今のところ、マウスの中ボタン+ドラッグだけです。
WesternGun、2018

1
Macbookの場合は、Option + Shift + Clickです。すべてのIntelliJショートカット:docs.google.com/document/d/...
ソーハムメータ

114

私は列選択モード(MacではCmd+ Shift+ 8)を使用して、Shift+ UpまたはShift+で複数のカーソルを作成Downし、すべての行を一緒に編集します。

IntelliJ IDEA 14からは、上/下にクローンキャレットもあります。

  • Windows:CtrlCtrl+ Up/Down
  • MacOS:OptionOption+ Up/Down

(修飾キーを2回押してから、矢印キーを押します)


5
誤ってCmd + Shift + 8を押してしまったのですが、私の人生の中で、一体何が「複数行」で選択できるのか理解できませんでした。コマンドショートカットをありがとう!
Robin Jonsson 2016

4
IntelliJ Ultimate 2016.1では、ダブル<kbd> Ctrl </ kbd>が機能しません。二重の<kbc> Option </ kbd>を使用し、2回目を押したまま矢印キーを押す必要があります。
Big McLargeHuge

1
@DaveKennedyそうですね、Jet Brainsはデフォルトのショートカットを変更しました。
Alexander Bogushov 2016年

ダブルctrlソリューションは、キーボードから手を離さないのに最適です
Andrejs

使用している他のエディターと実際に一致するようにキーマッピングを変更するには、[設定]-> [キーマップ]に移動し、右側の検索ボックスで「クローンキャレット」を検索します。アクションを右クリックし、[キーボードショートカットを追加]を選択します。保存して競合が発生した場合は、とにかく「OK」をクリックしてください。次に、他の割り当てを「削除」するかどうかを尋ねるプロンプトを追加します(おそらく必要なもの)、または「残す」(1つのショートカットで2つのことを意図的にトリガーするのはおかしいようです...)または「キャンセル」(理由以前に[OK]をクリックしましたか?)
ArtOfWarfare 2018

38

別のキーボードのみのアプローチ。それは可能です使用する(13.1バージョン以降)Alt+ J/ Shift+ Alt+ JCtrl+ GOS X用)の複数のキャレットを作成するためのショートカット。Alt+ J現在選択されているテキストの次の出現箇所を選択し、別のキャレットを追加します。

  1. 最初のセミコロンを選択します

ここに画像の説明を入力してください

  1. 次にAlt+をJ4回押します

ここに画像の説明を入力してください

  1. やりたいことを編集する

ここに画像の説明を入力してください

  1. を押しEscて最初の行に戻ります。

ここに画像の説明を入力してください


5
神様、私はこの機能なしで1年間住んでいました。どうもありがとう!
coffman21

27

キャレットを最後に置く

Windows: CTRL + CTRL(ホールド)+↑ / ↓

Mac: option + option(ホールド)+ ↑ / ↓

行の最後にキャレットを配置するには、キャレットを一番上の行に移動し、一番下まで複製して、をクリックしますEND

マルチキャレットホットキーを変更する

カスタムキーマップを追加するには、CTRL+ SHIFT+ A、サブテキストとしてのキーマップを入力keymapしてクリックしますSettingsClone Caret Aboveおよびを検索しClone Caret Belowます。

私は私がマッピングされたのALT+ SHIFT+ ↑ / ↓Windows上と+ ↑ / ↓Mac上。

ボーナス

、、、および矢印の組み合わせを押し続けるとCTRLSHIFT選択力が向上します。


1
「END」コメントに感謝します。長さが異なる変数への一般的な割り当てに最適です。
キーガン82

1
これが最も完全で的確な応答であるため、これが答えになるはずです。+1。
Ariel Mirra

別の方法は、「alt」を押したまま「j」を押し続けることです。複数行選択に行が追加され続けます。
gaurav

13

列モードは問題なく機能します。最初に列モードですべての行を選択し、次にENDを押します。各カーソルはそれぞれの行の終わりにジャンプします。

Linuxの場合(マウスは不要):

  1. ALT+ SHIFT+ INSERTブロックモードに入ります

    列編集モードに入りました

  2. SHIFT + UPまたはSHIFT + DOWN複数の行を選択する

    ここに画像の説明を入力してください

  3. END 各行の終わりにジャンプする

    ここに画像の説明を入力してください

  4. ここでと入力するとfoo、各行に追加されます。

    ここに画像の説明を入力してください

  5. ですべての選択を解除しESCAPE、で通常の選択モードに切り替えますALT + SHIFT + INSERT


9

マウスホイールクリックしてドラッグすることにより、垂直方向のコードブロック選択を行うこともできます。

ここに画像の説明を入力してください


8

次のオカレンスを選択:

      Alt+J on Windows, Ctrl-G on Mac OS X

オカレンスの選択を解除:

      Alt+Shift+J on Windows, Ctrl-Shift-G on Mac OS X

すべてのオカレンスを選択:

      Ctrl+Alt+Shift+J on Windows, Ctrl-Cmd-G on Mac OS X

参照:リンク


重要なのは、(left) Alt + J最初にコードを選択する必要があることです。
ALIZEYN 2018年

7

私はこの種のものにマクロを使用します。マクロの記録を開始し、1回実行してから、変更する各行でマクロを再生します。マクロの記録/再生機能を使って、どれほどすばらしいことができるかに驚くでしょう。


破棄マクロは、この種の変更を行うのに非常に便利です。Zeusエディター内でこれらの変更を行っていた場合、それがどのように説明されるかはまさに私がすることです。
jussij 2009

このようにすべての行がグループ化されている場合は、マクロを記録してカーソルも次の行に移動し、最初の行でマクロの実行を開始し、必要な回数だけ繰り返す必要があります。
ウェイジ2009

「何回でも好きなだけ繰り返すことができる」とはどういう意味ですか?マクロを自動的に繰り返す方法はありますか?
pypmannetjies 2014年

Edit-> Macros-> Playback Last Macro。これをF12にマッピングしましたが、標準以外のキーバインディングがあります。私は一度マクロを実行して、F12を何度も何度も叩き始めました。
クリスケッセル2014年

マクロ良いですが、私はIntelliJの上ideavimを使用する場合、マクロはVIMのショートカットを解決することはできません
阿弥陀

5

見つけるのに少し時間がかかりましたが、MacではダブルプレスOption(1回押す、離す、もう一度押す、押したままにする)、Up/ Downキーを使用して、必要に応じてキャレットを作成/削除できます。

Shift+ Optionを押しながらクリックして、特定のポイントでキャレットを作成/削除することもできます。


これは素晴らしいですが、これを実行してファイルの最後まで選択する方法はありますか?それ以外の場合は、矢印を使用して全体をスクロールする必要があり、いくつかの大きなファイルがあります。
ジャッキー


3

この場合、これを実行するコードを選択して、そのコードに対して置換を実行することもできます。置き換え:

";

で:

" + "foo";

そのため、ご存じない場合:置換(Ctrl + RまたはCmd + R)の実行中にテキストが選択されている場合、そのテキストは選択されたテキストにのみ適用されます。


2

ホールドALTをして、マウスを使用して、クリックしてドラッグ


2

それはだOption + Shift + ClickMacBookのために。

すべての重要なIntellijショートカット:https ://docs.google.com/document/d/1KagEr4hDmTugMJJLsYUgc122zXEnbj4A2vHoe8PtKpo/edit?usp=sharing



1

新しいバージョンの場合:Alt+ Shift+Insert


1
完璧に動作します!@Meysamに感謝
ガウラヴ

別の方法は、「alt」を押したまま「j」を押し続けることです。複数行選択に行が追加され続けます。
gaurav

0

私が通常使用するもの(NetBeansですが、どのIDEでも簡単に使用できると思います)はfind&replaceです。

あなたはそれを見つけ;\nて置き換えるだけで+ $foo;\n、すべての行には適用されませんが、カーソルを最初の行に置き、「置換」ボタン(IDEによって異なると思います)を7回押すだけで、7行がすぐに変更されます。簡単でシンプルで、最も基本的で高度なIDEを使用して実行する必要があります。

編集:IntelliJ(他のIDEでも機能するかどうかわからない)では、正規表現の検索と置換を選択にのみ使用できるため、実際に「すべて置換」を使用できます。


多くの場合、この方法を適用できない場合や、行がまったく異なるなどの場合がありますが、高度な方法を使用しても、この状況についてできることは多くないと思います。
Srneczek 2013年

では、なぜ-1なのでしょうか。私は彼が尋ねた質問に答えました。-1正解ではなく愚かだと思う場合の質問。私の意見では、マクロで受け入れられた答えは、正直に言うと遅い方法です。
Srneczek 2015


0

上記の答えはすべて素晴らしいですが、行末で複数行の編集が必要な場合は、複数行の選択がアクティブなときに「終了」キーを押す必要があります。

Macの場合、コマンドのシーケンスは次のようになります。

shift option click #行のセットを選択

command right arrow #行末に移動

これにより、行の最後で複数行の選択が行われ、必要に応じて編集できます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.