A new truly innovative text editor

Jacob Smith
Jacob Smith

github.com/onivim/oni
Modern Modal Editing — powered by Neovim
Oni is a new kind of editor, focused on maximizing productivity — combining modal editing with features you expect in modern editors. Oni is built with neovim, and inspired by VSCode, Atom, LightTable, and Emacs

The vision of Oni is to build an editor that allows you to go from thought to code as easily as possible — bringing together the raw editing power of Vim, the feature capabilities of Atom/VSCode, and a powerful and intuitive extensibility model — wrapped up in a beautiful package.
And guess what?
It's also made on Electron
Seems like it's a cool trend now
Maybe /tech should get together and make another one?

Other urls found in this thread:

github.com/onivim/oni/blob/master/CODE_OF_CONDUCT.md

Lucas Ortiz
Lucas Ortiz

ayy lmao what is this shit
no thanks sticking to my shitty busybox vi or vis

I might switch to a go full featured vi clone at some point in the future tho if someone writes it or I attempt.

Justin Price
Justin Price

made on Electron

Andrew Rivera
Andrew Rivera

gif
2018
seriously
go
fuck
yourself

Kevin Butler
Kevin Butler

Code editors today provide several benefits that help to reduce cognitive load when writing code, and that benefit is tremendously important - not only in terms of pure coding efficiency and productivity, but also in making the process of writing code enjoyable and fun for niggers, refugees and brainlets.

Isaac Jones
Isaac Jones

So basically just a shitty VS Code clone + vi keybindings. How it is any better than just using a extension?
Also modal editing is vastly overrated. It brings unnecessary mental complexity. The whole idea of modal editing was because of old shit keyboard with not enough dedicated keys. And people somehow think that modal editing is the only way to use mouse-free workflow.
Fucking hipsters, shilling neovim all over the web, how is the best thing since slice bread and when you disagree their response is that you just didn't spend enough time getting used to it. It's like people hate themselves.

Justin James
Justin James

get together and make another one
KYS. It is actually more beneficial to the world to refrain from making a new electron project, than starting or even acknowledging one.

Nicholas Perez
Nicholas Perez

I've found that alot of these [neo]vim shilling hipsters do so just because of the learning curve, which they'll eagerly point out to you is steep at first. They do this because it is an easy way for them to signal intellectual superiority they purport to have. Question these types about the complexity of any actual work they do with their highly productive modal editor, and they'll quickly shrink away or shift the topic back to the steep learning curve.

Austin Barnes
Austin Barnes

he doesn't understand that the treadmill of complexity means there's unlimited room for improvement at any level

Hunter Phillips
Hunter Phillips

Stop making text editor threads you fucking autist.

Grayson Phillips
Grayson Phillips

github.com/onivim/oni/blob/master/CODE_OF_CONDUCT.md
Dropped again.

Carter Robinson
Carter Robinson

It's just a GUI for Neovim with a bunch of plugins included. I don't get the appeal, just get Neovim and install the plugins you want instead. If I were to make a Neovim GUI it would be just that: a GUI. You know best which plugins you want.

It also makes the editor harder to learn, because not only do you need to learn the editor, you also have to learn the shit that comes bundled with the editor on top of that.

Jose Sullivan
Jose Sullivan

in the past keyboards had less dedicated keys
Yeah back in the olden days when English only had the 10 letters modal editing made sense. But now with a massive 26 it's like duh.

mental complexity
Exactly Ctrl+<key> is designed for the mentally simple. And that saves brain cells so you can spend them on machine algorithms and cpu editing.

Alexander Baker
Alexander Baker

i like this post

Isaac Nelson
Isaac Nelson

Meh, as far as cocs go, it seems pretty harmless. They don't even have (((inclusivity))) as stated goal, just "harassment-free environment", which is pretty standard thing.
Examples of behavior that contributes to creating a positive environment include:
- Using welcoming and inclusive language
is the only line that could be perceived as using socjus lingo, but being in context of short (by socjus standards) coc that's otherwise devoid of progressive newspeak and concepts, I wouldn't be too concerned. Of course there's always chance that they'll cuck out and change it later, but that's a different thing.

Nathaniel Hill
Nathaniel Hill

A grown adult doesn't need to be told these common sense guidelines.

Mason Robinson
Mason Robinson

throwing out perfectly valid gifs because muh current year

Hudson Hernandez
Hudson Hernandez

Yeah back in the olden days when English only had the 10 letters modal editing made sense. But now with a massive 26 it's like duh.
Look at the picture. No arrow keys, no alt keys, no super keys.

Exactly Ctrl+<key> is designed for the mentally simple. And that saves brain cells
That is not my point. In order to use vi even on the most basic level you are forced into memorizing modal commands. Every time you have to use a command you must think about it, even it is is mostly subconsciously. Same with Ctrl+<key>, but the difference is that Ctrl commands are unified pretty much universal. Also you don't have to toggle between modes, because there is only one mode. Now imagine each of your application that you use, use different modal keys that you have to memorize.
b-but muh productivity! muh flexibility!
Not the most important factor for absolutely everyone using these kind tools.

Samuel Thompson
Samuel Thompson

electron
way to ruin it

Brayden Rivera
Brayden Rivera

memorize commands
keys perform actions other than entering text
multiple modes where keys mean different things
keys change between specific applications
You know what that's called user. A videogame.
If you are smart enough to play a game you are smart enough to learn that w doesn't always mean type the letter w.

Brayden Martinez
Brayden Martinez

This is pretty cool, specially because only the frontend is built on webshit technology, it reminds me of xi-editor.

I wonder if the people here shitting on it merely because it is built on Electron, would still feel this way if they were leading a project with a tight budget and a deadline and were presented the choice of using Electron, saving a lot on development cost and speed.

Welp. I just installed it, played a tiny bit around, and ... i can't understand how different it is from Atom/VS Code with Vim extension. If only it wasn't written in Electron it'd still have some "purpose" but it literally weighs 72 MB.

5,000 stars on Github. 10 outta 10.

Zachary Moore
Zachary Moore

tight budget and a deadline and were presented the choice of using Electron
Electromeme is never the right choice. I wouldn't say it's that much faster to develop than let's say Qt. When I ported an application from eletromeme to Qt, it took 100x less resources around the board (CPU, memory, and disk space). Pretty important as my application is meant to be ran in the background while someone is expecting 0 slow down in a performance heavy application in the foreground.

Jace Miller
Jace Miller

Realizing that even Python has Qt bindings makes making a case for Electromeme really hard.

Cameron Morales
Cameron Morales

even Python has Qt bindings
even
Python is literally the only external language that has good binding for Qt. And even that is being maintained by a single third party company. Without them there wouldn't be any good Python binding for Qt. That is a curse of making your framework in C++ instead of C.

Ayden Brooks
Ayden Brooks

Hey I want to make my own text editor too. Complete with my own programming language. Eventually I want to turn it into my own OS or something so I can do everything I need from inside it.

How do I do it?

Lincoln Johnson
Lincoln Johnson

How the fuck do you even make bindings to a C++ library?

C++ simply doesn't have a sane ABI. You can't FFI load C++ libraries and get symbols that point to functions. Everything is mangled up the ass, and things like exceptions simply cannot be allowed to flow into foreign non-C++ code, lest ridiculously undefined behavior take place. And Qt isn't even pure C++, it has its own autistic signal handling mechanism as an extension of C++ which makes everything even more fucked up.

So how? How did they do it? The only way I can possibly imagine it happening is they wrapped the whole thing behind C header files and linked to that instead.

James Torres
James Torres

1.39mb
1.13mb

Ian Hall
Ian Hall

somehow managed to make a webm look even worse than a gif

Tyler Cox
Tyler Cox

By breaking your task up into manageable components.

0) Learn an existing language very well.
1) Use that language to write a compiler for your new language. Most likely you'll target GCC or LLVM so you don't have to do the backend (the conversion from the intermediate language to assembly).
2) Attempt to make a text editor with your new language, you'll have to spend a lot of time going back to 1) to fix problems with your language.
3) Now you use your new text editor to write your operating system.
4) Your OS works great, but it doesn't have any programs written for it. Now you'll need to learn how to either adjust an existing linker, or build your own, so that your compiled programs conform to your new OS ABI.
5) Now you'll use your compiler to compile your compiler for your new OS.
6) Now you can live inside your own OS, and live happily ever after.
....
One day you'll want to write your own processor too. That's when you might want to look into FPGAs, but you've got a lot of work ahead of you.

Christian Edwards
Christian Edwards

(me)
write your own processor
Make that synthesize.

Eli Martinez
Eli Martinez

Everything sounded like my dream editor until I read the Electron part.

Repeat after me, you fucking latte drinking San Fran GitHub sucker hipsters:
YOU DO NOT NEED A FULL BLOWN BROWSER FOR A STUPID TEXT EDITOR

When was the last time you played a videogame, grandpa? Controls have been standarized and compressed, and the same button can mean different things in different contexts, and the game will choose accordingly. Not everything is Nethack anymore

Thomas Harris
Thomas Harris

Rules like these are not in place to tell normal adults what to do, they're just an statute mods can use to justify kicking out abnormal, retarded people that will eventually show up. Problem is when most of those nowadays are made specifically so the retarded ones can rule and create their bizarro world around it. Doesn't seem to be the case with this one, so, we're good.

Xavier Bailey
Xavier Bailey

he thinks nethack is old
You just outed yourself as a n00b. You don't know nothing about what's old. Nethack has full screen display, that's fucking advanced shit and doesn't work on teletype.

Christopher King
Christopher King

what is sarcasm
what is valid about cutting a segment of a video in shit quality but with file size as if it was of topkek quality (about 30x bigger than it would be if you used a reasonable video codec)?
there's nothing valid about it even in 2008, and now it's even less valid.
I did not make other ones.
5,000 stars on Github. 10 outta 10.
aggressive shilling, that's why
even Python has Qt bindings
nice way to say that, when the only other language that has them is C++.
btw what do I choose then?
look at Emacs
what would you expect if he didn't bother to find the original and just converted already shitty gif?
that's why gif is shit, the result of it is also pretty much unsalvageable. just like a 64kbps mp3 file, it sounds worse than 32k opus and there's no way to make it smaller without making it even more shit, you will need the original recording to achieve that.

Isaiah Lewis
Isaiah Lewis

soyboys were a thing in 1973

Lucas Thomas
Lucas Thomas

What the fuck are you talking about?
The first version of NetHack was released by Mike Stephenson on July 28, 1987
That's 30 years. 30 years in software time is several eras, specially in videogame design time. Just because the technical side has been updated just so it does not bitrot doesn't mean it is modern by any means, you geezer.

John Edwards
John Edwards

How do you extend this editor?
Extending Emacs was amazingly easy, all I had to do is define function and place file with it in some sub-folder of emacs.d.

Jason Moore
Jason Moore

We're talking about interface. I'm telling you nethack's interface isn't that old or outdated, and in fact you probably use software with similar interface, such as vi or emacs (or other ncurses program, such as various roguelike games). Compared to ed and other ancient stuff, those are very advanced and still heavily used today.

Noah Evans
Noah Evans

btw what do I choose then?
Many will disagree with me, but my personal advice. Don't develop cross-platform unless absolutely necessary. Target the platform you use or 90% of your customers use.
Windows
C# (UWP)
macOS
Swift
Linux
a) C++ -> Qt Widget with KDE Frameworks
b) other languages -> GTK+

If you absolutely need cross platform then C++ and Qt, Python and Qt or Java with JavaFX. JavaFX while not looking 100% native is not too bad, look at JetBrains IDEs for example. Every other options sucks. GUI frameworks in general suck ass. Every single one in their own unique way.

Chase Perez
Chase Perez

The same way as Neovim, I presume. So more painful than Emacs, especially for complex things, but doable.

Dylan Edwards
Dylan Edwards

different things in different contexts
And this is different to modal editors because?? Oh right hjkl for movement.
protip sweetie: you can use arrow keys for movement too

Michael Baker
Michael Baker

Target the platform you use or 90% of your customers use
I use both macOS and GNU/Linux. I want to be able to also jump to *BSD if I ever want to.
And re-doing UI from scratch sucks balls.

