
IntelliJ IDEA 13.1 RC Introduces Sublime Text Style Multiple Selections  - rdemmer
http://blog.jetbrains.com/idea/2014/03/intellij-idea-13-1-rc-introduces-sublime-text-style-multiple-selections/
======
rjzzleep
for linux users as per request a summary of possible ways to fix font issues
has been compiled in a comment below[source]:

> on linux, I finally got it working with a PERFECT font rendering (I’m on a
> high-dpi display), to achieve this you have to:

\- Install and use Oracle JDK (I’m using 1.7) and not OpenJDK (also the
patched one with fontfix was useless for me);

\- Edit the file studio.vmoptions and for 64bit studio64.vmoptions by adding
these lines without quotes:

    
    
        -Dawt.useSystemAAFontSettings=on
        -Dswing.aatext=true
        -Dsun.java2d.xrender=true
    

\- Remove hinting informations from the font that you would like to use and
select the new font into Android Studio preferences (Setting->Editor->Font);
if you don’t know how to do this, install FontForge then:

1\. Open your font in FontForge

2\. Select all glyphs via Ctrl+A and clear all hints (Hints -> Clear Hints)

3\. Select glyphs again and use Hints -> Clear Instruction

4\. Save the font with different name ( File -> Generate Fonts)

5\. Install the new font, select it in IDEA

[] [http://blog.jetbrains.com/blog/2013/05/15/intellij-idea-
is-t...](http://blog.jetbrains.com/blog/2013/05/15/intellij-idea-is-the-base-
for-android-studio-the-new-ide-for-android-developers/#comment-14837)

~~~
alexseman
For me PHPStorm 7 works fine with OpenJDK on Gnome 3.10.

------
sheff
I wish, instead of adding new features, they had a release which dealt with
all the problems from previous versions.

Its generally a good product, but one thing that I find really annoying (with
the Rubymine branch of the product) is the way tabs randomly reorder. It is
frustrating to have to search for a tab when you have more than about 6 files
open and find that it has moved to a different place.

They don't seem to have been able to fix it since 2009 !
[http://youtrack.jetbrains.com/issue/IDEA-22546](http://youtrack.jetbrains.com/issue/IDEA-22546)

~~~
yukichan
The tabs in intellij are definitely weird. I just don't really even pay
attention to tabs or use them for navigating. I use keyboard commands for
selecting files by name.

~~~
MBCook
Ditto. Either command-shift-N to jump to the file I was, or swipe gestures on
my Magic Trackpad to go forward and backward in editor history.

I rarely look for a specific tab.

~~~
brown9-2
command-E is also invaluable (View => Recent Files)

------
btipling
Look at the gif carefully in this blog post, look at how multiple selections
interacts with the clipboard when cutting and pasting, that's pretty amazing.

I never really thought there was much of a need for multiple cursors given the
powerful refactoring tools in IntelliJ that work even with dynamically typed
languages like JavaScript and Python. But given the clipboard interaction, I
can see how this can be helpful.

I hope this also makes it into PyCharms and WebStorm. It's pretty awesome.
Ever since we developed our IntelliJ IDEA plugin I've been using all these
IntelliJ based editors even more than I've been using vim, which is a bit
crazy, but the intelligence IntelliJ brings to the code you're writing is so
incredibly useful and nothing else seems to be as good at understanding code.
IntelliJ IDEA is an amazing editor.

~~~
doorhammer
I've been using multiple selection points in Sublime for a bit now, and I have
to say, I really dig it.

A lot of the things I use it for can be accomplished in other ways, just as
quickly (if not a little more quickly) in other editors with various types of
functionality (I use VIM a lot) but what I like about multiple edit points is
how powerful it can be as compared to how long it takes for it to become
fairly intuitive.

I work mostly in Visual Studio, and even with the default column select, I
keep sublime open for some random formatting that I might do at any given
point. It's really nice, and yeah, the clipboard support is great when you get
the nuances figured out.

------
CmonDev
[To all Microsoft devs] Visual Studio supports this as well via an extension:

[http://visualstudiogallery.msdn.microsoft.com/2beb9705-b568-...](http://visualstudiogallery.msdn.microsoft.com/2beb9705-b568-45d1-8550-751e181e3aef)

I did not find it particularly life-changing, but it's good to try to know if
it's your thing.

~~~
numo16
Pretty sure it is sort of there already without any extra extensions. Place
cursor on line, alt+shift+up/down arrow to duplicate cursor up or down

~~~
doorhammer
Defualt Visual Studio can column select and have one column that's used as an
input point, which is really useful, but I personally don't find it as nice as
having an arbitrary number of actual input cursors.

For instance, in Sublime Text if I have the following text:

    
    
      The
      quick
      brown
      fox
    

I can do the same Alt+Click drag kind of thing to get multiple cursors:

    
    
      |The
      |quick
      |brown
      |fox
    

But in Sublime they're actual input cursors, so I can do something like
Ctrl+Right and get (note that the cursors don't need to stay lined up in a
perfectly vertical column; they react to keyboard commands as though they were
each just a single cursor. If you were to put right, at this point, the
cursors would wrap around like a single cursor would):

    
    
      The|
      quick|
      brown|
      fox|
    

Then if I type a comma or something else, I'll get:

    
    
      The,|
      quick,|
      brown,|
      fox,|
    

Sublime also automatically surrounds selected text in quotes if you hit quote
with selected text. So, after the initial column select, I could do
Ctrl+Right, ", right, right then comma and end up with:

    
    
      "The",
      "quick",
      "brown",
      "fox",
    

The find dialogue in Sublime also lets you place cursors other ways. Doing a
find-all can position a curosr at every instance found, and you can also hold
Ctrl and insert extra cursors wherever you want, though I haven't found the
latter to be quit as useful, personally.

It's not that any of this can't be done in another text editor (I'm a pretty
heavy vim user and you can definitely do really neat stuff like this,
especially with the panacea of plugins) but I find that the multi-cursor
paradigm, where it's actual extra cursors, is really powerful for how
intuitive it is.

Edit: I should also say that I've tried the multi cursor support in VIM and
the Visual Studio cursor. They're both pretty good, but they don't exactly
replicate the Sublime version, so far, and that's what I'd really like. Of
course, if I really cared, I'd just go modify them and fix it myself :P

------
flyosity
I think one of the most interesting parts of this announcement is that they
directly referenced Sublime Text (a competitor) in a way that makes Sublime
seem like the original inventors of this technique. What if Reebok suddenly
announced they were adding "Nike+ style run tracking"? Wouldn't that make them
look pretty weak compared to introducing the feature without mentioning the
competitive brand by name?

~~~
grimgrin
OP of blog post says:

"And to mention [Sublime Text] is what we have been asked for in the original
request (submitted by a Sublime user)."

[http://blog.jetbrains.com/idea/2014/03/intellij-
idea-13-1-rc...](http://blog.jetbrains.com/idea/2014/03/intellij-idea-13-1-rc-
introduces-sublime-text-style-multiple-selections/#comment-54776)

------
antimatter
One behavior I wish they copied from Sublime Text is how tabs are opened. In
Sublime, if you single click a file, it will show you its content but will not
place an open tab in the tab bar. A tab is opened only when double clicking a
file or if you start to edit a file. I accumulate so many tabs when just
trying to reference things in IntelliJ.

------
Marwy
> Select all occurrences: Shift + Ctrl + Alt + J

Yet people complain about Emacs' shortcuts _sigh_.

------
fidotron
While this strikes me as neat, and a convenience especially in languages like
Java, my reaction to it is similar to how old guys used to regard copy/paste
as one of the worst things to happen to programming. We've all seen bugs that
are the result of misapplied or incomplete copy/pasting where taking the time
out to put it in functions properly would have made it obvious.

So while modern IDEs make languages like Java less stressful on the keyboard
in ever cleverer ways I kind of think by making this too easy we're missing
the point of how to make better improvements elsewhere.

~~~
GuiA
False dichotomy, good programmers have used copy and paste for decades without
creating dumb bugs, and bad programmers have created dumb bugs for decades
regardless of whether they use copy and paste.

Sounds to me like the "worst thing to happen to programming" is bad
programmers.

------
tieTYT
This seems really useful. I'm not a heavy regex user, but 9 times out of 10
when I use one, it's to modify a bunch of lines in a file to prepend and
append something to each line. EG: I'll copy something from an external source
like

    
    
      1
      2
      3
      ...
      100
    

I want to paste this into my source code, but of course that doesn't compile.
I'll use a regex to change it to this:

    
    
      list.add("1");
      list.add("2");
      list.add("3");
      ...
      list.add("100");
    

I'm hoping this feature is convenient enough that I can stop using a regex
search and replace.

~~~
mdwrigh2
In vim:

:let @q="ilist.add(\"^[A\");" :%normal @q

~~~
fragmede
1G (goto top)

ctrl-v (enter visual mode)

0G (goto end)

I (insert at beginning of line)

list.add("

ESC

ESC

H

$

ctrl-v

L

A (append)

")

ESC

ESC

~~~
mdwrigh2
I'm pretty sure this breaks if you have a different number of digits for the
first and last characters.

~~~
fragmede
Good point.

After the first set of ESC's, do 1G$ ctrl-v 0G$A ") ESC ESC instead.

------
danellis
I complained that IDEA didn't understand Postgres sequence-controlled columns,
a bug that had been open since 2012. A couple of hours later, it said it was
fixed in the next release. I said on Twitter a few days ago that I wanted the
power of IDEA with the editing featured of ST2, especially multiple cursors,
and now it's there.

It could be coincidence, or... maybe I'm The Chosen One.

------
pekk
It's an awkward UI idiom and other facilities in text editors can fulfill all
the same use cases.

~~~
fit2rule
Its awkward? I disagree .. in fact I think its one of the most obvious 'duh'
features for a modern editor that I'm quite surprised that its taken this long
to come back into vogue .. I find it very useful for refactoring things, for
example, and it just makes so much sense that a professional editor would give
you this ability .. I can't see how its awkward at all.

------
thejosh
Has anyone got the fonts to look good on Linux? It's been improving slowly,
but the default font rendering on Sublime is the only reason I'm still using
sublime.

~~~
thescrewdriver
I'm genuinely curious why the appearance of fonts would be the leading
criterion when selecting a tool.

~~~
thejosh
Looking at the IDE for 8-12 hours a day, you would want good font rendering
that isn't blurry, distorted and looks horrible wouldn't you?

------
vlntyn
It has been there for a while now (long before 13.1).

------
manojlds
I always thought multiple selection was poor man's IntelliJ like refactoring
support in ST. I was wrong, apparently.

------
puppetmaster3
InteliJ is java, slow. Also, the default VM settings are poor.

------
digerata
THANK YOU

------
cube_yellow
I am honestly, genuinely confused why anyone gives two shits about some minor
IDE feature that has been part of other editors (Sublime, Vim, Emacs, more?),
for at least three years now. If someone could help me understand why this has
51 points right now, that would be greatly appreciated.

~~~
joesmo
Some people, myself included, use Jetbrains' IDEs much more heavily than the
aforementioned editors. Personally, I love their IDEs and comparing them to
the aforementioned editors is really unfair as the IDEs offer features that
are simply impossible in text editors. Multi-select is one of the features
that would make the aforementioned editors even more dispensable and the IDEs
even better.

~~~
cube_yellow
Thanks! That answers my original question.

Now for the flamewar: Is there anything that a non-emacs/vim IDE or editor can
do that both emacs and vim cannot? Aside from social inertia (e.g. your
colleagues use it, it's your first and only power editor), I have a hard time
understanding why anyone would use anything else.

My hunch is that it's primarily a marketing problem, especially for emacs.

~~~
joesmo
Of course. Language specific code insight (real-time interactive static code
analysis, essentially), navigation, context code completion, and refactoring
(in whole project). I find these to be the most valuable features of IDEs. I'm
not sure if vim/emacs can do multi-language syntax highlighting (for fixing
that nasty spaghetti) and what their level of support for debugging is
(through plugins), but those would be next on the list.

EDIT: As far as vim, it is supported in any decent IDE (including Jetbrains'
ones), so in that sense, it can do a huge percentage of what vim can do as
well (not sure about emacs).

