
Seriously, we need multi-column editors - paperwork
http://falconair.github.io/2015/03/03/we-need-multicolumn-editors.html
======
sz4kerto
Second image
([http://falconair.github.io/assets/multicolumn/4k.png](http://falconair.github.io/assets/multicolumn/4k.png))
shows IntellJ IDEA, that has multi-column editing. The first screenshot
([http://falconair.github.io/assets/multicolumn/retina.png](http://falconair.github.io/assets/multicolumn/retina.png))
shows Atom, that has multi-column editing as well. WTF?

He also has an IQueueFactory class, that seems like some nice antipattern to
me ;) *Edit: also, use QuickFIX, don't write your own. Been there, done that,
does not worth it.

~~~
paperwork
Author here. Looks like lots of people are mixing up multi-column editing with
split pane views. I want the same file laid out in multiple columns to make
use of the screen real-estate. If such functionality does indeed exist (other
than emacs :) ), please let me know. I haven't been able to find it.

Regarding the anti-pattern. You may be right, I have't updated the code in a
few years. I displayed it in the screenshot only because it is already open
source. But I do need the option of writing files to disk, writing to some
random data store or just keep the data in memory. Send me a note about your
idea, the whole point of opening it up was to get feedback.

QuickFIX is pretty good, but doesn't hurt to experiment :)

~~~
lowbloodsugar
If your class is so big that you need to have multiple views of it, then it
probably doesn't have great SOLID metrics.

~~~
paperwork
You don't have any files over 200 or so lines of code?

~~~
lowbloodsugar
I do and I regard them as a bug in need of refactoring. I just ran sloccount
on one of our key services and the largest non-test file is 106 lines. It has
three methods that do not call each other. The largest test file is 268 lines.

Then again we have another service with four files over 1000 lines (1441 the
biggest), and we experience significant pain: not because of the size of the
files but because of what the size of the class means about its design. That's
on a team that had significant pressure to meet some tight deadlines. They are
now actively working on refactoring those classes - again, not because of the
size, but because of the design.

------
Someone1234
I must have different eyes to everyone else in the human race...

It seems like on PC/Linux/etc every time resolution increases font size and
everything else gets tinier. They might be taking up the same number of pixels
on a 1080p and 4K display, but those pixels have physically shrunk. So the
result is that millimeter to millimeter they have shrunk and your eyes need to
focus on a smaller "thing."

Staring at tiny text all day is exhausting, but yet a lot of people love to do
it as they constantly rave about how 1080p or 4K give them "more screen real
estate" (because now everything is tiny). This is another example of that.
Instead of the OP just increasing the font size, they've let the text get
smaller and smaller and are now complaining that they have too much wasted
space.

On all Windows machines I now run I use 125% DPI to try and make the text
readable over long periods. On my Surface 3 I use 150% DPI which breaks a lot
of stuff.

Honestly as far as I am concerned Apple are the only one that got this right
when they scaled everything so it stays the same size (in real terms) as
resolution increases (effectively giving your text more pixels, so it looks
smoother). Windows is terrible and Linux is worse.

But since every other human seems to have cyborg eyes and is immune from eye
strain I guess none of this matters...

~~~
paperwork
With modern monitors, I could increase the font size until it matches a
toddler's alphabet book, I wold still have plenty of space left for at least a
couple more columns :)

------
jlarocco
Emacs already has exactly this built in with follow-mode.

[http://www.gnu.org/software/emacs/manual/html_node/emacs/Fol...](http://www.gnu.org/software/emacs/manual/html_node/emacs/Follow-
Mode.html)

~~~
verandaguy
Same with (Neo)Vi(m)

~~~
masklinn
Are you sure it's equivalent to follow-mode, not just vertical splits? Follow-
mode emulates the file wrapping to the next column when it reaches the end of
a buffer, and if the cursor moves across the top/bottom boundary it'll appear
on the other buffer instead of scrolling the current buffer. And the buffers
are synchronised as a single "page".

edit: apparently you can do that with scrollbind.

------
vortico
Is that Sublime Text, Atom, or Brackets? Sublime Text has great multicolumn
(and grid) support, but I don't use the others.

Although, if you use a tiling window manager and use lightweight non-single-
window IDE/editors, you can just launch multiple windows and your window
manager can do the rest. Multi-columns seems like a more natural job for
window managers, so editors should be designed to naturally handle multiple
windows and be able to quickly close and open them.

~~~
colinramsay
This was my first thought, and you're right. But what if the author means two
columns as in a newspaper or magazine, where the same content continues off
the bottom of the left pane to the top of the right one? Does anything support
that? Would it be useful?

~~~
dktbs
Emacs provides this with Follow Mode:

[http://www.gnu.org/software/emacs/manual/html_node/emacs/Fol...](http://www.gnu.org/software/emacs/manual/html_node/emacs/Follow-
Mode.html)

~~~
rdtsc
Interestingly I find the default behavior more helpful. Usually if there are
any declarations or some init code at the top and some use of those later, I
would want to view the top of the file in one column and work or edit in
another part without having both scroll synchronously.

Sometimes I have the same file open in 3 or 4 columns if I need to see what is
happening in multiple parts of the code in front of me.

------
VLM
As in all tech, the future is already here, just very unevenly distributed.
Fire up emacs, "control-x 3" and there you are. Next up will be googling about
windmove-default-keybindings so that shift-arrowkeys does what you'd expect in
an emacs frame (or has this become the default over recent years?).

For a good time try control-x 2 and finish with some control-x 1.

~~~
dmm
Add winner mode to get undo and redo with your window layouts. C-c left and
C-c right

------
bdg
To be honest I don't have this problem because I selected a tool set that does
this already.

Tiling window managers (Awesome, XMonad, etc) and VIM do all of this and more,
and I use them every day with great ease. In fact, moving away from them and
having to use a 'click + drool' GUI (Unity, KDE, Gnome, etc) to move windows
around feels slightly painful to me now.

~~~
paperwork
Are you referring to tiling or laying out a single file across multiple
columns?

~~~
bdg
You can do both of those in vim.

------
invernomut0
How to do it using vim: [http://stackoverflow.com/questions/5131205/how-to-
edit-text-...](http://stackoverflow.com/questions/5131205/how-to-edit-text-in-
multiple-columns-in-vim) Seriously, just google it :)

