What's wrong with the native keybindingings? The simplicity to bind any command, even external programs or scripts is one of the best features of vim. For example I have leader+m to compile based on my current filetype, leader+d opens the binary in :termdebug (gdb) and many, many more. I keep adding to my config anytime I get sick of a repetitive action.
You don't need anything fancy to do what you're asking, except for holding a key, which AFAIK isn't possible. Some bind j+k to esc in insert mode. I don't like messing with the characters in insert mode because it creates latency and fucks with my typing but I swap esc and caps since esc is my most used key, and caps my least.
So you use your most used key with a sidewise motion of your weakest finger of your weakest hand? That's just bad ergonomics, and that's what's wrong with the native keybindings - they are simply awful ergonomically
JK is not the solution as your mentioned yourself since it's within the same simplistic/terminal-limited key input handling (also, it fails if you speak more than one language where JK is common in regular words, and also fails if you speak just one language since you can have variable names or other abbreviations/terms with JK in them).
There are ways to avoid any latency/typing sideffects, but as far as I know that is only possible by eschewing the "but functionally it should act like the terminal UI" maxim, hence the original question whether any GUI app is ready to break off the rusted chains
> So you use your most used key with a sidewise motion of your weakest finger of your weakest hand?
I'll clarify that for you, my most used individual key. Most of my typing is on the home row.
> and that's what's wrong with the native keybindings - they are simply awful ergonomically
You asked for a way to bind the keys, you got one. Now all of a sudden your problem is that the default keybindings not being ergonomical. I use vim keys EVERYWHERE to help my RSI, but to each their own.
> There are ways to avoid any latency/typing sideffects, but as far as I know that is only possible by eschewing the "but functionally it should act like the terminal UI" maxim, hence the original question whether any GUI app is ready to break off the rusted chains
This makes zero sense. My point is that there is no native way to bind hold. The latency comes from vim waiting for either a second keypress to run the binding, or typing the character. You can natively set the delay lower and I do in :termdebug, but when typing it's very noticeable at my typing speeds. You could write a plugin and one probably even exists if you want that functionality.
But please, explain how a GUI would solve that in a way a TUI can't. Very curious to hear what you come up with.
I'll clarify that for you: this is still a big ergonomic issue typing notwithstanding
> You asked for a way to bind the keys, you got one.
No, I asked for a specific way to bind keys, and got nothing ("except for holding a key") and another JK nothing you yourself don't like
>Now all of a sudden your problem is that the default keybindings not being ergonomical.
There is nothing sudden about it, it was you who asked what's wrong with the defaults.
> I use vim keys EVERYWHERE to help my RSI, but to each their own.
That's not true since the vast majority of those aren't supported everywhere, but also irrelevant - I use better keys everywhere, so?
> This makes zero sense. My point is that there is no native way to bind hold.
That's why you don't get it. Binding hold/modtaps is what allows avoiding the latency etc.
> The latency comes from vim waiting for either a second keypress to run the binding, or typing the character
Even in this case of two taps (not what I mentioned) there is no need for a wait, you can type right away and perfectly clean up later if the 2nd key is a combo. Neovintageous plugin for Sublime does this
> You can natively set the delay lower and I do in :termdebug, but when typing it's very noticeable at my typing speeds.
I don't want just the delays, that's a failed branch of key chord evolution, delays can't be perfect. I've described what I want in the very first comment
> But please, explain how a GUI would solve that in a way a TUI can't. Very curious to hear what you come up with.
By having access to all keyboard event info, not being limited by the terminal, and handling that properly. Check out kanata or google modtaps and home row mods, don't remember a link with a great description.
> I'll clarify that for you: this is still a big ergonomic issue typing notwithstanding
> That's why you don't get it. Binding hold/modtaps is what allows avoiding the latency etc.
Modkeys are how Emacs does it, but have you ever heard of Emacs pinky? Why do Emacs users swap control and escape? To me chords and modal editors are the solution. My way solved my RSI, it's definitely more ergonomic than the finger gymnastics I need with modifiers.
> That's not true since the vast majority of those aren't supported everywhere, but also irrelevant - I use better keys everywhere, so?
Use vimium in chromium, vimium-ff in firefox. Vibreoffice for LibreOffice, adding 'set editing-mode vi' in ~/.inputrc sets it for pretty much every TUI program such as gdb, sqlite, psql and so on. My window manager dwm has vim keys, neomutt for mail, newsboat for rss. For rofi and dmenu I set them manually to follow the same pattern. And the list goes on, what do you mean? Everything works exactly as expected and is intuitive to me.
Anyway, in your first comment you ask:
> Is there any complicated no-nonsense GUI for Neovim that transcends the GarbageUI of the terminals and, for example, allows you to have advanced keybinds to invoke various vim actions (like enter insert mode on tap I and exit it on hold I or modtap J+I)
The answer is yes, just use the vim way of binding the keys? The problems you mention are invented and have nothing to do with a GUI. What does a GUI even have to do with the keyboard? What am I missing, it's still unclear and I'm confused?
If you like mods just bind mods, vim supports it and I bind ctrl+p to fzf. What is even the problem? Explain it to me in a simple way don't ask me to search for what you try to say.
If you don't like neovim, or the terminal, just use VsCode like everyone else? Who's forcing you to live with something that pisses you off so much?
Modtap isn't modkeys, seriously, just google, I know you're confused, and since you keep ignoring what I write or replace my words with your wrong ones, my simple words won't help alleviate your confusion
(also ironic mention of emacs pinky when you're using pinky for one of the most frequent commands)
> Vimium in chromium
So what's your Vimium command to scroll down by two paragraphs and then select the next two sentences?
> The answer is yes
That wasn't a yes or no question
If you like neovim and the terminal so much, just stay there and ignore this GUI topic, who is forcing you to avoid the light of knowledge at the end of the Google tunnel to insist there is no problem just because you can't see it?
> Vim supports mods
So how do you bind left control p to run one command, and right control p to run another? (hint: this limitation is also terminal-related)
> Modtap isn't modkeys, seriously, just google, I know you're confused, and since you keep ignoring what I write or replace my words with your wrong ones, my simple words won't help alleviate your confusion
Don't use google as a verb, better alternatives exist. I search, and it's only 1 vowel so easier on the tongue. Anyways, setup modtap in your keyboard or OS to trigger some key, and bind that key in vim? It isn't like it's universal functionality, I've heard of it but never encountered in any program.
But that wasn't why I brought up modkeys, latency came up as a problem in insert mode right? You claim modtap is the solution for that, I don't use modifiers at all in insert mode, but there are some even in the default config. One that comes to mind is entering normal mode for the next motion then returning to insert mode. Can be useful but rarely, esc is easier.
Modtap or not is not the solution for the latency we were talking about, normal mods do that just as well. Are you following?
> (also ironic mention of emacs pinky when you're using pinky for one of the most frequent commands)
Not at all, on the contrary it proves my point. I moved it _because_ I was getting Emacs pinky. Problem -> solution.
> So what's your Vimium command to scroll down by two paragraphs and then select the next two sentences?
I don't scroll in paragraphs, I use d/u for half-page down/up, j/k for normal scroll. Hit v for visual mode then it's just standard vim motions. I don't really understand the question, obviously some things are missing if that's where you're going. I'm not going to run :keywordprg in my browser for example but that's fine, stop moving the goalposts. I love it for f/F to follow links, / to search and so on, and I don't even use half the features.
> If you like neovim and the terminal so much
I was trying to be helpful and answer a simple question but you seem to have a really bad day. Use it don't use it, I don't care. The community is fine without your energy.
> So how do you bind left control p to run one command, and right control p to run another?
I don't, I use both interchangeably to reduce strain on my fingers. As you mention yourself ergonomics are important. I avoid using modifiers unless I have to, shift is an example that is difficult to live without. They're also interchangeable.
If you really need it then work around it by replacing at the OS or keyboard level if yours supports it. Edge case that to me feels like inventing a problem to have something to whine about. What other common programs that you use support that feature? If you're the power-user you want to be you'll figure it out, everything is possible.
> Anyways, setup modtap in your keyboard or OS to trigger some key, and bind that key in vim?
How would the OS know what mode you're in? How would it know know what command is expecting input in a sequence?
> It isn't like it's universal functionality, I've heard of it but never encountered in any program.
And this is relevant how? Modal text editing isn't universal functionality, so?
> normal mods do that just as well. Are you following?
You haven't provided any explanation for your rejection, so there is nothing to follow. Like, I've listed two specific examples. Explain exactly how normal mods do it "just as well".
> Not at all, on the contrary it proves my point. I moved it _because_ I was getting Emacs pinky. Problem -> solution.
Nope, you just didn't get the irony: "Bad solution → similarly bad solution"
> Hit v for visual mode then it's just standard vim motions.
And then those standard motions select the whole comment instead of the next sentence.
> I don't really understand the question, obviously some things are missing if that's where you're going.
Bump "some" to "a lot" and you'll be closer to understanding
> stop moving the goalposts.
Yeah, do that. Listing a few commands that work moves my original goalpost.
> I was trying to be helpful and answer a simple question
No you weren't. In your ignorance you mistook a complicated question for a simple one and later proceeded to try to prove to me that my problem doesn't even exist, and it's just something "to white about" simply because you don't understand it and are fine with bad solutions because before you used even worse RSI-inducing ones
> The community is fine without your energy
Who appointed you the community representative for such baseless claims?
> I don't
That question wasn't about YOU.
> They're also interchangeable.
Unless you bind them in a convenient non-interchangeable way. I know you don't do that and can't even imagine that, but that's just your limitations
> Edge case that to me feels like inventing a problem to have something to whine about.
No, but every now and then I get out of my cave and meet people and have to use my voice. You should try it. Are you always this confrontational?
> How would the OS know what mode you're in? How would it know know what command is expecting input in a sequence?
The OS doesn't need to know what mode you're using in vim to send another key. But you could make a plugin to change the window title and let the modtap program listen for that.
I use window class and title for my window manager to handle programs differently, I don't see why a modtap program couldn't if that is something you want. Use your imagination.
> And this is relevant how? Modal text editing isn't universal functionality, so?
I'm not the one bitching about missing modal functionality in programs. That's why it's relevant, what programs meet your expectations? I see that is conveniently one of the few questions you skipped answering from my last comment, so I'm going to assume none?
> Explain exactly how normal mods do it "just as well"
Regarding latency? Not listening for the next key means no latency? But you knew this. The only reason I brought up latency was that coords are not a good choice in insert mode. Use it if you want, I don't. Don't make such a deal about something I mentioned in passing.
> Nope, you just didn't get the irony: "Bad solution → similarly bad solution"
Please tell me you're a child...
> And then those standard motions select the whole comment instead of the next sentence.
Have you even used it? Stop hallucinating ChatGPT.
> Bump "some" to "a lot" and you'll be closer to understanding
I never claimed it does everything vim does. Do you expect your e-mail client to compile programs? Emacs might be more your cup of tea, you'll never have to leave it. Most people are completely fine with the different ways different programs implement vim keys in their context, usually just movements, sometimes yank and move. It's very convenient for most of us.
> No you weren't. In your ignorance you mistook a complicated question for a simple one and later proceeded to try to prove to me that my problem doesn't even exist,
I asked why it was a problem and proposed solutions and workarounds. I'll try to ask again because I'm genuinely curious, what programs do you use that support modtap and meet your standards?
You obviously have strong feelings about a program you don't even use. What programs are not garbage and have no-nonsense UI for modtap? Do they even exist or are you just looking for a reason to whine about a program you have no intentions of using?
Do I understand you correctly? Modtap is the issue? Or is it the lack of a GUI for configuration?
> every now and then I get out of my cave and meet people
You should get out more often and meet more people, then you might stop telling people what words they should use in writing (especially with irrelevant tongue arguments)
> The OS doesn't need to know what mode you're using in vim to send another key.
Of course it does since the key is command+mode-dependent. And you forgot to answer the second question, so I'm going to assume you have nothing constructive to offer here as well.
> let the modtap program listen for that.
Which program would that be? Also, why couldn't the Vim app listen to itself, removing the intermediary? Can you not imagine that?
> I don't see why a modtap program couldn't if that is something you want. Use your imagination.
You fail to see plenty of things here, nothing my imagination could fix.
> Regarding latency?
No, regarding functionality.
> Have you even used it? Stop hallucinating ChatGPT.
Of course, right before writing that comment, I'm not as ignorant as you are and don't replace facts with imagination.
> It's very convenient for most of us
And again, this is neither about you personally nor your imaginary "us" that you feel you can speak for.
> I asked why it was a problem and proposed solutions
Not a single solution, plenty of insults
> I'll try to ask again because I'm genuinely curious
Genuinely curious people don't denigrate something they're clueless about and do not fear google so much they put a word police hat on at the first mention
You're like a dog chasing your own tail, everything you ask has already been covered in previous comments (such as how vim listens for keys from external bindings or how those bindings can know the mode from vim). I don't enjoy repeating myself and it's obvious you're not looking for solutions only drama.
I don't know what modtap program you should use, I don't use them you're the one demanding it. Do you have mech keyboard, use that? Fuck do I know, DYOR. Nothing I would suggest would satisfy you anyway and my patience ran out several comments ago.
What programs do you use and what _exactly_ are you missing in vim. Is it modtap? A GUI? I don't even know what you're so pissed about and you refuse to mention it. Be constructive or find something else to waste your time on, this will most likely be my last response as I don't expect anything different in your next one.
> everything you ask has already been covered in previous comments
No, you've covered nothing, I've pointed to flaws in your supposed solutions, but your imagination covered them. Not a single solution
> I don't enjoy repeating myself
You don't need to, you can address specific issues you keep repeatedly ignoring
Instead of retreating back to your:
> I don't know what modtap program you should use
I know, and that's the biggest problem in this conversation - you don't know a lot, yet keep imagining you do and arguing that the solution "oh must exist, just use your imagination, here is some naive kludge about window titles and mech keyboards"
> Do you have mech keyboard, use that?
So how would the mech keyboard firmware know what command and mode vim is in the middle of? Oh, wait, you have no clue, you don't use anything, so why do you keep offering all these non-solutions?
> it's obvious you're not looking for solutions
I am, that's why I asked the question, you're just not competent enough to offer any
> Nothing I would suggest would satisfy you anyway
Yes, that would require more knowledge and less arrogance on your part
> you're the one demanding it.
Quote where I demand it. That's just another one of your rhetorical fissy twists
> what _exactly_ are you missing in vim
The original comment was just one sentence, and it lists exactly what I'm missing, including exact examples. The fact that you're still clueless after so many comments is on you
> I don't even know what you're so pissed about and you refuse to mention it.
I'm pissed about aggressive ignoramuses dismissing problems and wasting time policing words and offering empty solutions because vim pinkies are fine and convenient for them.
Just to clarify to make it a bit harder for you to twist it again - I'm not pissed about the fact that there is no great keybinding support in vim GUI, great things are rare
Yes, you're right. I'm sorry vim doesn't raise your chickens and cook your tendies. What a terrible software. Your mom will have to do until someone creates something better.
See, I can also completely miss the point and act all high and mighty. It's not my problem my suggestions aren't good enough, however you've not mentioned a single solution you are happy with. How come?
> I can also completely miss the point and act all high and mighty
You've misspelled "All I can do is".
It is your problem since you're the one sticking like a flea trying to prove your suggestions are good with a sprinkle of imagination, and getting all pissy when you run out of arguments.
Be constructive or find something else to waste your time on
Can you show me on the picture where vim touched you?
The saying "never argue with idiots, they will only bring you down to their level and win by experience" has never been more relevant.
But now I'm kind of curious where this is heading, how long are you willing to keep this up? In how many ways can you say "but what about you" or repeat what I've already said?
Do you feel clever doing this?
Since the beginning you've been antagonistic about the most simple things. I'll give you an example:
>>>> but I swap esc and caps since esc is my most used key
>>> So you use your most used key with a sidewise motion of your weakest finger of your weakest hand? That's just bad ergonomics, and that's what's wrong with the native keybindings
>> I'll clarify that for you, my most used individual key. Most of my typing is on the home row.
> I'll clarify that for you: this is still a big ergonomic issue typing notwithstanding
And this goes on, and on, and on. All of a sudden 2 comments in my "stupid choice of keybindings" is the topic. You break up every sentence into 15 quotes finding anything and everything you can to get back at, why? I'm not trying to win anything here, there are no prizes or awards. Only wasted time.
What is so difficult about staying on topic? Why are you going out of your way to derail the discussion and making this about me to avoid answering a single relevant question I ask?
The idiot reference if pretty ironic, but it's not unlike you to miss it again
> All of a sudden 2 comments in my "stupid choice of keybindings" is the topic
Nothing sudden about that: you offered your stupid keybinding as an alternative to my awesome ones. And since you asked what's wrong, I've explained it. And since you didn't understand it, I've clarified it
> You break up every sentence into 15
So that anyone can follow and respond to a specific issue instead of writing more irrelevant rants. Although unfortunately that's also not idiot-proof
> how long are you willing to keep this up
This is my last, discussing your technical fails was still on-topic, now only cognitive fails remain, and that's not, so I'll stop feeding your trollish behavior
> Nothing sudden about that: you offered your stupid keybinding as an alternative to my awesome ones.
I'll bite, go ahead and show me how I offered this as a solution, quote me. I mentioned why insert mode isn't a problem for me, not a suggestion just mentioned in passing. Read it again please. Is this the problem? That you understand anything I mention as a suggestion? Did you think vimium was a suggestion as well?
What are these awesome keybindings you have if you don't mind me asking for the 100th time? I guess modtap but what program? How?
You don't need anything fancy to do what you're asking, except for holding a key, which AFAIK isn't possible. Some bind j+k to esc in insert mode. I don't like messing with the characters in insert mode because it creates latency and fucks with my typing but I swap esc and caps since esc is my most used key, and caps my least.