top | item 9144796

Seriously, we need multi-column editors

16 points| paperwork | 11 years ago |falconair.github.io | reply

68 comments

order
[+] sz4kerto|11 years ago|reply
Second image (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) 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.

[+] masklinn|11 years ago|reply
The terminology really isn't clear, but assuming the author is not crazy and hasn't missed split windows, most editors have tiling systems, not multi-column systems: you can display different files tiled on the window, you can display independent views of the same file tiled, but it's not a continuous view of a file across multiple columns, where the end of one column is the starting point of the next, and scrolling is synchronised.

Or at least if you can do that, I've got no idea how to enable it in IDEA.

Emacs does provide that feature using follow-mode: http://www.gnu.org/software/emacs/manual/html%5Fnode/emacs/F...

edit: it is apparently possible to do something very similar in vi/vim by using scrollbind.

[+] look_lookatme|11 years ago|reply
I clicked the comments here first (bad habit) and presumed there was something more nuanced to the case the OP is trying to make... but you are right, it's quite the WTF.

To be fair I think Atom hides the split commands behind a View->Panes menu and IntelliJ (or PHPStorm at least) has the command in Window->Editor Tabs. (All on OSX). So it's not super clear where the split window functionality is, but it's also not hard to read the docs for your editor..

Edit: Ah I see what the OP is saying now. I'd be surprised if this functionality isn't covered by plugins, though.

[+] paperwork|11 years ago|reply
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 :)

[+] dietrichepp|11 years ago|reply
I think most of the time, stupid stuff like IQueueFactory just appears because it's Java and Java didn't let you pass individual functions around until recently.
[+] detrol2k|11 years ago|reply
off-topic: what font is that in the first picture?
[+] Someone1234|11 years ago|reply
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|11 years ago|reply
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 :)
[+] vortico|11 years ago|reply
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|11 years ago|reply
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?
[+] iandanforth|11 years ago|reply
It does? He means page wrapped, single file, multi-column views. Like multiple columns in Word.
[+] VLM|11 years ago|reply
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|11 years ago|reply
Add winner mode to get undo and redo with your window layouts. C-c left and C-c right
[+] bdg|11 years ago|reply
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|11 years ago|reply
Are you referring to tiling or laying out a single file across multiple columns?
[+] invernomut0|11 years ago|reply
How to do it using vim: http://stackoverflow.com/questions/5131205/how-to-edit-text-... Seriously, just google it :)
[+] paperwork|11 years ago|reply
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|11 years ago|reply
I wonder if Atom could achieve that with CSS3 Multiple Columns
[+] paperwork|11 years ago|reply
I just looked up css3 multiple columns. Great pointer. I'll investigate it, thanks!
[+] theRhino|11 years ago|reply
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|11 years ago|reply
Emacs has done this for years.
[+] guardian5x|11 years ago|reply
And at least a hundred other editors. I don't get this post.
[+] Fiahil|11 years ago|reply
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

[+] mikhailt|11 years ago|reply
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|11 years ago|reply
You are right. I'm planning a follow up with more detail.
[+] mediocregopher|11 years ago|reply
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|11 years ago|reply
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|11 years ago|reply
Waste less space by turning your monitor to portrait mode. Not everything looks good on something intended for video.
[+] gagege|11 years ago|reply
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|11 years ago|reply
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.

[+] whizzkid|11 years ago|reply
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|11 years ago|reply
It's funny that so many people missed the point and assumed the author is clueless.
[+] flohofwoe|11 years ago|reply
'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.