使用带有死键的标记


9

我使用的键盘布局中,反引号(`)是一个死键

这意味着当我键入反引号后跟元音(例如`a)时,Vim看到的是带重音符号(à)。因此,如果用设置标记,则ma可以使用跳到标记的行'a。但是跳转到标记的特定位置`a将不起作用。

我找到了一种解决方法:输入死键时,我可以先敲击反引号,再按空格键,使Vim收到反引号。因此,如果要标记,请a输入`␣a

有没有办法在不占用额外空间的情况下跳到最高分?没有副作用吗?


无法使用2型反引号进行反引号?或配置您的操作系统来做到这一点?那仍然是一个额外的按键,但是比`+空间要好...
Martin Tournoij 2015年

@Carpetsmoker号。输入两个反引号通常会导致``对我来说。但是在普通模式下,似乎发生了另一件事:我输入``a,Vim说''E78:未知标记''。从showcmd我想Vim理解这是'à。我也想使行为OS独立。map似乎可以完成工作。
贡萨洛·里贝罗

Answers:


12

尝试使其成为映射:

" Mapping dead keys in normal mode
nmap á 'a

这样,当Vim获得重音a时,它将其解释为`+a

使用仅nmap允许在正常模式下进行;在插入模式或命令模式下,您将获得a您所期望的重音符号。

可以将其应用于其他键:

nmap à `a
nmap Á 'A
nmap À `A
nmap ç 'c
nmap Ç 'C
nmap é 'e
nmap è `e
nmap É 'E
nmap È `E
nmap í 'i
nmap ì `i
nmap Í 'I
nmap Ì `I
nmap ó 'o
nmap ò `o
nmap Ó 'O
nmap Ò `O
nmap ú 'u
nmap ù `u
nmap Ú 'U
nmap Ù `U

这确实有效。而且没有副作用。我应该学习使用地图。谢谢。
贡萨洛·里贝罗

别客气。很高兴我能帮上忙。
John O'M。

^(该行的第一个软字符)呢?由于这是一个独立的命令,该怎么办?操作系统是否会缓存死键,直到按下另一个键?
Spidey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.