-
-
Notifications
You must be signed in to change notification settings - Fork 682
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ability to change what happens when pasting with Cmd+v the editor while still being able to use Cmd+v to paste in dialogs #1505
Comments
Yeah I have been unsatisfied with how this is handled right now. The current way of associating a key with the menu is a very "Apple-like" way of handling shortcut keys, but at the same time makes it hard to configure with Vim key bindings. It's been on my list of to-fixes but I haven't quite got around to it.
Yes, this is definitely needed.
This is currently roughly how I plan to attack the issue, but that may change. There are some other considerations with improving the input (e.g. meta keys, modifyOtherKeys support) so I'm trying to think about it cohesively. But the answer is for now, yeah it's a little annoying for sure. |
Is there some already-existing way to hook the paste function that could be documented? If so, that would be a very useful workaround for me. |
No, there isn't. What you need to do is remove the paste menu item using |
OK, I tried:
And that removes |
Wait, what dialog boxes? |
Ah right yeah. But yes this is why this method is kind of a hack. I personally recommend mapping another key for this purpose for now. |
Is your feature request about something that is currently impossible or hard to do? Please describe the problem.
I'm trying to customize paste behavior in MacVim in insert mode, to add come
<C-g>u
sequences to create undo points before and after the pasted text.I can do that with an
inoremap <D-v>
. But in order for<D-v>
to make it to the Vim input processing, it can't be bound in the MacVim menu system to thepaste:
action. So the folks at SuperUser suggest:But if you do that, then paste doesn't work in dialogs and other non-Vim UI elements insider MacVim, such as the graphical find dialog. As noted in the MacVim help on customizing the menu:
And I can't find any documentation on how to either change what happens when a
paste:
action is received by the Vim layer, or to set what happens when a<D-v>
is sent to the GUI layer when it's not bound to a menu option.So I'm not able to achieve the configuration where pressing Command+v creates undo points around the pasted text in Vim's insert mode, but also still works on text boxes in the GUI.
Describe the solution you'd like
My ideal approach would be to have
paste:
reach the Vim core exactly as if<D-v>
were being typed, so that remapping<D-v>
withinoremap
would Just Work without having to unbind it from the menu item.Describe alternatives you've considered
Other approaches would be:
paste:
do when they reach the Vim level.macmenu
command to set key sequences to be issued in Vim before/after the action is processed.map
-like command to map keys in the "mode" of having a dialog box selected, so that you could<something>noremap <D-v>
to:macaction paste:
and have that work in the dialogs. This might be totally impossible since then Vim internals would have to process all the keypresses in the dialogs.paste:
action does by overwriting/replacing some VimScript function it already invokes.Additional context
I only barely know enough about Vim input processing to articulate what I want to achieve, so it's possible I'm missing something obvious about how pasting works in Vim.
The text was updated successfully, but these errors were encountered: