emacs-evil / evil-magit

Black magic or evil keys for magit
https://github.com/justbur/evil-magit
GNU General Public License v3.0
272 stars 16 forks source link

Inconsistent keybindings after adding forge support #60

Open yqrashawn opened 5 years ago

yqrashawn commented 5 years ago

Forge won't load until user call forge-dispatch when using use-package to install forge. So the keybindings are F for pulling and p for push.
The problem is

  1. there's no way to load forge by keypresses
  2. keybindings change after load forge to F for forge-dispatch, P for pulling, which is inconsistent
jsab commented 5 years ago

How can we disable these "new and improved" forge keybindings?

For anyone landing here from spacemacs you can use the following to keep F for pull and p for push.

   dotspacemacs-excluded-packages '(forge)
agzam commented 5 years ago

Excluding Forge is not a solution though. The default magit bindings are - F for magit-pull-popup and P for push-popup. Honestly it was the stupidest idea to bind pull/push to p/P in evil mode. Whomever "genius" come up with that decision should've considered huge number of users who already have developed muscle memory for F/p. That change has been driving me nuts for the past couple of weeks and I kept thinking all this time maybe it just requires some patience and soon I will get used to new keybindings. Alas, because p and P are basically the same key - I simply can't do it fast. Now I am never sure what is it: pull or push. Every single time I press that key I have to intently stare at my screen and make sure I'm doing what I am intended to do whereas before I could do things with my eyes closed.

agzam commented 5 years ago

If you're Spacemacs/evil user and just like me frustrated about that change:

(with-eval-after-load 'forge
  (evil-magit-define-key evil-magit-state 'magit-mode-map "F" 'magit-pull-popup)
  (evil-magit-define-key evil-magit-state 'magit-mode-map "p" 'magit-push-popup)
  (evil-magit-define-key evil-magit-state 'magit-mode-map "'" 'forge-dispatch))

Honestly, I'd rather sacrifice submodules popup (' binds to it) than pull/push keys

justbur commented 5 years ago

@yqrashawn Just load forge automatically when you load magit. Then the bindings will never be inconsistent.

justbur commented 5 years ago

I reverted the forge changes

Linuus commented 5 years ago

@agzam

Honestly it was the stupidest idea to bind pull/push to p/P in evil mode. Whomever "genius" [...]

I think you should calm down and show some respect. If not, don’t use this package and bind the keys yourself or pay someone to do it. Being disrespectful and rude to a maintainer who spends her/his free time developing software is just plain wrong.

You may voice your concerns but damn it, show some respect.

aaronjensen commented 5 years ago

Thank you @justbur, much appreciated. Would it be possible to move evil-magit's submodule binding to make room for the forge binding? Maybe this could be an opt-in flag for now so that it does not disrupt anyone's muscle memory (though I'd imagine submodule stuff is lower impact than push/pull).

justbur commented 5 years ago

@aaronjensen I reopened #54 to discuss further. ' is paired with " for subtree. I was trying to keep those together.