I thought about JavaFX, but I don't like that JVM is so fat like our moms, and it generally has bad publicity. Also, despite all the fucking complexity of JIT, it can't into composite value types, making it sometimes even worse than PyPy. There is some hope that these 2 things will become solvable when Java 11 gets released for example.

look at JetBrains IDEs for example
they aren't made with JavaFX, it's heavily patched Swing (well it used to be, maybe I misses some recent news)

David Miller
David Miller

they aren't made with JavaFX, it's heavily patched Swing (well it used to be, maybe I misses some recent news)
Oh yeah, I think you are right. I heard similar thing, but not 100% sure. I made some toy JavaFX applications on Windows few years back and they looked pretty OK, but the development was kinda unpleasant compared to Android for example. I don't do any GUI programming these days so can't really say what is the best right now, I guess...

Ethan Bailey
Ethan Bailey

Just because it is not as old as prediluvian stuff doesn't mean it is not old. The only modern game I can think of that uses such inputs is StarCraft II, because the control scheme was ported from the original StarCraft and because it serves its purpose as a gookclicking game.

sweetie
Except most of the time games handle the context automatically for you, and the amount of commands each context has is reduced, and they generally don't use widely different keys in each context, and in case you forgot what each thing does you usually have a small cheatsheet somewhere that constantly reminds you of what you can do. And even if you don't know what a key does, trying it out is as easy as pressing it. vim is as unforgiving with this as it can, with some keys doing some stuff only if followed by certain other keys, usually without even letting you know what you just pressed and that it is expecting another input. How in the fuck is d20j intuitive at all? Sure, you can learn vim and get used to it, but it still is a usability nightmare, and that's what causes its steep learning curve, which I guess is still the appeal of vim just so you can feel 1337.

hjkl
Vim posseur detected. The Vim Way™ includes deciding which is the best Vim Command Wombo Combo™ for the situation, then counting or guessing which row and column you want to move to, so you can shave down those 7 keystrokes required to move to the beggining of the next section to 4, while feeling like a productive pro while doing it. If you do it enough times you may end up saving enough time for posting about how easy it is to write haiw90alhd to fix a typo than pressing Ctrl + arrows nine times to move around, while simultaneously claiming moving your hand out of the home row is a considerable impact to your productivity and that you should spend less time in INSERT mode and more time thinking about code.

Blake Morris
Blake Morris

compared to Android for example
Actually Android has one of the most comfy UI toolkits. Almost everything is easy and pretty obvious how to achieve with the right combo of layouts, etc. They really hit the nail in the head.
Never had seen anything similar for desktops, cross-platform or not.

Brayden Myers
Brayden Myers

Almost all cursor movement that can't be expressed in two simple, uncounted actions at most (so nothing more complex than, say, moving to the start of the previous line) ought to be done by mouse or by searching.

Grayson Lopez
Grayson Lopez

powered by Neovim
HUEHUEHUE GIB MONI OR I REPOT YUO

Christian Long
Christian Long

So you've never used a modal editor and you think they are dumb. Good stuff.

Andrew Garcia
Andrew Garcia

Oh, but I have. You probably haven't used a proper IDE though.

Brandon Baker
Brandon Baker

haiw90alhd
sure thing buddy.

Chase Morales
Chase Morales

Are you the kind of guy who doesn't get a programming joke because it does not compile? BAZOOPER!

Blake Bennett
Blake Bennett

I was pretending to be retarded

Aaron Wright
Aaron Wright

user, I think you may be autistic. I am also not the guy who recommended using hjkl. :^)

Luke Morgan
Luke Morgan

/botnet/index.html

Brody Mitchell
Brody Mitchell

No I'm a 1337 pro coder who can use a modal editor. Head on back to your kiddie pool IDE before you hurt your brain honey.

Leo Powell
Leo Powell

Is anything not infected by CoC malware these days?

Tyler Bailey
Tyler Bailey

editor is for productivity
typing 2 keys is more productive than 1
/g/index.html

Sebastian Reed
Sebastian Reed

