Closed wbolster closed 4 years ago
Hey there! You're right, this isn't ideal and I've certainly neglected non-QWERTY layouts. I'll look into this (and this-command-keys
) this week and see if I can cook something up that's flexible yet backward compatible.
It's been almost a year. I've looked into this a number of times and couldn't come up with anything clever, so I think I'll go with the simple solution: a evil-snipe-style
switch variable that defaults to 'qwerty
and accepts 'colemak
(or set to nil
and left to the user to define their own -- evil-snipe-def
is no longer a private macro).
That said, I'd like to include a reasonable default for colemak users, but I'm not familiar with the layout, so I'm hoping you can offer some advice: are t, T, j and J good colemak alternatives, or are they simply your personal preference? Could you also offer alternatives for s
and S
as well?
vim layouts on colemak are plenty, my own evil-colemak-basics obviously the best among them :wink:.
using evil-snipe-def
is the most flexible way i would say. this is what evil-colemak-basics
already does:
(evil-snipe-def 1 inclusive "t" "T")
(evil-snipe-def 1 exclusive "j" "J")
(https://github.com/wbolster/evil-colemak-basics/blob/master/evil-colemak-basics.el#L111-L114)
no opinion on s
and S
since i have those disabled (i use avy
/ evil-easy-motion
).
using evil-snipe-def
overwrites the old commands/functions though, perhaps the macro could take an argument so that it can create unique names, but i do not have a strong opinion on that since i only use colemak and never switch between layouts (my brain would melt if i were to try).
Hi, dvorak user here. I've been getting into evil-snipe more and the ;
is tuff to hit for me many times a day.
I'll post back if i come up with something better for myself.
@joefromct have you tried my evil-snipe-def approach? it works fine actually. see above or consult my dotfiles
I actually realized i had a different ailment regarding my evil-snipe-needs as i dug into it... i think this does the trick for me but curious if this would be the correct way.. i haven't tinkered with emacs lisp too much.
My root issue was ;
isn't dvorak-accessible for forward-key
that i believe is hard-coded for the macro generation?
With the above commit and something like this:
(map! :nv "<SPC>" 'evil-snipe-f
:nv "S-<SPC>" 'evil-snipe-s)
my sore hands seem to be much happier for the past 1hr...
Also, I now realize that my issue was different than yours? Let me know if that's the case and I'll make myself a new issue, and apologies for hi-jacking the thread.
hi, first of all, evil-snipe is fantastic. thanks.
that said, i am having some trouble making it work with different keys. i use the colemak keyboard layout, and use evil-colemak-basics to use different keys for various evil commands.
recently i decided to also move the functionality for
f
andt
to different keys for improved ergonomics and preserved muscle memory. in short, i wantt
to jump forwards, andj
to jump backwards. with colemak, keys are at a different location, andt
andj
fit in my hybrid qwerty/colemak keybinding scheme for non-insert states); details here.this works fine for evil's built-in
evil-find-char-*
commands. however, i want to useevil-snipe
to spice upf
andt
. at first i thought all that was needed would be bindingevil-snipe-f
and friends to the appropriate keys. i do not useevil-snipe-override-mode
since that does not use the keys i want, but with a few key mappings the result will be the same.it turns out this works fine for triggering
evil-snipe
, but repeating a snipe fails. the reason is that the transient keymap hardcodes the key bindings "f" (forward) and "t" (backward) in theevil-snipe-def
macro.i managed to get it working using this code:
...but i am not very happy about it:
evil-snipe
macroevil-snipe-t
commandperhaps there is a better way to get this working? perhaps
(this-command-keys)
can be used instead of hardcoding the keys?hopefully i made the issue clear. ideas and discussion more than welcome. :tulip: