What you could steal from the Kakoune code editor, and get away with
kakoune-editor.github.io
kakoune-editor.github.io
I've been a longtime user of the Vim style of editing, but I checked out Kakoune several years ago and was impressed. I tried it for a week or two and was starting to prefer it over Vim.
The problem is that while Kakoune is a very good competitor to Vim the program, I am only rarely in need of a terminal based editor. The vast majority of my time is spent in full fledged IDEs or in Web-based editors, all of whom have Vim plugins so that I can consistently use the same style.
It's always bummed me out a little bit. I spend the majority of my work days using Vim keys for editing text, and there is an editing style I'd actually prefer to use but I can't because there isn't already widespread adoption. There's not enough benefit for me to learn it if I can't use it everywhere, and switching back and forth with Vim seems extremely difficult.
Unless your preferred style has some really unusual key combos, it seems to me that most IDEs and editors today enable you to configure your keys just the way you want them.
More in-depth commentary: https://medium.com/@mkozlows/why-atom-cant-replace-vim-43385...
Sadly, because I'm someone who learned vi in part because it's nearly everywhere and fits on the embedded devices I often develop for easily, a new editor isn't as interesting because it isn't everywhere.
I've switched from Vim to Kakoune 3 years ago, and lack of support for this modal editing style elsewhere is really frustrating. It is better than Vim's, but in practice that's not a significant difference, and the pain of switching back and forth is something I'm agonizing over all the time.
BTW. The exact kakoune modal editing mode is not even all that flawless. The way x and X work on empty lines is infuriating, and I am actually using a personal fork of kakoune to fix it. https://github.com/dpc/kakoune-dpc . I went so far as prototyping a spinoff of Kakoune: https://github.com/dpc/breeze to look for improvement, but building a full-featured text editor is a lot of work, and I it's not like it's going to fix the problem of switching.
>Would you say a few words on what makes Kakoune modal editing better than Vim's?
I guess the big difference is multiple selections. In Kakoune Normal mode you can select multiple selections, and your normal mode commands operate on all those selections at once, and if you switch to insert mode you can insert text at all of those multiple cursors.
I had a paragraph with examples that I just deleted because it had sentences like "you would simply type s;<enter>b&" and that makes you sound like a crazy cultist. A better endorsement is maybe: where I would in the past write a script in python or awk to get info from a log or a csv I usually just jump straight to kakoune and edit the file down to the data I want.
set inccommand=split
(live substitution). Vim's confirmation prompts make it more comfortable, as well as off-screen matches it shows. Multiple selections are inherently limited to a single screen or you won't be able to see what you're doing.
Verdict: a gimmick.
To me however multiple selections are not Kakoune's strongest point. It's the fact that in Kakoune you "first select, then modify", while in vim you go "action first, then subject".
Putting the subject first allows for a more visual experience in general - in Kakoune you can always "see what's going to happen" before it happens, because the object is always highlighted. The multiple cursors thing is just a manifestation of this approach. In Vim the experience is more "opaque" - you type some commands in normal mode and suddenly the text changes. As a result Kak is less prone to "accidental edits" like I get in Vim from time to time.
I've heard that some people "abuse" on Vim's Visual mode to get over this limitation. But that feels like a kludge to me. And it doesn't solve the accidental edits.
It ends up being much more powerful because the editing language is strictly more expressive than regular expressions: you can select using a regular expression, but you can also use all the rest of the normal mode, such as select/jump to the matching parenthesis or brace (or whatever pair of text your language use to scope things), which is not possible to express in pure regex.
You are far from limited to a single screen, the `(` and `)` commands rotate the main selection, so you can inspect all your selections easily if you want to.
In my experience (as a long time Vim user and as Kakoune's main author) multiple selections end-up being much more attractive for quick edits where there's only a handful instances to replace than devising the correct regex/replacement pair, and their interactive nature makes them quicker to use than the macro alternative (which is also supported in Kakoune).
In summary: great job with Kakoune! I'm a delighted user.
I worked with large and messy codebase, where apparently there was always something more important than cleaning up.
Think about vim (and kakoune) as basically a highly interactive language for editing text. At least at a conceptual level something like diw is basically a function (d) applied to data (iw). Vim is completely scalar. The type of all the functions is more or less something like string → string. Kakoune is the APL of text editors. Multiple selections are an array of strings to operate on. It automatically maps the function (editor commands) over every selection. I find this extremely attractive and powerful.
At least for me kakoune blows all other editors out of the water. It really is quite good.
The advantage of it is that you can execute the "macro" incrementally and spot early when you've made a mistake, rather than recording a macro then letting rip and discovering, too late, that there was a mistake 80% of the way though, and now you need to undo the whole thing and and try again.
(I use multiple-cursors in Emacs for multiple selections, iedit-mode for live substitution (sometimes in combination with wgrep), as well replace-regexp for plain search & replace, and while they all overlap, none are poor versions of any of the others. They each have their strengths and weaknesses. However it's vanishingly rare that I use macros any more.)
Btw the reason I haven't tried kakoune yet is that the command is `kak`, which means 'shit' in my native language, Dutch.
I haven't used the vim plugin but if vim commands work on each selection that probably gets you half way. Kakoune additionally provides 's' and 'S' commands to sub select down from your selection iteratively. you might select all words, then select the _ in each word, delete the character and hit ~ to capitalize the next character to convert a selection of words in snake_case to camelCase. I think it's cool.
>Btw the reason I haven't tried kakoune yet is that the command is `kak`, which means 'shit' in my native language, Dutch.
I've actually heard this either on a forum, mailing list or a github issue at least once, lol. It's unfortunate.
> I've actually heard this either on a forum, mailing list or a github issue at least once, lol. It's unfortunate.
I think if someone really wants to use Kakoune they could do the same thing that I do with neovim, which is to make vim be an alias for the editor you actually want to use.
If IDE works for you and you enjoy it, stick with it. I enjoy modal editing (Vim/kak) because it feels good. I don't have to move my hands from the home row and I'm a damn impatient person, so that fast editing just makes me feel a little better about "waiting for IO".
This is why I switched to vis (https://github.com/martanne/vis) after trying kak for a couple days (and previously being an nvim user). ^k and ^j add cursors directly above and below the current one, :x/foo/ selects all occurrences of ‘foo’ in the current selection or (if there’s no current selection) file (this is based on the command language of Rob Pike’s `sam` editor, and foo can be a structural regex), and then you can manipulate them using standard vi bindings.
Unlike the other responder, I am actually not big fan of multiple selections and prefer search and replace. But once in a while multiple selections come handy even for me, so I don't mind them being there.
Again, I'm not advocating against IDEs out of principle, it's just that if your current setup is so frustrating for you at the moment I really think you should consider something a bit radical to improve it. When something in my code workflow feels "sticky" I always find that it's worth taking the time to find a solution, after all we spend so much time using these tools...
But my point is not so much about modality (I used emacs for a very long time before switching to vim) it's more that the parent seems to really like this kakoune editor, so why wouldn't he just use it full time instead of switching constantly?
The problem is that when expressed in the past tense (-ed suffix), “Unlicense” means precisely the opposite of an existing English word.
If software is unlicensed, it means you have no license, no permission, to do anything with it. (Or, if it is your code, it means that you have not granted license/permission to anyone else to do anything with it.)
If software is Unlicensed, it means you have permission to do absolutely anything with it.
That’s a recipe for confusion.
In old versions of npm, to convey “all rights reserved” or “proprietary” you used to need to set the license field in package.json to "UNLICENSED"; so that "UNLICENSED" was the opposite of "Unlicense" (and I think it was case-insensitive, too).
And just so we’re clear, it’s not the word “unlicensed” that’s at fault, it’s Unlicense that’s at fault for hijacking an existing word to mean the opposite thing. Which is hardly a new phenomenon in language, I suppose (let, cleave, sanction, &c.), but still—.
When I want public domain and want to be nice about the legal technicalities for all jurisdictions, I use CC0 instead, largely just because its name isn’t bad, but also because its contents seem to be slightly more highly regarded legally. https://creativecommons.org/choose/zero/
:)
In reality of course the base state is reversed: having no license means you are allowed approximately nothing, and a license gives you (often limited) rights to do something with it. In reality an un-license would take away rights you previously have been granted.
It feels like we are on the threshold to license becoming a Janus word.
Excerpt from https://www.gnu.org/licenses/gpl-3.0.en.html
Picking a name that's not as bad as "unlicence" is not hard. It's hard to think of a name that would be worse...
Do you think that "copyright" is a good term?
In any case, it’s a well established old term now while Unlicense was coined long after unlicensed was already an established word with a different (opposite!) meaning.
Still is: https://docs.npmjs.com/files/package.json#license
> Finally, if you do not wish to grant others the right to use a private or unpublished package under any terms:
{ "license": "UNLICENSED" }I wonder how much the Unlicense's name was inspired by 7-Up's long-running "The Uncola" advertising campaign or other similar pop culture usages of "un-" as a joke-ish like that.
It's not a perfect use of the word, perhaps, but it's cute without being offensive so I like it (this is ignoring any actual concerns about its content, which would be a distinct discussion).
The Unlicense website also incorrectly states that "CC0 is not intended for software" -- while the other CC licensed aren't good choices for software, CC0 most definitely is intended to be used for software as much as any other copyrightable work.
Are there any issues in Germany with professional usage of common Public Domain software like Sqlite?
https://opensource.stackexchange.com/questions/1371/how-can-...
... why are we arguing about this again?
For me that was very helpful
Kakoune is a public domain project. Which means that anyone is free to do anything they want with the source code of the editor, no questions asked.
Do you mean something else?
I'd say that, even though the author put a link in the article, it's easy to miss it if you read the whole article first, then try to find more informations about Kakoune :/