~~~
paperwork
Haha, I'm the one who asked that question years ago :) I'm the author of this
article.

Vim does come closest to what I want. However, I'd like to be able to do this
in intellij, eclipse, sublime, atom, etc. In other words, my contention is
that this should be a standard feature, like syntax highlighting or code
folding.

------
potomushto
I wonder if Atom could achieve that with CSS3 Multiple Columns

~~~
paperwork
I just looked up css3 multiple columns. Great pointer. I'll investigate it,
thanks!

------
theRhino
can i second the 'just use emacs' argument?

i look forward to the day i can fire up emacs on multiple 4k monitors

its a bit tragic that a programmer doesn't already know this fact?

------
ramius345
Emacs has done this for years.

~~~
guardian5x
And at least a hundred other editors. I don't get this post.

~~~
rdtsc
People get to talk about their favorite editor. So it gets upvoted.
Programmers love to talk about their tools.

------
Fiahil
I use Mjolnir[1] to arrange term, Atom or IDEA windows. It's quite efficient
since you can switch/resize them very quickly and you don't have to rely on
your full-screen-IDE's embedded terminal for console output.

[1] [https://github.com/sdegutis/mjolnir](https://github.com/sdegutis/mjolnir)

------
mikhailt
To the author: if this many people is confused about the difference between
multi-pane and multi-column, your message isn't clear and it won't be to the
developers you're asking either.

Explain exactly what you want (I read the blog post and it gave me no clue to
that) and the developers might understand what you're asking.

~~~
paperwork
You are right. I'm planning a follow up with more detail.

------
mediocregopher
I very often have a vertical split in vim, both panes with the same file. I
can skip around the file and look at stuff in one while actually writing code
in the other. Is that more or less what the op is asking for?

~~~
masklinn
I assume he wants the impression that the file wraps around to the same
column, with the buffers synchronised across the split.

Emacs does have that using follow-mode, I don't know if other editors do.

------
BenderrTheRobot
Waste less space by turning your monitor to portrait mode. Not everything
looks good on something intended for video.

------
gagege
Visual Studio has great multi-columns. Just drag any tab and snap it into
place.

Also, here's a simple solution: don't maximize windows. There's a lot of space
on that screen that could be taken up by a browser, desktop icons, calculator,
and any other thing you need instant access to. It's not multitasking(which
I've heard is considered bad), if you're using all those windows to accomplish
one task.

~~~
masklinn
Visual Studio has tiling. So do almost all editors, so I'd assume that is not
what the author is talking about. You can display files side-by-side, you can
even display multiple sections of the same file side-by-side, but you can't
have a single file view "wrap around" into columns.

Emacs does have that feature via follow-mode.

~~~
gagege
Oh, I see.

------
whizzkid
You often will not need to see whole class to implement things.

cmd+f --> "string"

ctrl+g --> "line number"

in 4K tv example, you will need to focus your eyes too much that they will get
tired after 30 minutes. Instead, zoom in and focus on the method you are
dealing with.

you may use;

cmd+alt+2 --> for 2 columns layout in order to compare 2 files.

Your eyes are much more important than text editors.

Happy coding!

Edit: Examples are given from Sublime Text 3

------
jhrobert
It's funny that so many people missed the point and assumed the author is
clueless.

------
flohofwoe
'CTRL-W v' in vim ;) Also, Visual Studio has vertical and horizontal tab
groups, Xcode has "counterparts" where you can display 2 associated files side
by side (for instance .c and its .h file), and tmux lets you setup vertical
and horizontal splits for terminal sessions which is also very nice in
combination with vim.

------
kungfooguru
Seriously, use emacs.

------
IanDrake
Visual Studio - As many vertical tab groups as you need.

------
2mur
Vim alone or vim+tmux is what you're looking for.

------
olivierkaisin
This is a joke right?

(Sublime has this feature baked in since day 0)

~~~
paperwork
Split pane/tiling? Can sublime layout single file in multiple columns? Note
that I'm asking for a multi-column editor, not a multi-pane editor.

------
rdtsc
Seriously we've had those for decades.

Press 'Ctrl+x 3' in emacs and you've split your buffer in 2 columns. Now you
got a multi-column editor.

------
jrmoran
is that last screenshot intellij? If that's the case, the editor supports
splitting windows [https://www.jetbrains.com/idea/help/splitting-and-
unsplittin...](https://www.jetbrains.com/idea/help/splitting-and-unsplitting-
editor-window.html)

~~~
masklinn
Which is why I'd assume TFA is talking about something similar to Emacs's
follow-mode[0], not mere vertical splits

[0]
[https://news.ycombinator.com/item?id=2797790](https://news.ycombinator.com/item?id=2797790)

------
voidon
Heh, are there any editors which don't support multi-column editing?

~~~
paperwork
All of them, as far as I can tell, other than (apparently) emacs and vim.

------
htor
Seriously, you need to learn how to use your editor.