I never said editor is for productivity. I said the opposite that this "productivity" is so minimal its pointless for many people. The increased mental complexity is a handicap to them. Only if you are willing to sacrifice that for extra productivity then modal editing is an improvement. Many vi users can't grasp that idea because they are too autistic.

Andrew Allen
Andrew Allen

How the fuck do you even make bindings to a C++ library?
In C++.

Jacob Powell
Jacob Powell

there's nothing valid about it even in 2008, and now it's even less valid.
Actually, in 2008 it was the only animation format widely viewable in web browsers and uploadable on imageboards.
what is valid about cutting a segment of a video in shit quality but with file size as if it was of topkek quality
See above. It was the only format possible back when it was cut. You'd have to hunt down the original video material and recut the clip from scratch if you wanted it "the right way" WHICH YOU YOURSELF ADMITTED YOU CANCEROUS FAGGOT:
what would you expect if he didn't bother to find the original and just converted already shitty gif?
there's no way to make it smaller without making it even more shit, you will need the original recording to achieve that.
WHO THE FUCK WANTS TO WASTE TIME DOING THAT WHEN THE GIF DOES THE JOB!?!?

Parker Rivera
Parker Rivera

tfw you swap your Caps Lock and Esc keys for Vim
tfw you don't even use Vim anymore

Jose James
Jose James

not remapping Caps Lock as second Left Ctrl

Nathan Martinez
Nathan Martinez

Transmission has a very elegant solution to the problem: the bulk of the program is written in C, and then the GUI can be written in whatever you want, be it GTK, Cocoa, ncurses or HTML/CSS/JavaScript.

Neovim takes it even further: the program can run headless and a GUI is an entirely separate process that communicates with Neovim over a well-defined RPC API. This is probably the best solution because you can just throw away a GUI and swap in another one at any point. But it's also much more work to make it happen.

Justin Barnes
Justin Barnes

it doesn't do the job
unless you stick to unix philosophy (worse is better)

Lincoln Brown
Lincoln Brown

This is the future, goys. Frameworks on frameworks, web apps on the desktop, trends making them obsolete in a year or two, signed and guaranteed DRM in webasm making it impossible to save or open text files with incorrect opinions, Soros-funded malware being necessary to log in to Faceberg and Yourube, social media history analyzed like a credit score when you apply for a job or a loan or an Ez-Pass to use the express lane.

It's all designed to tie together. If you check out it's a black mark on your score but it's better than staying in.

Little do the leftists know that social credit is coming soon, all those "free" hormone pills will be charged to your social credit account, automatic debt for each liter of air.

Austin Green
Austin Green

What in the sam hell is "modal editing"?

Hunter Thomas
Hunter Thomas

To switch between actually typing and moving the cursor, and doing other things, you have to press a key. It's completely gay, and the only reason it exists is because vi / vim are descended from truly antique editors which were designed for use with a Teletype and printer, which obviously couldn't display a whole screen of information at once like we've been accustomed to since the 1970s.

Naturally it makes sense to recreate this retarded environment for today's computers, which all have high-resolutions displays and windowing systems.

Daniel Lewis
Daniel Lewis

lmfao this guy

Jaxson Robinson
Jaxson Robinson

Everything I wrote is true, you're just salty that more people aren't choosing to use a deprecated line editor-based (((modern))) piece of software.

Nicholas Phillips
Nicholas Phillips

this doesn't even qualify as shitposting

Jonathan Edwards
Jonathan Edwards

truth rarely qualifies as shitposting

Henry Nelson
Henry Nelson

Point out the factual errors in the post or be labeled a Jew.

This.

Landon Bennett
Landon Bennett

It's $current_year+3 and we should stop using (((modern))) deprecated outdated 70s antique teletype software and instead use high-resolution windowing systems. I'd also recommend a GUI interface perhaps in Visual BASIC.

Benjamin Roberts
Benjamin Roberts

So your only argument is a misrepresentation of what another user said?

Jew confirmed.

Easton Rivera
Easton Rivera

They use fucking Discord as a chat for development. LOL

Ian Carter
Ian Carter

inspired by VSCode, Atom, LightTable, and Emacs
Never heard of lighttable. Checked it out. I kinda like it. so far