seanyeh / vibreoffice

Vi Mode for LibreOffice/OpenOffice
390 stars 34 forks source link

Is it possible to rebind commands? (Colemak/Dvorak/etc. support) #27

Open krompus opened 9 years ago

krompus commented 9 years ago

I am a Colemak touch typist (http://colemak.com/ There are dozens of us! DOZENS!), and I have gotten used to lightly modified keybinds. It would be nice to be able to rebind some of the keys in Vibreoffice, and use my non-standard muscle memory more fluidly.

Is this already possible? A config file, such as ~/.vibreofficerc would be great!

If it's not possible yet, there's no rush, and if this functionality is low priority or undesired, I would understand.

Here's an excerpt from my .vimrc to demonstrate what I mean (it looks much more complicated than it is in practice):

""""""""""""""""" " Colemak-Vim Mappings " " Vi's traditional Qwerty-centric H J K L "arrow" keybinds are swapped for the Colemak " homerow equivalent H N E I. As little else as possible is changed. As such, J K L are " free to use and N E I need new keys. " " Therefore, we shall assign: " " - k/K as the new n/N. " - s/S as the new i/I ["inSert"]. " - j/J as the new e/E ["Jump" to end of word]. " - l/L to skip to the beginning and end of lines. More intuitive than ^ and $. " - Ctrl-l to join lines, making l/L the veritable "Line" key. " - r to replace i as the "inneR" modifier [e.g. "diw" becomes "drw"]. """"""""""""""""" " HNEI arrows. Swap 'gn'/'ge' and 'n'/'e'. noremap n gj|noremap e gk|noremap i l|noremap gn j|noremap ge k " In(s)ert. (The default s/S is synonymous with cl/cc and is not very useful.) noremap s i|noremap S I " Last search. noremap k n|noremap K N " Beginning of line / End of line / Join Lines. noremap l ^|noremap L $|noremap J " r = inneR text objects. onoremap r i " 'Jump' to end of word noremap j e|noremap J E

Dietr1ch commented 8 years ago

I got used to Dvorak instead of remapping.

In the end it is by far less painful than remapping your setup and every plugin. You may be forced to lose the mnemonics (as i for i nsert) or have the mnemonics remind you of a keyboard layout that you are not using (c is for insert because Dvorak's c is the i on qwerty).

I'd vote for general remapping on a dotfile and offering a sample remap for those who can stand it.

krompus commented 8 years ago

Hahah, actually, since writing this, I've decided to revert to default vim -- despite its oddities in Colemak -- and I've gotten used to it. This Libreoffice extension was one of a few that convinced me that changing the defaults was perhaps a bad idea, as many plugins and extensions are not rebindable. Even if they are, I would not be able to function efficiently without my dotfiles. This way, I can just change input to Colemak on any box (or use a Colemak-firmware board) and take advantage of my muscle memory without the pain of learning two separate sets of mnemonics and movement keys.

As far as I'm concerned, we can close the issue, but it would still be a welcome feature if the devs have the time.

(I'm a little new to Github -- seeing as I opened the issue, am I the only one who can close it? If so, just ask!)