I'm a relatively new user to emacs, having just come over from many years of using vim. I'm mostly thrilled with evil mode and emacs in general, but there are a few annoyances still lingering. One of them has to do with the caret character (i.e. this: ^). In vim and evil mode (and most of unix), the caret means "beginning of line", and typing it gets you to the beginning of the line. However, in Emacs, whenever i type a caret, it waits for me to type another character before deciding what to do, because the caret can be used as a circumflex (i.e. to type a lot of French words like "Hôtel", you would first type the caret, then your letter, and they would be smooshed together to form the right glyph).

That is, when I'm in evil mode (in "normal" state), and type the caret, it actually inserts an underlined caret character in the document temporarily, waiting for me to respond. If i don't type an alphabetic character (but instead press something like space or enter), the caret disappears and I'm taken to the beginning of the line. This might sound like a small thing, but it's supremely annoying, and I wish to be rid of this behaviour.

To be clear, the caret also works exactly like this in every other single program on my mac, except for one, which is MacVim. In MacVim, the caret instantly takes me to the beginning of the line (only in the GUI though, in the terminal it doesn't work).

I know I can rebind the motion to some other key, but I'd really rather not. I'd just like this annoying behaviour to go away.

I'm using Mac OS X, and I have a Swedish keyboard with Swedish keyboard layout.

  • 2
    Does this still happen when you start emacs without your init file (emacs -Q)? – Dan Jan 26 '18 at 19:33
  • Sounds like you have dead keys enabled, with MacVim being the only one not honoring them. – wasamasa Jan 26 '18 at 19:56
  • @Dan it does, yes. BTW, to be clear, i'm not saying this is a bug in Emacs, since this is how literally every other piece of software in Mac OS X works for me, except for MacVim – Oskar Jan 26 '18 at 19:58
  • 2
    If this happens in every program on your computer, then it is almost certainly an OS-level problem. It sounds like the OS is catching your ^ keypress, and then doing something with it before passing it on to the program. Which means you have to fix it at the OS level, since Emacs isn't going to know you've pressed the ^ key at all. – Tyler Jan 26 '18 at 20:12
  • 2
    Type some caret thing, e.g., ^ <SPC> and press C-h l (view-lossage). If caret and space do not have separate entries there you are out of luck. Emacs shows there what it reads as keystrokes from the input device. – Tobias Jan 26 '18 at 21:28

I had the same problem. I think you can't have both in Emacs. You either have the ability to compose characters, or you can make keybindings for the dead keys.

I have Ubuntu and a german keyboard. There are different layouts. I don't need to compose characters and can use the layout "german german no dead keys". With that layout I get caret tilde backtick and grave-accent with a single keypress and can make keybindings.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.