macvim icon indicating copy to clipboard operation
macvim copied to clipboard

Using dead keys acute and grave/backtick in normal mode doesn't work

Open mnissl opened this issue 1 year ago • 2 comments

Steps to reproduce

I'm using macOS with a German locale and a German keyboard where ´ (acute) is a dead key and ` (grave/backtick) is produced by hitting shift and ´.

It easier to type ´ as it does not require the shift key. Thus in my .vimrc, I have defined: nmap ´ `

This works fine in Terminal of macOS!

In MacVim, neither ´ nor ` works.

For vowels, I got it working with mappings à la:

nmap ´á `a
nmap ´Á `A
nmap `à `a
nmap `À `A

But this does not work for consonants like b. The error is raised: E78: Unknown mark

Expected behaviour

Both ´b and `b should jump to the mark.

Version of Vim and architecture

9.1.727

Environment

OS: Sequoia, arm64 Terminal: macOS Terminal $TERM: xterm-256color $SHELL: /bin/zsh

How MacVim was installed

Homebrew

Logs and stack traces

No response

Vim configuration where issue is reproducable

No response

Issue has been tested with given configuration

  • [X] by running MacVim.app from GUI macOS interface
  • [X] by running vim/gvim/etc installed by MacVim
  • [ ] by running other versions of vim (e.g. /usr/bin/vim)

Issue has been tested with no configuration

  • [X] by running mvim --clean (or gvim, supplied by MacVim distribution)
  • [X] by running vim --clean (in terminal, supplied by MacVim distribution)
  • [ ] by running vim --clean (in terminal, other suppliers, e.g. /usr/bin/vim)

Other conditions

  • [X] The both Homebrew packages "vim" and "macvim" are installed

mnissl avatar Dec 30 '24 17:12 mnissl

Just to be clear here, you want to use the "`" key to jump to marks and not use them as dead keys right? If you use them in Terminal.app it kind of works but you still have to type "`" followed by a space and then "a" to jump to mark A.

But yes in MacVim currently there are some issues with how it handles dead keys in normal mode so it doesn't really work right now, and it's definitely on my plate to find a way to fix it. See #768 for example. Ideally we have a bit more controls over how we handle dead keys as well.

ychin avatar Dec 30 '24 23:12 ychin

Just to be clear here, you want to use the "`" key to jump to marks and not use them as dead keys right? If you use them in Terminal.app it kind of works but you still have to type "`" followed by a space and then "a" to jump to mark A.

Yes, for vowels one still has to press space. To avoid the space key, this mapping comes in handy: nmap ´á `a

On Windows with GVim and a similar German keyboard layout where ´ and ` are dead keys, you don't have to press space in normal mode. By contrast in insert mode, if you want to input ´a, you do have to press space, otherwise you would end up with á.)

But yes in MacVim currently there are some issues with how it handles dead keys in normal mode so it doesn't really work right now, and it's definitely on my plate to find a way to fix it. See #768 for example. Ideally we have a bit more controls over how we handle dead keys as well.

There are also issues with replacing a single character with an accentuated character using the r command: for example, if the cursor is over a in normal mode and you want to replace it with á or à, then before entering the a you end up with the character the cursor is over being replaced with either ´ or ` and you are back in normal mode.

mnissl avatar Dec 31 '24 10:12 mnissl