ChatGPT解决这个技术问题 Extra ChatGPT

IntelliJ Column Selection using Cursor Keys

Is it possible to some how setup IntelliJ IDEA so that I can column select with the cursor keys similarly to how I might in Notepad++, Visual Studio, or FlashDevelop.

For instance when I'm typing code I almost always do my navigation solely through use of the keyboard. In the IDEs mentioned previously I can quickly select blocks of code by holding Shift + Alt then tapping ↑ to extend my cursor across the lines above. I can then hold Shift + Alt + Ctrl and tap ← or → to quickly jump across words and select the chunk of text I want.

In IntelliJ IDEA I have to constantly enable and disable Column Selection Mode using the Shift + Alt + Insert and even then it doesn't quite function as it does in the other IDEs or Text Editors.

Any ideas?

This blog post should be helpful.

A
Anton Dozortsev

You can do column editing using the Edit | Column Selection Mode.

The shortcut to turn it on/off is Alt+Shift+Insert. You navigate with arrow keys to select blocks of text.


I was aware of this mode but it didn't quite provide what I wanted, but it looks like I won't get the desired behavior without writing a plugin myself.
On Mac the shortcut is Cmd+shift+*
For some reason on my Mac, Cmd+Shift+8 did not work and I could not figure out why, I remapped that to Control+Option+Command+8 and it worked fine. I also could not find anything that would prevent that old keymap from working other than possibly a system mapping which overrode it.
It's like you didn't even read the question. @JoshuaBarnett Gibolt's answer is what you want.
Seconding jv110 and his objection to JoshuaBarnett's answer. The poster is clearly aware already of the keyboard shortcut JoshuaBarnett mentions and is looking for a more lightweight way of entering column-editing mode, which is what @Gibolt's answer provides.
C
Community

Multiline Caret (without mouse)

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

Mac: ⌘ + ⌘(Hold) + ↑ / ↓

ESC will end multiline mode.

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+↑ / ↓.

Bonus

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


I believe this should be the correct answer. The accepted answer currently just restates some of the content of the question—but this answer provides true rectangular selection without using the mouse, a la Notepad++.
On my Mac, the ALT key was mapped by default instead of . So it was: ALT + ALT (Hold) + /
You can't just state Windows and macOS and ignore Linux!
@jv110 true. It's ok to state just macOS but can't put 'doze in front of 'nix
k
kyb

It is also possible to select holding middle mouse key.


M
Meo

Go to the Settings | Keymap and set a shortcut for Clone Caret Above and for Clone Caret Below


Do you know if it's possible to have it function similar to that of text editors such as Notepad++ where you can only extend in one direction and the opposite of that direction shrinks it?
I do not think it is possible. I have not even seen a feature request for that.
Press Ctrl, then hold Ctrl, it's exactly like you described.
that was the only solution that works for me. thanks for sharing.
B
Bohemian

On a mac, to toggle block select on/off:

shift command 8

⇧⌘8


muscle memory: go to feature
L
LeXav

For me on Mac:

Press once 'option' key, release it, and press and hold it again. Now navigate with cursor to select desired code. Press 'Esc' to exit column mode! :)


C
Community

Most convenient way is to:

MAC: Hold Option+Shift and click with mouse.

Windows: Hold Alt and click with mouse.


As mentioned here(stackoverflow.com/a/57262978/1983465), ⇧⌘8 works for me
Keep in mind, for Mac you only need to hold the Option key all the time
W
Wesley Musgrove

I think @Meo's answer is the most correct, but if your hand happens to be on the mouse, you can also accomplish this with Ctrl+Alt+Shift+Left Mouse Button Click. Or look for the Add Rectangular Selection on Mouse Drag in the keymap settings.


Or press Ctrl then hold Ctrl.
C
Carlos Verdes

In Windows or Linux I press two times Ctrl


Click Ctrl then quickly press and hold Ctrl a second time. Use arrow keys while holding Ctrl to add carets/select
s
sia

For Mac cmd+shift+* didn't work for me. I changed the keymap to something else and now it works seamlessly.