views:

1269

answers:

6

Hello! I've been crossing things out on my TODO list. I've recently picked up Colemak. Next I wanted to learn Vim or Emacs. I was leaning towards Vim, however one of its benefits are sticking to the home row. With Colemak, the home row has been changed. I realize that I could remap the keys, but assigning the functionality to different letters is not extremely appealing to me (if there is any relation between letters and their function. I know movement is not correlated but I'm not sure on all the rest.)

I don't want to start an argumentative post about text editors, but rather receive comments from Colemak (or Dvorak) users about alternative keymappings and these two editors.

Thanks

+1  A: 

Here is a previous post that should help you some. There is some discussion on there, some users don't remap. Some do.

I am going to remap over the weekend actually. I have for the past year used the default mappings, with Dvorak.

J.J.
+1  A: 

I'm a vim+qwerty user (I've tried learning dvorak, but it turns out typing speed is not my rate limiting factor and I don't have RSI issues). Only the hjkl cursor movement keys in vi(m) are position dependent, everything else is mnemonic. I see on the Colemak layout, that h/l are vaguely left/right, but j/k are down/up. Nevertheless, I doubt that would be a significant stumbling block. You could either use the arrow keys instead, or continue to use hjkl and deal with the funny positions.

I wouldn't be inclined to try to remap the vim functions depending on the keyboard layout. That seems like too much potential confusion for me.

Greg Hewgill
+2  A: 

Glad to see another Colemak user :)

For Emacs there really isn't a need to remap, since the initial "shortcuts" aren't designed to be close to each other. If anything, you're gonna be more comfortable using Emacs on Colemak than on Qwerty (at least I was).

In Vim it's a lot trickier since hjkl will be completely messed-up. Then again, I've always felt that hlkl was broken and should have instead been jkj; or ijkl, so a remap is probably a good thing. Here's a broader discussion about Colemak+Vim on the Colemak forum: http://forum.colemak.com/viewtopic.php?id=50

c15c8ra1n
+2  A: 

I've run with Dvorak for a number of years now (probably ~4). I have also used vim for all of the standard reasons you have to use vim like things (less, config edits that have their own editors (visudo, etc.), etc.). Emacs was actually the first Unix program that I learned (I'm a native to the Apple world) and I currently picked it back up after being castigated by Yegge's ramblings about how ridiculously awesome it is.

From a strictly keyboard layout stance, I would say that Emacs is probably the winner here because no remapping is required. Other than swapping the Caps-Lock key for a Control key (which should really be done period, the Caps-Lock key is like every keyboard's high-school hickey), I would say that every keybinding is more comfortable to use with Dvorak than with Qwerty. I especially find the constantly used C-x and M-x bindings to be very comfortable to type.

However, vim is really no big deal. 'j' and 'k' are still right next to each other. 'h' and 'l' are at least conveniently on one hand and are on and above the home row. Other than that, it's simply about remapping the keys in your mind for doing things in the editor that you want to hae happen. I personally don't see any reason to remap anything, and I'm high risk for RSI (hence the switch to Dvorak). For keyboard centric apps like vim and emacs, the fact that I can use them comfortably unaltered should be fairly impressive. :)

Good luck!

Tim Visher
+3  A: 

I have recently switched to Colemak and I also use Vim as my main editor.

I can tell you that there is no need to remap the movement keys - or any other Vim keys for that matter. Your brain will quickly learn the new positions of the movement keys. For the mnemonic keys there is definitely no need to remap - you want to keep the mnemonic meanings behind the keys.

If you remap the Vim movement keys you will be in the unfortunate position of not being able to operate a vanilla Vim with any real efficiency - for example if you need to SSH to a server. I argue that for most people that will be much more common than having to use someone's computer that does not have Colemak.

As well, there are Vim plugins you may get one day that will clash with your remappings, or you will read a Vim tip one day about a feature which you can't now use because you have remapped things.

It will be a real pain for you, so I wouldn't bother with any remappings.

asgeo1
You are right unfortunately. I have remapped the keybindings and I experience all these problems very frequently. This is really frustrating.
Mert Nuhoglu
+2  A: 

This in your .vimrc will change the cursor movement for Colemak without affecting other vim mappings, because it only affects the h/j/k letters.

  • up = h (labelled as "h" on the keyboard)
  • down = k (labelled as "n" on the keyboard)
  • left = j (labelled as "y" on the keyboard)
  • right = l (labelled as "u" on the keyboard)

Here is the mapping:

noremap h k
noremap j h
noremap k j
Graham
I like this solution a lot. I just wish it was better by default, though. I do a lot of pair programming with dvorak/qwerty users so i'd need a way to switch this on and off for it to be practical, though
bjeanes
@bjeanes, you could keyboard shortcuts for swapping keyboard shortcuts, e.g.:`nnoremap <F1> <Esc>:nnoremap h k<CR>:noremap j h<CR>:noremap k j<CR>` <br /> `nnoremap <F2> <Esc>:nnoremap h h<CR>:noremap j j<CR>:noremap k k<CR>` <br /> Add that to your ~/.vimrc, and F1/F2 will swap between qwerty/colemak movement keys. If you mean swapping keyboard layout, not just Vim mappings, there should be an (OS-dependent) solution for that too ;-)
Jabir Ali Ouassou