IntelliJ IDEA way of editing multiple lines

二次信任 提交于 2019-12-31 08:23:45

问题


I've seen this done in TextMate and I was wondering if there's a way to do it in IDEA.

Say I have the following code:

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

What is the best way to append '+ "foo"' to every line? Column mode won't work since the lines are not correctly aligned on the right side... unless there is an easy way to right justify the text :P


回答1:


Since Idea IntelliJ IDEA 13.1 there is possibility to edit multiple lines.

Use:

Alt + Shift + Mouse click

for selection. More about this new improvement in IntelliJ blogpost here. Very useful feature.




回答2:


I use Column Selection Mode (Cmd+Shift+8 on Mac) which allows to create multiple cursors via Shift+Up or Shift+Down then edit all the lines together.

Starting from IntelliJ IDEA 14 there is also Clone Caret Above / Below:

  • Windows: Ctrl, Ctrl+Up/Down
  • MacOS: Option,Option + Up/Down

(hold the second press of the modifier key, then press the arrow key)




回答3:


Another keyboard-only approach. It's possible (since 13.1 version) to use Alt+J / Shift+Alt+J (Ctrl+G for OS X) shortcuts for creating multiple carets. Alt+J selects the next occurrence of the currently selected text and adds another caret.

  1. Select the first semicolon

  1. Then press Alt+J four times

  1. Edit what you want to

  1. Press Esc to return to the first line.




回答4:


Place caret at end

Windows: CTRL + CTRL(Hold) + ↑ / ↓

Mac: option + option(Hold) + ↑ / ↓.

To place caret at the end of rows: move caret to top row, clone down to bottom, and click END.

Change Multi-caret Hotkey

To add a custom Keymap, CTRL+SHIFT+A, type keymap and click on the one with Settings as subtext. Search for Clone Caret Above and Clone Caret Below.

I mapped mine to ALT+SHIFT+↑ / ↓ on Windows and +↑ / ↓ on Mac.

Bonus

Try holding combinations of CTRL, SHIFT, and arrows for improved selection power.




回答5:


I just use the macros for this sort of thing. I start recording the macro, do it once, then play back the macro on each line I want to modify. You'd be amazed at how fancy you can get with the macro record/playback feature.




回答6:


You could also do a vertical code block selection by clicking mouse wheel and dragging:




回答7:


Select Next Occurrence:

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

Unselect Occurrence:

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

Select All Occurrences:

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

for more reference: link




回答8:


It took me a while to find out, but on a Mac you can double-press Option (press it once, release, press it again, keep it pressed) and use Up/Down keys to create/remove carets as you wish.

You can also hold Shift+Option and click to create/remove carets at specific points.




回答9:


In this case you can also just select the piece of code in which you want to do this and perform a replace on it. Replace:

";

with:

" + "foo";

So in case you didn't know: If you have text selected while you perform a replace (Ctrl+R or Cmd+R) it will only apply to the selected piece of text.




回答10:


ALT + CTRL + SHIFT + CLICK on linux




回答11:


Column mode works just fine: first select all the lines in column mode, then press END: each cursor will jump to the end of respective line.

On Linux (NO MOUSE NEEDED):

  1. ALT + SHIFT + INSERT` to enter block-mode

  2. SHIFT + UP or SHIFT + DOWN to select multiple lines

  3. END to jump to the end of each line

  4. now type foo, it will append it to each line:

  5. Now deselect everything with ESCAPE and switch back to normal selection mode with ALT + SHIFT + INSERT.




回答12:


Hold ALT and use the mouse for click and drag




回答13:


It's Option + Shift + Click for Macbook.

All Important Intellij Shortcuts: https://docs.google.com/document/d/1KagEr4hDmTugMJJLsYUgc122zXEnbj4A2vHoe8PtKpo/edit?usp=sharing




回答14:


What I usually use (NetBeans, but I believe it is simple to use in any IDE) is find&replace.

You just find ;\n and replace it with + $foo;\n then you don't apply to ALL lines but you place cursor on the first line and you just hit "replace" button (depends on your IDE I suppose) 7 times to change 7 lines in no time. Easy and simple and it should be done with the most basic and the most advanced IDE you can find.

EDIT: In IntelliJ (don't know if it works in other IDEs too) you can use your regexp search&replace to selection only so you can actually use "replace all"




回答15:


For mac users it's : ALT + SHIFT + Click




回答16:


For Mac:

Option + Shift + Click & Drag


来源:https://stackoverflow.com/questions/1262737/intellij-idea-way-of-editing-multiple-lines

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!