问题
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.
- Select the first semicolon
- Then press Alt+J four times
- Edit what you want to
- 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):
ALT
+ SHIFT + INSERT` to enter block-modeSHIFT + UP
orSHIFT + DOWN
to select multiple linesEND
to jump to the end of each linenow type
foo
, it will append it to each line:Now deselect everything with
ESCAPE
and switch back to normal selection mode withALT + 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