deadkeys/plugin/deadkeys.vim
2020-07-28 15:03:29 +02:00

291 lines
3.3 KiB
VimL

let g:DeadKeysOn=0
function! ToggleDeadKeys()
if !g:DeadKeysOn
call DeadKeys()
else
call DeadKeysOff()
endif
endfunction
function! DeadKeys()
echo "Dead Keys: On"
let g:DeadKeysOn=1
" grave accents
imap `a à
imap `e è
imap `i ì
imap `o ò
imap `u ù
imap `A À
imap `E È
imap `I Ì
imap `O Ò
imap `U Ù
imap `<space> `
" umlaut
imap "a ä
imap "e ë
imap "i ï
imap "o ö
imap "u ü
imap "A Ä
imap "E Ë
imap "I Ï
imap "O Ö
imap "U Ü
imap "<space> "
" macrons
imap :a ā
imap :e ē
imap :i ī
imap :o ō
imap :u ū
imap :A Ā
imap :E Ē
imap :I Ī
imap :O Ō
imap :U Ū
" acute accents
imap 'a á
imap 'A Á
imap 'C Ć
imap 'c ć
imap 'e é
imap 'E É
imap 'i í
imap 'I Í
imap 'l ĺ
imap 'L Ĺ
imap 'N Ń
imap 'n ń
imap 'o ó
imap 'R Ŕ
imap 'r ŕ
imap 'S Ś
imap 's ś
imap 'O Ó
imap 'u ú
imap 'U Ú
imap 'y ý
imap 'Y Ý
imap '<space> '
" under dot (not required)
" imap .D Ḍ
" imap .d ḍ
" imap .H Ḥ
" imap .h ḥ
" imap .L Ḹ
" imap .l ḹ
" imap .M Ṃ
" imap .m ṃ
" imap .N Ṇ
" imap .n ṇ
" imap .R Ṛ
" imap .r ṛ
" imap .G Ṝ
" imap .g ṝ
" imap .S Ṣ
" imap .s ṣ
" imap .T Ṭ
" imap .t ṭ
" over dot
imap .u ů
imap .U Ů
" tilde
imap ~a ã
imap ~A Ã
imap ~e
imap ~E
imap ~i ĩ
imap ~I Ĩ
imap ~o õ
imap ~O Õ
imap ~u ũ
imap ~U Ũ
imap ~n ñ
imap ~N Ñ
" caron
imap >A Ǎ
imap >a ǎ
imap >C Č
imap >c č
imap >E Ě
imap >e ě
imap >G Ǧ
imap >g ǧ
imap >I Ǐ
imap >i ǐ
imap >l ľ
imap >L Ľ
imap >n ň
imap >N Ň
imap >O Ǒ
imap >o ǒ
imap >R Ř
imap >r ř
imap >S Š
imap >s š
imap >t ť
imap >T Ť
imap >U Ǔ
imap >u ǔ
imap >V Ǚ
imap >v ǚ
imap >Z Ž
imap >z ž
imap >d ď
imap >D Ď
" caret
imap ^o ô
imap ^O Ô
endfunction "deadkeys()
function! DeadKeysOff()
echo "Dead Keys: Off"
let g:DeadKeysOn=0
" unmapping graves
iunmap `a
iunmap `e
iunmap `i
iunmap `o
iunmap `u
iunmap `A
iunmap `E
iunmap `I
iunmap `O
iunmap `U
iunmap `<space>
" unmapping umlauts
iunmap "a
iunmap "e
iunmap "i
iunmap "o
iunmap "u
iunmap "A
iunmap "E
iunmap "I
iunmap "O
iunmap "U
iunmap "<space>
" unmapping macrons
iunmap :a
iunmap :e
iunmap :i
iunmap :o
iunmap :u
iunmap :A
iunmap :E
iunmap :I
iunmap :O
iunmap :U
" unmapping acutes
iunmap 'a
iunmap 'A
iunmap 'C
iunmap 'c
iunmap 'e
iunmap 'E
iunmap 'i
iunmap 'I
iunmap 'l
iunmap 'L
iunmap 'N
iunmap 'n
iunmap 'o
iunmap 'R
iunmap 'r
iunmap 'S
iunmap 's
iunmap 'O
iunmap 'u
iunmap 'U
iunmap 'y
iunmap 'Y
iunmap '<space>
" under dot
" iunmap .D
" iunmap .d
" iunmap .H
" iunmap .h
" iunmap .L
" iunmap .l
" iunmap .M
" iunmap .m
" iunmap .N
" iunmap .n
" iunmap .R
" iunmap .r
" iunmap .G
" iunmap .g
" iunmap .S
" iunmap .s
" iunmap .T
" iunmap .t
iunmap .u
iunmap .U
"tilde
iunmap ~a
iunmap ~A
iunmap ~e
iunmap ~E
iunmap ~i
iunmap ~I
iunmap ~o
iunmap ~O
iunmap ~u
iunmap ~U
iunmap ~n
" caron
iunmap >A
iunmap >a
iunmap >C
iunmap >c
iunmap >E
iunmap >e
iunmap >G
iunmap >g
iunmap >I
iunmap >i
iunmap >l
iunmap >L
iunmap >n
iunmap >N
iunmap >O
iunmap >o
iunmap >R
iunmap >r
iunmap >S
iunmap >s
iunmap >U
iunmap >u
iunmap >V
iunmap >v
iunmap >Z
iunmap >z
iunmap >d
iunmap >D
" caret
iunmap ^o
iunmap ^O
endfunction