├── .gitignore
├── LICENSE.txt
├── README.md
├── autoload
├── .DS_Store
├── isotope.vim
└── isotope
│ ├── charset.vim
│ └── diacritic.vim
├── doc
└── isotope.txt
└── plugin
└── isotope.vim
/.gitignore:
--------------------------------------------------------------------------------
1 | # Swap
2 | [._]*.s[a-v][a-z]
3 | [._]*.sw[a-p]
4 | [._]s[a-rt-v][a-z]
5 | [._]ss[a-gi-z]
6 | [._]sw[a-p]
7 |
8 | # Session
9 | Session.vim
10 |
11 | # Temporary
12 | .netrwhist
13 | *~
14 | # Auto-generated tag files
15 | tags
16 | # Persistent undo
17 | [._]*.un~
18 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2018 Klas Segeljakt
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
vim-isotope
2 |
3 |
4 |
5 |
6 |
7 | This plugin provides mappings for inserting characters as `ˢᵘᵖᵉʳˢᶜʳⁱᵖᵗˢ`, `ₛᵤbₛ꜀ᵣᵢₚₜₛ`, `u͟n͟d͟e͟r͟l͟i͟n͟e͟`, `s̶t̶r̶i̶k̶e̶t̶h̶r̶o̶u̶g̶h̶`, `𝐒𝐄𝐑𝐈𝐅-𝐁𝐎𝐋𝐃`, `𝐒𝐄𝐑𝐈𝐅-𝐈𝐓𝐀𝐋𝐈𝐂`, `𝔉ℜ𝔄𝔎𝔗𝔘ℜ`, `𝔻𝕆𝕌𝔹𝕃𝔼-𝕊𝕋ℝ𝕌ℂ𝕂`, `ᴙƎVƎᴙꙄƎD`, `INΛƎᴚ⊥Ǝᗡ`, `ⒸⒾⓇⒸⓁⒺⒹ`, and much more. Depending on your setup, some characters may not display correctly.
8 |
9 | # Installation
10 |
11 | If you are using [vim-plug](https://github.com/junegunn/vim-plug), add this to your config.
12 |
13 | ```vim
14 | Plug 'segeljakt/vim-isotope'
15 | ```
16 |
17 |
18 | # Special characters
19 |
20 |
21 |
22 |
23 |
24 | The `IsotopeInsert` and `IsotopeToggle` can be used to insert special characters.
25 |
26 | ```vim
27 | " Convert the next typed character into SERIF_BOLD
28 | :IsotopeInsert SERIF_BOLD
29 |
30 | 𝐗
31 |
32 | " While toggled ON, convert all typed characters into FRAKTUR
33 | :IsotopeToggle FRAKTUR
34 |
35 | 𝔖𝔞𝔪𝔭𝔩𝔢 𝔗𝔢𝔵𝔱
36 |
37 | " Toggle character conversion OFF.
38 | :IsotopeToggle
39 | ```
40 |
41 | A list of the supported classes of special characters can be viewed at the bottom of this README.
42 |
43 | # Combining characters
44 |
45 |
46 |
47 |
48 |
49 | The `IsotopeAttach` command can be used to attach one or multiple diacritics (combining characters).
50 |
51 | ```vim
52 | :'<,'>IsotopeAttach h e h e
53 |
54 | Sͤͪͤͪaͤͪͤͪmͤͪͤͪpͤͪͤͪlͤͪͤͪeͤͪͤͪ ͤͪͤͪtͤͪͤͪeͤͪͤͪxͤͪͤͪtͤͪͤͪ
55 |
56 | :'<,'>IsotopeAttach *below /center zabove
57 |
58 | S̸͙͛a̸͙͛m̸͙͛p̸͙͛l̸͙͛e̸͙͛ ̸͙͛t̸͙͛e̸͙͛x̸͙͛t̸͙͛
59 |
60 | :'<,'>IsotopeAttach .below .above
61 |
62 | Ṩạ̇ṃ̇ṗ̣ḷ̇ẹ̇ ̣̇ṭ̇ẹ̇ẋ̣ṭ̇
63 |
64 | :'<,'>IsotopeAttach xabove xbelow
65 |
66 | S͓̽a͓̽m͓̽p͓̽l͓̽e͓̽ ͓̽t͓̽e͓̽x͓̽t͓̽
67 |
68 | :'<,'>IsotopeAttach ^below ~below ring-above <->below ~above
69 |
70 | S͍̰͎̃̊ã͍̰͎̊m͍̰͎̃̊p͍̰͎̃̊l͍̰͎̃̊ẽ͍̰͎̊ ͍̰͎̃̊t͍̰͎̃̊ẽ͍̰͎̊x͍̰͎̃̊t͍̰͎̃̊
71 | ```
72 |
73 | You may also insert diacritics by their raw unicode name through the `IsotopeAttach!` command. The following commands are equivalent to the ones above:
74 |
75 | ```vim
76 | :'<,'>IsotopeAttach! LATIN_SMALL_LETTER_H LATIN_SMALL_LETTER_E LATIN_SMALL_LETTER_H LATIN_SMALL_LETTER_E
77 | :'<,'>IsotopeAttach! ASTERISK_BELOW LONG_DOUBLE_SOLIDUS_OVERLAY ZIGZAG_ABOVE
78 | :'<,'>IsotopeAttach! DOT_BELOW DOT_ABOVE
79 | :'<,'>IsotopeAttach! X_ABOVE X_BELOW
80 | :'<,'>IsotopeAttach! CIRCUMFLEX_ACCENT_BELOW CIRCUMFLEX TILDE_BELOW RING_ABOVE LEFT_RIGHT_ARROW_ABOVE TILDE
81 | ```
82 |
83 | By default, Vim can display 2 diacritics on top of each other. You can raise this limit through the `maxcombine` option. The maximum is 6:
84 |
85 | ```vim
86 | set maxcombine=6
87 | ```
88 |
89 | You can also activate the `delcombine` option which permits removal of diacritics without deleting the character they are attached to.
90 |
91 | ```vim
92 | set delcombine
93 | ```
94 |
95 | # Default mappings
96 |
97 | Below are the default mappings.
98 |
99 | ```vim
100 | " Superscript/subscript/circled-white
101 | inoremap :IsotopeInsert SUPERSCRIPT
102 | inoremap :IsotopeInsert SUBSCRIPT
103 | inoremap :IsotopeInsert CIRCLED_WHITE
104 |
105 | inoremap :IsotopeToggle SUPERSCRIPT
106 | inoremap :IsotopeToggle SUBSCRIPT
107 | inoremap :IsotopeToggle CIRCLED_WHITE
108 |
109 | " Underline
110 | vnoremap :IsotopeAttach -below
111 | ```
112 |
113 | These can be disabled by:
114 |
115 | ```vim
116 | let g:isotope_use_default_mappings = 0
117 | ```
118 |
119 | # Custom commands
120 |
121 | For readability, it can be useful to define custom shortcut commands like this:
122 |
123 | ```vim
124 | command -range Underline IsotopeAttach -below
125 | command -range Strikethrough IsotopeAttach -center
126 | command -range Slashthrough IsotopeAttach /center
127 | ```
128 |
129 | # Searching for characters
130 |
131 | To locate characters, you can use the `IsotopeSearch` command:
132 |
133 | ```vim
134 | " Locate all classes of special characters.
135 | :IsotopeSearch
136 |
137 | " Locate specific classes of special characters.
138 | :IsotopeSearch SERIF_BOLD DOUBLE_STRUCK
139 | ```
140 |
141 | Currently, this command cannot be used to find diacritic characters. PRs are welcome.
142 |
143 | # Character preview
144 |
145 | A list of all special characters and diacritics can be viewed by running this command:
146 |
147 | ```
148 | :IsotopePreview
149 | ```
150 |
151 | List of Special Characters
152 |
153 | Below is a list of all special classes of characters, sorted in alphabetic order. Note that some characters have no conversions from ASCII. Also, GitHub might render some with longer widths.
154 |
155 | ```
156 | Default ASCII : !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
157 | ------------------------------------------------------------------------------------------------------------------
158 | ACUTE : Á Ć É Ǵ í ḰĹḾŃŐṔ Ŕś Ű Ẃ ӲŹ á ć é ǵ í ḱĺḿńőṕ ŕś ú ẃ ӳź
159 | CIRCLED_BLACK : 🄌➊➋➌➍➎➏➐➑➒ 🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩
160 | CIRCLED_WHITE : ⊛⊕ ⊖⨀⊘⓪①②③④⑤⑥⑦⑧⑨ ⧀⊜⧁ ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ ⦸ ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ ⦶
161 | CURSIVE : 𝒜ℬ𝒞𝒟ℰℱ𝒢ℋℐ𝒥𝒦ℒℳ𝒩𝒪𝒫𝒬ℛ𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵 𝒶𝒷𝒸𝒹ℯ𝒻ℊ𝒽𝒾𝒿𝓀𝓁𝓂𝓃ℴ𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏
162 | CURSIVE_BOLD : 𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩 𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃
163 | DOUBLE_STRUCK : 𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡 𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ 𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫
164 | FRAKTUR : 𝔄𝔅ℭ𝔇𝔈𝔉𝔊ℌℑ𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔ℜ𝔖𝔗𝔘𝔙𝔚𝔛𝔜ℨ 𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷
165 | FRAKTUR_BOLD : 𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅 𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟
166 | INVERTED : ¡„ ⅋ ‘ ˙ ؛ ¿ ∀ ϽᗡƎℲƃ ſʞ˥ ԀὉᴚ ⊥∩Λ ʎ ‾ ɐ ɔ ǝɟƃɥıɾʞןɯ ɹ ʇ ʌʍ ʎ
167 | MONOSPACE : 𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿 𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉 𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣
168 | PARENTHESIZED : ⑴⑵⑶⑷⑸⑹⑺⑻⑼ ⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵ ⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵
169 | REVERSED : ߁ ⁏ ⸮ Ↄ Ǝꟻ ⅃ ᴎ ꟼ ᴙꙄ ↄ ɘꟻ ᴎ ᴙꙅ ∽
170 | ROCK_DOTS : ⸚∵ ӟ ÄḄĊḊЁḞĠḦЇ ḲḶṀṄÖṖ ṚṠṪÜṾẄẌŸŻ äḅċḋëḟġḧï ḳḷṁṅöṗ ṛṡẗüṿẅẍÿż
171 | SANS : 𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫 𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹 𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓
172 | SANS_BOLD : 𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵 𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭 𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇
173 | SANS_BOLD_ITALIC : 𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕 𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯
174 | SANS_ITALIC : 𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡 𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻
175 | SERIF_BOLD : 𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗 𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙 𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳
176 | SERIF_BOLD_ITALIC : 𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁 𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛
177 | SERIF_ITALIC : 𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍 𝑎𝑏𝑐𝑑𝑒𝑓𝑔ℎ𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧
178 | SMALL_CAPS : ᴀʙᴄᴅᴇꜰɢʜɪᴊᴋʟᴍɴᴏᴩ ʀꜱᴛᴜᴠᴡ ᴢ
179 | SQUARED_BLACK : 🅰🅱🅲🅳🅴🅵🅶🅷🅸🅹🅺🅻🅼🅽🅾🅿🆀🆁🆂🆃🆄🆅🆆🆇🆈🆉
180 | SQUARED_WHITE : ⧆⊞ ⊟⊡⧄ 🄰🄱🄲🄳🄴🄵🄶🄷🄸🄹🄺🄻🄼🄽🄾🄿🅀🅁🅂🅃🅄🅅🅆🅇🅈🅉 ⧅
181 | STROKED : ƻ ȺɃȻĐɆ ǤĦƗɈꝀŁ ØⱣꝖɌ Ŧᵾ ɎƵ Ⱥƀȼđɇ ǥħɨɉꝁł øᵽꝗɍ ŧᵾ ɏƶ
182 | SUBSCRIPT : ₍₎ ₊ ₋ ₀₁₂₃₄₅₆₇₈₉ ₌ ₐ ₑ ₕᵢⱼₖₗₘₙₒₚ ᵣₛₜᵤᵥ ₓ
183 | SUPERSCRIPT : ⁽⁾ ⁺ ⁻ ⁰¹²³⁴⁵⁶⁷⁸⁹ ⁼ ᴬᴮᶜᴰᴱᶠᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾ ᴿˢᵀᵁⱽᵂ ᵃᵇᶜᵈᵉᶠᵍʰⁱʲᵏˡᵐⁿᵒᵖ ʳˢᵗᵘᵛʷˣʸᶻ
184 | ```
185 |
186 | List of Combining Characters
187 |
188 | Below is a list of all different kinds of diacritics.
189 |
190 | ```
191 | 1ᷙ2ᷙ3ᷙaᷙbᷙcᷙAᷙBᷙCᷙ = LATIN_SMALL_LETTER_ETH
192 |
193 | 1᷑2᷑3᷑a᷑b᷑c᷑A᷑B᷑C᷑ = UR_ABOVE
194 |
195 | 1͍2͍3͍a͍b͍c͍A͍B͍C͍ = LEFT_RIGHT_ARROW_BELOW [ <->below ]
196 |
197 | 1᷋2᷋3᷋a᷋b᷋c᷋A᷋B᷋C᷋ = BREVE_MACRON
198 |
199 | 1᷌2᷌3᷌a᷌b᷌c᷌A᷌B᷌C᷌ = MACRON_BREVE
200 |
201 | 1︢2︢3︢a︢b︢c︢A︢B︢C︢ = DOUBLE_TILDE_LEFT_HALF
202 |
203 | 1̤2̤3̤a̤b̤c̤A̤B̤C̤ = DIAERESIS_BELOW
204 |
205 | 1̥2̥3̥ḁb̥c̥ḀB̥C̥ = RING_BELOW [ ring-below ]
206 |
207 | 1̋2̋3̋a̋b̋c̋A̋B̋C̋ = DOUBLE_ACCUTE_ACCENT
208 |
209 | 1᷁2᷁3᷁a᷁b᷁c᷁A᷁B᷁C᷁ = DOTTED_ACUTE_ACCENT
210 |
211 | 1᷸2᷸3᷸a᷸b᷸c᷸A᷸B᷸C᷸ = DOT_ABOVE_LEFT
212 |
213 | 1ᷩ2ᷩ3ᷩaᷩbᷩcᷩAᷩBᷩCᷩ = LATIN_SMALL_LETTER_BETA [ β ]
214 |
215 | 1⃢2⃢3⃢a⃢b⃢c⃢A⃢B⃢C⃢ = ENCLOSING_SCREEN
216 |
217 | 1̧2̧3̧a̧b̧çA̧B̧Ç = CEDILLA
218 |
219 | 1̜2̜3̜a̜b̜c̜A̜B̜C̜ = LEFT_HALF_RING_BELOW
220 |
221 | 1̀2̀3̀àb̀c̀ÀB̀C̀ = GRAVE_TONE_MARK
222 |
223 | 1᷐2᷐3᷐a᷐b᷐c᷐A᷐B᷐C᷐ = IS_BELOW
224 |
225 | 1᷀2᷀3᷀a᷀b᷀c᷀A᷀B᷀C᷀ = DOTTED_GRAVE_ACCENT
226 |
227 | 1̿2̿3̿a̿b̿c̿A̿B̿C̿ = DOUBLE_OVERLINE
228 |
229 | 1᷻2᷻3᷻a᷻b᷻c᷻A᷻B᷻C᷻ = DELETION_MARK
230 |
231 | 1᷒2᷒3᷒a᷒b᷒c᷒A᷒B᷒C᷒ = US_ABOVE
232 |
233 | 1᪹2᪹3᪹a᪹b᪹c᪹A᪹B᪹C᪹ = LIGHT_CENTRALIZATION_STROKE_BELOW
234 |
235 | 1́2́3́áb́ćÁB́Ć = ACCUTE_ACCENT
236 |
237 | 1͢2͢3͢a͢b͢c͢A͢B͢C͢ = DOUBLE_RIGHTWARDS_ARROW_BELOW
238 |
239 | 1̱2̱3̱a̱ḇc̱A̱ḆC̱ = MACRON_BELOW
240 |
241 | 1︧2︧3︧a︧b︧c︧A︧B︧C︧ = LIGATURE_LEFT_HALF_BELOW
242 |
243 | 1̨2̨3̨ąb̨c̨ĄB̨C̨ = OGONEK
244 |
245 | 1̈2̈3̈äb̈c̈ÄB̈C̈ = DIAERESIS
246 |
247 | 1᪳2᪳3᪳a᪳b᪳c᪳A᪳B᪳C᪳ = DOWNWARDS_ARROW [ v|above ]
248 |
249 | 1̘2̘3̘a̘b̘c̘A̘B̘C̘ = LEFT_TACK_BELOW
250 |
251 | 1ᷢ2ᷢ3ᷢaᷢbᷢcᷢAᷢBᷢCᷢ = LATIN_LETTER_SMALL_CAPITAL_R [ R ]
252 |
253 | 1⃭2⃭3⃭a⃭b⃭c⃭A⃭B⃭C⃭ = LEFTWARDS_HARPOON_WITH_BARB_DOWNWARDS
254 |
255 | 1̄2̄3̄āb̄c̄ĀB̄C̄ = MACRON
256 |
257 | 1͇2͇3͇a͇b͇c͇A͇B͇C͇ = EQUALS_SIGN_BELOW [ =below ]
258 |
259 | 1᷹2᷹3᷹a᷹b᷹c᷹A᷹B᷹C᷹ = WIDE_INVERTED_BRIDGE_BELOW
260 |
261 | 1᪰2᪰3᪰a᪰b᪰c᪰A᪰B᪰C᪰ = DOUBLED_CIRCUMFLEX_ACCENT
262 |
263 | 1̓2̓3̓a̓b̓c̓A̓B̓C̓ = COMMA_ABOVE
264 |
265 | 1̵2̵3̵a̵b̵c̵A̵B̵C̵ = SHORT_STROKE_OVERLAY
266 |
267 | 1ᷗ2ᷗ3ᷗaᷗbᷗcᷗAᷗBᷗCᷗ = LATIN_SMALL_LETTER_C_CEDILLA
268 |
269 | 1̸2̸3̸a̸b̸c̸A̸B̸C̸ = LONG_SOLIDUS_OVERLAY [ /center ]
270 |
271 | 1̛2̛3̛a̛b̛c̛A̛B̛C̛ = HORN
272 |
273 | 1͗2͗3͗a͗b͗c͗A͗B͗C͗ = RIGHT_HALF_RING_ABOVE
274 |
275 | 1᷊2᷊3᷊a᷊b᷊c᷊A᷊B᷊C᷊ = LATIN_SMALL_LETTER_R_BELOW
276 |
277 | 1⃦2⃦3⃦a⃦b⃦c⃦A⃦B⃦C⃦ = DOUBLE_VERTICAL_STROKE_OVERLAY
278 |
279 | 1̗2̗3̗a̗b̗c̗A̗B̗C̗ = ACUTE_ACCENT_BELOW
280 |
281 | 1᪶2᪶3᪶a᪶b᪶c᪶A᪶B᪶C᪶ = WIGGLY_LINE_BELOW
282 |
283 | 1͘2͘3͘a͘b͘c͘A͘B͘C͘ = DOT_ABOVE_RIGHT
284 |
285 | 1⃬2⃬3⃬a⃬b⃬c⃬A⃬B⃬C⃬ = RIGHTWARDS_HARPOON_WITH_BARB_DOWNWARDS
286 |
287 | 1᷏2᷏3᷏a᷏b᷏c᷏A᷏B᷏C᷏ = ZIGZAG_BELOW [ zbelow ]
288 |
289 | 1̌2̌3̌ǎb̌čǍB̌Č = CARON
290 |
291 | 1⃧2⃧3⃧a⃧b⃧c⃧A⃧B⃧C⃧ = ANNUITY_SYMBOL
292 |
293 | 1̮2̮3̮a̮b̮c̮A̮B̮C̮ = BREVE_BELOW
294 |
295 | 1̙2̙3̙a̙b̙c̙A̙B̙C̙ = RIGHT_TACK_BELOW
296 |
297 | 1⃩2⃩3⃩a⃩b⃩c⃩A⃩B⃩C⃩ = WIDE_BRIDGE_ABOVE
298 |
299 | 1⃑2⃑3⃑a⃑b⃑c⃑A⃑B⃑C⃑ = RIGHT_HARPOON_ABOVE
300 |
301 | 1̷2̷3̷a̷b̷c̷A̷B̷C̷ = SHORT_SOLIDUS_OVERLAY
302 |
303 | 1͡2͡3͡a͡b͡c͡A͡B͡C͡ = DOUBLE_INVERTED_BREVE
304 |
305 | 1⃰2⃰3⃰a⃰b⃰c⃰A⃰B⃰C⃰ = ASTERISK_ABOVE [ *above ]
306 |
307 | 1᪼2᪼3᪼a᪼b᪼c᪼A᪼B᪼C᪼ = DOUBLE_PARENTHESIS_ABOVE
308 |
309 | 1̎2̎3̎a̎b̎c̎A̎B̎C̎ = DOUBLE_VERTICAL_LINE_ABOVE
310 |
311 | 1᷽2᷽3᷽a᷽b᷽c᷽A᷽B᷽C᷽ = ALMOST_EQUAL_TO_BELOW
312 |
313 | 1᪺2᪺3᪺a᪺b᪺c᪺A᪺B᪺C᪺ = STRONG_CENTRALIZATION_STROKE_BELOW
314 |
315 | 1⃠2⃠3⃠a⃠b⃠c⃠A⃠B⃠C⃠ = ENCLOSING_CIRCLE_BACKSLASH
316 |
317 | 1͝2͝3͝a͝b͝c͝A͝B͝C͝ = DOUBLE_BREVE
318 |
319 | 1̣2̣3̣ạḅc̣ẠḄC̣ = DOT_BELOW [ .below ]
320 |
321 | 1̬2̬3̬a̬b̬c̬A̬B̬C̬ = CARON_BELOW [ vbelow ]
322 |
323 | 1⃨2⃨3⃨a⃨b⃨c⃨A⃨B⃨C⃨ = TRIPLE_UNDERDOT [ ...below ]
324 |
325 | 1︬2︬3︬a︬b︬c︬A︬B︬C︬ = MACRON_RIGHT_HALF_BELOW
326 |
327 | 1︩2︩3︩a︩b︩c︩A︩B︩C︩ = TILDE_LEFT_HALF_HELOW
328 |
329 | 1᷷2᷷3᷷a᷷b᷷c᷷A᷷B᷷C᷷ = KAVYKAK_ABOVE_LEFT
330 |
331 | 1̕2̕3̕a̕b̕c̕A̕B̕C̕ = COMMA_ABOVE_RIGHT
332 |
333 | 1︫2︫3︫a︫b︫c︫A︫B︫C︫ = MACRON_LEFT_HALF_BELOW
334 |
335 | 1̐2̐3̐a̐b̐c̐A̐B̐C̐ = CANDRABINDU
336 |
337 | 1ᷛ2ᷛ3ᷛaᷛbᷛcᷛAᷛBᷛCᷛ = LATIN_LETTER_SMALL_CAPITAL_G [ G ]
338 |
339 | 1ᷞ2ᷞ3ᷞaᷞbᷞcᷞAᷞBᷞCᷞ = LATIN_LETTER_SMALL_CAPITAL_L [ L ]
340 |
341 | 1ᷟ2ᷟ3ᷟaᷟbᷟcᷟAᷟBᷟCᷟ = LATIN_LETTER_SMALL_CAPITAL_M [ M ]
342 |
343 | 1ᷡ2ᷡ3ᷡaᷡbᷡcᷡAᷡBᷡCᷡ = LATIN_LETTER_SMALL_CAPITAL_N [ N ]
344 |
345 | 1̚2̚3̚a̚b̚c̚A̚B̚C̚ = LEFT_ANGLE_ABOVE
346 |
347 | 1ͤ2ͤ3ͤaͤbͤcͤAͤBͤCͤ = LATIN_SMALL_LETTER_E [ e ]
348 |
349 | 1̲2̲3̲a̲b̲c̲A̲B̲C̲ = LOW_LINE
350 |
351 | 1ᷚ2ᷚ3ᷚaᷚbᷚcᷚAᷚBᷚCᷚ = LATIN_SMALL_LETTER_G [ g ]
352 |
353 | 1̠2̠3̠a̠b̠c̠A̠B̠C̠ = MINUS_SIGN_BELOW
354 |
355 | 1︣2︣3︣a︣b︣c︣A︣B︣C︣ = DOUBLE_TILDE_RIGHT_HALF
356 |
357 | 1⃓2⃓3⃓a⃓b⃓c⃓A⃓B⃓C⃓ = SHORT_VERTICAL_LINE_OVERLAY
358 |
359 | 1͕2͕3͕a͕b͕c͕A͕B͕C͕ = RIGHT_ARROWHEAD_BELOW
360 |
361 | 1᷵2᷵3᷵a᷵b᷵c᷵A᷵B᷵C᷵ = UP_TACK_ABOVE
362 |
363 | 1ͣ2ͣ3ͣaͣbͣcͣAͣBͣCͣ = LATIN_SMALL_LETTER_A [ a ]
364 |
365 | 1ᷨ2ᷨ3ᷨaᷨbᷨcᷨAᷨBᷨCᷨ = LATIN_SMALL_LETTER_B [ b ]
366 |
367 | 1̉2̉3̉ảb̉c̉ẢB̉C̉ = HOOK_ABOVE
368 |
369 | 1᪴2᪴3᪴a᪴b᪴c᪴A᪴B᪴C᪴ = TRIPLE_DOT
370 |
371 | 1⃝2⃝3⃝a⃝b⃝c⃝A⃝B⃝C⃝ = ENCLOSING_CIRCLE [ circle ]
372 |
373 | 1ᷫ2ᷫ3ᷫaᷫbᷫcᷫAᷫBᷫCᷫ = LATIN_SMALL_LETTER_F [ f ]
374 |
375 | 1͆2͆3͆a͆b͆c͆A͆B͆C͆ = BRIDGE_ABOVE
376 |
377 | 1ͪ2ͪ3ͪaͪbͪcͪAͪBͪCͪ = LATIN_SMALL_LETTER_H [ h ]
378 |
379 | 1ͥ2ͥ3ͥaͥbͥcͥAͥBͥCͥ = LATIN_SMALL_LETTER_I [ i ]
380 |
381 | 1ᷜ2ᷜ3ᷜaᷜbᷜcᷜAᷜBᷜCᷜ = LATIN_SMALL_LETTER_K [ k ]
382 |
383 | 1ᷝ2ᷝ3ᷝaᷝbᷝcᷝAᷝBᷝCᷝ = LATIN_SMALL_LETTER_L [ l ]
384 |
385 | 1ͫ2ͫ3ͫaͫbͫcͫAͫBͫCͫ = LATIN_SMALL_LETTER_M [ m ]
386 |
387 | 1ᷠ2ᷠ3ᷠaᷠbᷠcᷠAᷠBᷠCᷠ = LATIN_SMALL_LETTER_N [ n ]
388 |
389 | 1ͦ2ͦ3ͦaͦbͦcͦAͦBͦCͦ = LATIN_SMALL_LETTER_O [ o ]
390 |
391 | 1ᷮ2ᷮ3ᷮaᷮbᷮcᷮAᷮBᷮCᷮ = LATIN_SMALL_LETTER_P [ p ]
392 |
393 | 1᷉2᷉3᷉a᷉b᷉c᷉A᷉B᷉C᷉ = ACUTE_GRAVE_ACUTE
394 |
395 | 1ͬ2ͬ3ͬaͬbͬcͬAͬBͬCͬ = LATIN_SMALL_LETTER_R [ r ]
396 |
397 | 1ᷤ2ᷤ3ᷤaᷤbᷤcᷤAᷤBᷤCᷤ = LATIN_SMALL_LETTER_S [ s ]
398 |
399 | 1ͭ2ͭ3ͭaͭbͭcͭAͭBͭCͭ = LATIN_SMALL_LETTER_T [ t ]
400 |
401 | 1ͧ2ͧ3ͧaͧbͧcͧAͧBͧCͧ = LATIN_SMALL_LETTER_U [ u ]
402 |
403 | 1ͮ2ͮ3ͮaͮbͮcͮAͮBͮCͮ = LATIN_SMALL_LETTER_V [ v ]
404 |
405 | 1ᷱ2ᷱ3ᷱaᷱbᷱcᷱAᷱBᷱCᷱ = LATIN_SMALL_LETTER_W [ w ]
406 |
407 | 1ͯ2ͯ3ͯaͯbͯcͯAͯBͯCͯ = LATIN_SMALL_LETTER_X [ x ]
408 |
409 | 1ᷦ2ᷦ3ᷦaᷦbᷦcᷦAᷦBᷦCᷦ = LATIN_SMALL_LETTER_Z [ z ]
410 |
411 | 1︨2︨3︨a︨b︨c︨A︨B︨C︨ = LIGATURE_RIGHT_HALF_BELOW
412 |
413 | 1᷿2᷿3᷿a᷿b᷿c᷿A᷿B᷿C᷿ = RIGHT_ARROWHEAD_AND_DOWN_ARROWHEAD_BELOW
414 |
415 | 1ᷔ2ᷔ3ᷔaᷔbᷔcᷔAᷔBᷔCᷔ = LATIN_SMALL_LETTER_AE
416 |
417 | 1ᷧ2ᷧ3ᷧaᷧbᷧcᷧAᷧBᷧCᷧ = LATIN_SMALL_LETTER_ALPHA [ α ]
418 |
419 | 1⃖2⃖3⃖a⃖b⃖c⃖A⃖B⃖C⃖ = LEFT_ARROW_ABOVE [ <-above ]
420 |
421 | 1̽2̽3̽a̽b̽c̽A̽B̽C̽ = X_ABOVE [ xabove ]
422 |
423 | 1ᷕ2ᷕ3ᷕaᷕbᷕcᷕAᷕBᷕCᷕ = LATIN_SMALL_LETTER_AO
424 |
425 | 1᪵2᪵3᪵a᪵b᪵c᪵A᪵B᪵C᪵ = XX_BELOW
426 |
427 | 1᷄2᷄3᷄a᷄b᷄c᷄A᷄B᷄C᷄ = MACRON_ACUTE
428 |
429 | 1̞2̞3̞a̞b̞c̞A̞B̞C̞ = DOWN_TACK_BELOW
430 |
431 | 1ᷖ2ᷖ3ᷖaᷖbᷖcᷖAᷖBᷖCᷖ = LATIN_SMALL_LETTER_AV
432 |
433 | 1̫2̫3̫a̫b̫c̫A̫B̫C̫ = INVERTED_DOUBLE_ARCH_BELOW
434 |
435 | 1ͅ2ͅ3ͅaͅbͅcͅAͅBͅCͅ = GREEK_YPOGEGRAMMENI
436 |
437 | 1ᷰ2ᷰ3ᷰaᷰbᷰcᷰAᷰBᷰCᷰ = LATIN_SMALL_LETTER_U_WITH_LIGHT_CENTRALIZATION_STROKE
438 |
439 | 1⃪2⃪3⃪a⃪b⃪c⃪A⃪B⃪C⃪ = LEFTWARDS_ARROW_OVERLAY [ <-center ]
440 |
441 | 1᷍2᷍3᷍a᷍b᷍c᷍A᷍B᷍C᷍ = DOUBLE_CIRCUMFLEX_ABOVE
442 |
443 | 1ᷥ2ᷥ3ᷥaᷥbᷥcᷥAᷥBᷥCᷥ = LATIN_SMALL_LETTER_LONG_S
444 |
445 | 1᷼2᷼3᷼a᷼b᷼c᷼A᷼B᷼C᷼ = DOUBLE_INVERTED_BREVE_BELOW
446 |
447 | 1̼2̼3̼a̼b̼c̼A̼B̼C̼ = SEAGULL_BELOW
448 |
449 | 1᷶2᷶3᷶a᷶b᷶c᷶A᷶B᷶C᷶ = KAVYKA_ABOVE_RIGHT
450 |
451 | 1᷾2᷾3᷾a᷾b᷾c᷾A᷾B᷾C᷾ = LEFT_ARROWHEAD_ABOVE
452 |
453 | 1᪷2᪷3᪷a᪷b᪷c᪷A᪷B᪷C᪷ = OPEN_MARK_BELOW
454 |
455 | 1︤2︤3︤a︤b︤c︤A︤B︤C︤ = MACRON_LEFT_HALF
456 |
457 | 1᪻2᪻3᪻a᪻b᪻c᪻A᪻B᪻C᪻ = PARENTHESIS_ABOVE [ ()above ]
458 |
459 | 1̴2̴3̴a̴b̴c̴A̴B̴C̴ = TILDE_OVERLAY [ ~center ]
460 |
461 | 1ᷣ2ᷣ3ᷣaᷣbᷣcᷣAᷣBᷣCᷣ = LATIN_SMALL_LETTER_R_ROTUNDA
462 |
463 | 1︯2︯3︯a︯b︯c︯A︯B︯C︯ = CYRILLIC_TITLO_RIGHT_HALF
464 |
465 | 1᷎2᷎3᷎a᷎b᷎c᷎A᷎B᷎C᷎ = OGONEK_ABOVE
466 |
467 | 1͜2͜3͜a͜b͜c͜A͜B͜C͜ = DOUBLE_BREVE_BELOW
468 |
469 | 1⃐2⃐3⃐a⃐b⃐c⃐A⃐B⃐C⃐ = LEFT_HARPOON_ABOVE
470 |
471 | 1᷂2᷂3᷂a᷂b᷂c᷂A᷂B᷂C᷂ = SNAKE_BELOW
472 |
473 | 1̩2̩3̩a̩b̩c̩A̩B̩C̩ = VERTICAL_LINE_BELOW [ |below ]
474 |
475 | 1̆2̆3̆ăb̆c̆ĂB̆C̆ = BREVE
476 |
477 | 1᪸2᪸3᪸a᪸b᪸c᪸A᪸B᪸C᪸ = DOUBLE_OPEN_MARK_BELOW
478 |
479 | 1︮2︮3︮a︮b︮c︮A︮B︮C︮ = CYRILLIC_TITLO_LEFT_HALF
480 |
481 | 1⃙2⃙3⃙a⃙b⃙c⃙A⃙B⃙C⃙ = CLOCKWISE_RING_OVERLAY
482 |
483 | 1⃗2⃗3⃗a⃗b⃗c⃗A⃗B⃗C⃗ = RIGHT_ARROW_ABOVE [ ->above ]
484 |
485 | 1̦2̦3̦a̦b̦c̦A̦B̦C̦ = COMMA_BELOW
486 |
487 | 1ᷭ2ᷭ3ᷭaᷭbᷭcᷭAᷭBᷭCᷭ = LATIN_SMALL_LETTER_O_WITH_LIGHT_CENTRALIZATION_STROKE
488 |
489 | 1⃛2⃛3⃛a⃛b⃛c⃛A⃛B⃛C⃛ = THREE_DOTS_ABOVE [ ...above ]
490 |
491 | 1͉2͉3͉a͉b͉c͉A͉B͉C͉ = LEFT_ANGLE_BELOW
492 |
493 | 1̡2̡3̡a̡b̡c̡A̡B̡C̡ = PALATIZED_HOOK_BELOW
494 |
495 | 1̹2̹3̹a̹b̹c̹A̹B̹C̹ = RIGHT_HALF_RING_BELOW
496 |
497 | 1᪾2᪾3᪾a᪾b᪾c᪾A᪾B᪾C᪾ = PARENTHESES_OVERLAY [ ()center ]
498 |
499 | 1᪲2᪲3᪲a᪲b᪲c᪲A᪲B᪲C᪲ = INFINITY
500 |
501 | 1̑2̑3̑ȃb̑c̑ȂB̑C̑ = INVERTED_BREVE
502 |
503 | 1︥2︥3︥a︥b︥c︥A︥B︥C︥ = MACRON_RIGHT_HALF
504 |
505 | 1͠2͠3͠a͠b͠c͠A͠B͠C͠ = DOUBLE_TILDE
506 |
507 | 1ᷳ2ᷳ3ᷳaᷳbᷳcᷳAᷳBᷳCᷳ = LATIN_SMALL_LETTER_O_WITH_DIAERESIS
508 |
509 | 1᷇2᷇3᷇a᷇b᷇c᷇A᷇B᷇C᷇ = MACRON_GRAVE
510 |
511 | 1ᷬ2ᷬ3ᷬaᷬbᷬcᷬAᷬBᷬCᷬ = LATIN_SMALL_LETTER_L_WITH_DOUBLE_MIDDLE_TILDE
512 |
513 | 1̢2̢3̢a̢b̢c̢A̢B̢C̢ = RETROFLEX_HOOK_BELOW
514 |
515 | 1⃣2⃣3⃣a⃣b⃣c⃣A⃣B⃣C⃣ = ENCLOSING_KEYCAP [ keycap ]
516 |
517 | 1̏2̏3̏ȁb̏c̏ȀB̏C̏ = DOUBLE_GRAVE_ACCENT
518 |
519 | 1͊2͊3͊a͊b͊c͊A͊B͊C͊ = NOT_TILDE_ABOVE
520 |
521 | 1⃡2⃡3⃡a⃡b⃡c⃡A⃡B⃡C⃡ = LEFT_RIGHT_ARROW_ABOVE [ <->above ]
522 |
523 | 1︠2︠3︠a︠b︠c︠A︠B︠C︠ = LIGATURE_LEFT_HALF
524 |
525 | 1᷃2᷃3᷃a᷃b᷃c᷃A᷃B᷃C᷃ = SUSPENSION_MARK
526 |
527 | 1̊2̊3̊åb̊c̊ÅB̊C̊ = RING_ABOVE [ ring-above ]
528 |
529 | 1̻2̻3̻a̻b̻c̻A̻B̻C̻ = SQUARE_BELOW
530 |
531 | 1̳2̳3̳a̳b̳c̳A̳B̳C̳ = DOUBLE_LOW_LINE [ --below ]
532 |
533 | 1͙2͙3͙a͙b͙c͙A͙B͙C͙ = ASTERISK_BELOW [ *below ]
534 |
535 | 1͈2͈3͈a͈b͈c͈A͈B͈C͈ = DOUBLE_VERTICAL_LINE_BELOW
536 |
537 | 1̶2̶3̶a̶b̶c̶A̶B̶C̶ = LONG_STROKE_OVERLAY [ -center ]
538 |
539 | 1͑2͑3͑a͑b͑c͑A͑B͑C͑ = LEFT_HALF_RING_ABOVE
540 |
541 | 1⃒2⃒3⃒a⃒b⃒c⃒A⃒B⃒C⃒ = LONG_VERTICAL_LINE_OVERLAY [ |center ]
542 |
543 | 1⃜2⃜3⃜a⃜b⃜c⃜A⃜B⃜C⃜ = FOUR_DOTS_ABOVE
544 |
545 | 1︪2︪3︪a︪b︪c︪A︪B︪C︪ = TILDE_RIGHT_HALF_BELOW
546 |
547 | 1̒2̒3̒a̒b̒c̒A̒B̒C̒ = TURNED_COMMA_ABOVE
548 |
549 | 1ᷴ2ᷴ3ᷴaᷴbᷴcᷴAᷴBᷴCᷴ = LATIN_SMALL_LETTER_U_WITH_DIAERESIS
550 |
551 | 1︦2︦3︦a︦b︦c︦A︦B︦C︦ = CONJOINING_MACRON
552 |
553 | 1́2́3́áb́ćÁB́Ć = ACUTE_TONE_MARK
554 |
555 | 1᷇2᷇3᷇a᷇b᷇c᷇A᷇B᷇C᷇ = ACUTE_MACRON
556 |
557 | 1̖2̖3̖a̖b̖c̖A̖B̖C̖ = GRAVE_ACCENT_BELOW
558 |
559 | 1⃚2⃚3⃚a⃚b⃚c⃚A⃚B⃚C⃚ = ANTICLOCKWISE_RING_OVERLAY
560 |
561 | 1⃔2⃔3⃔a⃔b⃔c⃔A⃔B⃔C⃔ = ANTICLOCKWISE_ARROW_ABOVE
562 |
563 | 1̟2̟3̟a̟b̟c̟A̟B̟C̟ = PLUS_SIGN_BELOW [ +below ]
564 |
565 | 1⃞2⃞3⃞a⃞b⃞c⃞A⃞B⃞C⃞ = ENCLOSING_SQUARE [ square ]
566 |
567 | 1ͨ2ͨ3ͨaͨbͨcͨAͨBͨCͨ = LATIN_SMALL_LETTER_C [ c ]
568 |
569 | 1᷆2᷆3᷆a᷆b᷆c᷆A᷆B᷆C᷆ = GRAVE_MACRON
570 |
571 | 1̔2̔3̔a̔b̔c̔A̔B̔C̔ = REVERSED_COMMA_ABOVE
572 |
573 | 1̍2̍3̍a̍b̍c̍A̍B̍C̍ = VERTICAL_LINE_ABOVE [ |above ]
574 |
575 | 1ͩ2ͩ3ͩaͩbͩcͩAͩBͩCͩ = LATIN_SMALL_LETTER_D [ d ]
576 |
577 | 1ᷪ2ᷪ3ᷪaᷪbᷪcᷪAᷪBᷪCᷪ = LATIN_SMALL_LETTER_SCHWA
578 |
579 | 1̝2̝3̝a̝b̝c̝A̝B̝C̝ = UP_TACK_BELOW
580 |
581 | 1⃫2⃫3⃫a⃫b⃫c⃫A⃫B⃫C⃫ = LONG_DOUBLE_SOLIDUS_OVERLAY [ //center ]
582 |
583 | 1̪2̪3̪a̪b̪c̪A̪B̪C̪ = BRIDGE_BELOW
584 |
585 | 1͋2͋3͋a͋b͋c͋A͋B͋C͋ = HOMOTHETIC_ABOVE
586 |
587 | 1̅2̅3̅a̅b̅c̅A̅B̅C̅ = OVERLINE
588 |
589 | 1︭2︭3︭a︭b︭c︭A︭B︭C︭ = CONJOINING_MACRON_BELOW
590 |
591 | 1⃮2⃮3⃮a⃮b⃮c⃮A⃮B⃮C⃮ = LEFT_ARROW_BELOW [ <-below ]
592 |
593 | 1͓2͓3͓a͓b͓c͓A͓B͓C͓ = X_BELOW [ xbelow ]
594 |
595 | 1᷈2᷈3᷈a᷈b᷈c᷈A᷈B᷈C᷈ = GRAVE_ACUTE_GRAVE
596 |
597 | 1̾2̾3̾a̾b̾c̾A̾B̾C̾ = VERTICAL_TILDE
598 |
599 | 1⃕2⃕3⃕a⃕b⃕c⃕A⃕B⃕C⃕ = CLOCKWISE_ARROW_ABOVE
600 |
601 | 1͛2͛3͛a͛b͛c͛A͛B͛C͛ = ZIGZAG_ABOVE [ zabove ]
602 |
603 | 1̃2̃3̃ãb̃c̃ÃB̃C̃ = TILDE [ ~above ]
604 |
605 | 1͟2͟3͟a͟b͟c͟A͟B͟C͟ = DOUBLE_MACRON_BELOW [ -below ]
606 |
607 | 1̈́2̈́3̈́ä́b̈́c̈́Ä́B̈́C̈́ = GREEK_DIALYTIKA_TONOS
608 |
609 | 1͔2͔3͔a͔b͔c͔A͔B͔C͔ = LEFT_ARROWHEAD_BELOW
610 |
611 | 1̀2̀3̀àb̀c̀ÀB̀C̀ = GRAVE_ACCENT
612 |
613 | 1̭2̭3̭a̭b̭c̭A̭B̭C̭ = CIRCUMFLEX_ACCENT_BELOW [ ^below ]
614 |
615 | 1᪽2᪽3᪽a᪽b᪽c᪽A᪽B᪽C᪽ = PARENTHESIS_BELOW [ ()below ]
616 |
617 | 1ᷘ2ᷘ3ᷘaᷘbᷘcᷘAᷘBᷘCᷘ = LATIN_SMALL_LETTER_INSULAR_D
618 |
619 | 1︡2︡3︡a︡b︡c︡A︡B︡C︡ = LIGATURE_RIGHT_HALF
620 |
621 | 1͞2͞3͞a͞b͞c͞A͞B͞C͞ = DOUBLE_MACRON [ -above ]
622 |
623 | 1͒2͒3͒a͒b͒c͒A͒B͒C͒ = FERMATA
624 |
625 | 1⃘2⃘3⃘a⃘b⃘c⃘A⃘B⃘C⃘ = RING_OVERLAY [ ring-center ]
626 |
627 | 1̯2̯3̯a̯b̯c̯A̯B̯C̯ = INVERTED_BREVE_BELOW
628 |
629 | 1͖2͖3͖a͖b͖c͖A͖B͖C͖ = RIGHT_ARROWHEAD_AND_UP_ARROWHEAD_BELOW
630 |
631 | 1͌2͌3͌a͌b͌c͌A͌B͌C͌ = ALMOST_EQUAL_TO_ABOVE
632 |
633 | 1᪱2᪱3᪱a᪱b᪱c᪱A᪱B᪱C᪱ = DIAERESIS_RING
634 |
635 | 1̇2̇3̇ȧḃċȦḂĊ = DOT_ABOVE [ .above ]
636 |
637 | 1͂2͂3͂a͂b͂c͂A͂B͂C͂ = GREEK_PERSIPOMENI
638 |
639 | 1͎2͎3͎a͎b͎c͎A͎B͎C͎ = UPWARDS_ARROW_BELOW [ ^|below ]
640 |
641 | 1ᷯ2ᷯ3ᷯaᷯbᷯcᷯAᷯBᷯCᷯ = LATIN_SMALL_LETTER_ESH
642 |
643 | 1ᷲ2ᷲ3ᷲaᷲbᷲcᷲAᷲBᷲCᷲ = LATIN_SMALL_LETTER_A_WITH_DIAERESIS
644 |
645 | 1̓2̓3̓a̓b̓c̓A̓B̓C̓ = GREEK_KORONIS
646 |
647 | 1⃟2⃟3⃟a⃟b⃟c⃟A⃟B⃟C⃟ = ENCLOSING_DIAMOND [ diamond ]
648 |
649 | 1⃯2⃯3⃯a⃯b⃯c⃯A⃯B⃯C⃯ = RIGHT_ARROW_BELOW [ ->below ]
650 |
651 | 1̺2̺3̺a̺b̺c̺A̺B̺C̺ = INVERTED_BRIDGE_BELOW
652 |
653 | 1⃤2⃤3⃤a⃤b⃤c⃤A⃤B⃤C⃤ = ENCLOSING_UPWARD_POINTING_TRIANGLE [ triangle ]
654 |
655 | 1ᷓ2ᷓ3ᷓaᷓbᷓcᷓAᷓBᷓCᷓ = LATIN_SMALL_LETTER_FLATTENED_OPEN_A_ABOVE
656 |
657 | 1͐2͐3͐a͐b͐c͐A͐B͐C͐ = RIGHT_ARROWHEAD_ABOVE
658 |
659 | 1̂2̂3̂âb̂ĉÂB̂Ĉ = CIRCUMFLEX [ ^above ]
660 |
661 | 1⃥2⃥3⃥a⃥b⃥c⃥A⃥B⃥C⃥ = REVERSE_SOLIDUS_OVERLAY [ \center ]
662 |
663 | 1͚2͚3͚a͚b͚c͚A͚B͚C͚ = DOUBLE_RING_BELOW
664 |
665 | 1̰2̰3̰a̰b̰c̰A̰B̰C̰ = TILDE_BELOW [ ~below ]
666 |
667 | 1͏2͏3͏a͏b͏c͏A͏B͏C͏ = GRAPHEME_JOINER
668 | ```
669 |
670 |
--------------------------------------------------------------------------------
/autoload/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/segeljakt/vim-isotope/701461abc38cfdaec241a0c6329681064689bd52/autoload/.DS_Store
--------------------------------------------------------------------------------
/autoload/isotope.vim:
--------------------------------------------------------------------------------
1 | " vim: et sw=2 sts=2
2 |
3 | " Plugin: https://github.com/segeljakt/vim-isotope
4 | " Description: Insert special characters with ease.
5 | " Maintainer: Klas Segeljakt
6 |
7 | if exists("s:autoloaded") | finish | el | let s:autoloaded = 1 | en
8 |
9 | fun! isotope#preview()
10 | echohl Normal
11 |
12 | echom repeat('=', winwidth(0))
13 |
14 | call isotope#charset#preview()
15 |
16 | echom repeat('=', winwidth(0))
17 |
18 | call isotope#diacritic#preview()
19 |
20 | echom repeat('=', winwidth(0))
21 |
22 | echohl None
23 | endfun
24 |
--------------------------------------------------------------------------------
/autoload/isotope/charset.vim:
--------------------------------------------------------------------------------
1 | " vim: et sw=2 sts=2
2 |
3 | " Plugin: https://github.com/segeljakt/vim-isotope
4 | " Description: Insert special characters with ease.
5 | " Maintainer: Klas Segeljakt
6 | " Resources:
7 | " https://yaytext.com
8 | " http://qaz.wtf/u/convert.cgi
9 |
10 | if exists('s:autoloaded') | finish | el | let s:autoloaded = 1 | en
11 |
12 | fun! s:convert(char, kind)
13 | let nr = char2nr(a:char)
14 | if s:lo <= nr && nr <= s:hi " Only convert characters between ! and ~
15 | let idx = nr - s:lo
16 | let newchar = nr2char(strgetchar(s:charset[a:kind], idx))
17 | if newchar != s:undefined
18 | return newchar
19 | en
20 | en
21 | return a:char
22 | endfun
23 |
24 | fun! isotope#charset#complete(ArgLead, CmdLine, CursorPos)
25 | return filter(copy(s:keys), 'v:val =~ "^'.a:ArgLead.'"')
26 | endfun
27 |
28 | fun! isotope#charset#toggle(...)
29 | let kind = get(a:000, 0, '')
30 | if kind == '' || s:active == kind
31 | silent! au! IsotopeToggle
32 | silent! aug! IsotopeToggle
33 | echo 'Isotope: Toggled OFF'
34 | let s:active = ''
35 | el
36 | echo 'Isotope: Toggled ON ['.kind.']'
37 | aug IsotopeToggle | au!
38 | exe 'au InsertCharPre * let v:char = s:convert(v:char,"'.kind.'")'
39 | aug END
40 | let s:active = kind
41 | en
42 | return ''
43 | endfun
44 |
45 | fun! isotope#charset#insert(kind)
46 | aug IsotopeInsert | au!
47 | echo 'Isotope: Waiting for insert... ['.a:kind.']'
48 | exe 'au InsertCharPre * let v:char = s:convert(v:char,"'.a:kind.'")'
49 | \ .'| echo '
50 | \ .'| exe "au! IsotopeInsert"'
51 | \ .'| aug! IsotopeInsert'
52 | aug END
53 | return ''
54 | endfun
55 |
56 | fun! isotope#charset#search(...)
57 | if a:0 == 0
58 | let chars = values(s:charset)
59 | el
60 | let chars = map(copy(a:000), {_, kind -> s:charset[kind]})
61 | en
62 | let pattern = '['.substitute(join(chars, ''), ' ', '', 'g').']'
63 | silent! exe 'normal! /'.pattern.'\+
'
64 | let @/ = pattern
65 | endfun
66 |
67 | fun! isotope#charset#preview(...)
68 | echom s:ascii
69 | echom repeat('-', winwidth(0))
70 | for [key, val] in items(s:charset)
71 | echom val.' = '.key
72 | endfor
73 | endfun
74 |
75 | let s:ascii = "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
76 | let s:charset = {
77 | \ 'ACUTE' : ' Á Ć É Ǵ í ḰĹḾŃŐṔ Ŕś Ű Ẃ ӲŹ á ć é ǵ í ḱĺḿńőṕ ŕś ú ẃ ӳź ',
78 | \ 'CIRCLED_BLACK' : ' 🄌➊➋➌➍➎➏➐➑➒ 🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩 ',
79 | \ 'CIRCLED_WHITE' : ' ⊛⊕ ⊖⨀⊘⓪①②③④⑤⑥⑦⑧⑨ ⧀⊜⧁ ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ ⦸ ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ ⦶ ',
80 | \ 'CURSIVE' : ' 𝒜ℬ𝒞𝒟ℰℱ𝒢ℋℐ𝒥𝒦ℒℳ𝒩𝒪𝒫𝒬ℛ𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵 𝒶𝒷𝒸𝒹ℯ𝒻ℊ𝒽𝒾𝒿𝓀𝓁𝓂𝓃ℴ𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏 ',
81 | \ 'CURSIVE_BOLD' : ' 𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩 𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃 ',
82 | \ 'DOUBLE_STRUCK' : ' 𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡 𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ 𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫 ',
83 | \ 'FRAKTUR' : ' 𝔄𝔅ℭ𝔇𝔈𝔉𝔊ℌℑ𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔ℜ𝔖𝔗𝔘𝔙𝔚𝔛𝔜ℨ 𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷 ',
84 | \ 'FRAKTUR_BOLD' : ' 𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅 𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟 ',
85 | \ 'INVERTED' : '¡„ ⅋ ‘ ˙ ؛ ¿ ∀ ϽᗡƎℲƃ ſʞ˥ ԀὉᴚ ⊥∩Λ ʎ ‾ ɐ ɔ ǝɟƃɥıɾʞןɯ ɹ ʇ ʌʍ ʎ ',
86 | \ 'MONOSPACE' : ' 𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿 𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉 𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣 ',
87 | \ 'PARENTHESIZED' : ' ⑴⑵⑶⑷⑸⑹⑺⑻⑼ ⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵ ⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵ ',
88 | \ 'REVERSED' : ' ߁ ⁏ ⸮ Ↄ Ǝꟻ ⅃ ᴎ ꟼ ᴙꙄ ↄ ɘꟻ ᴎ ᴙꙅ ∽',
89 | \ 'ROCK_DOTS' : ' ⸚∵ ӟ ÄḄĊḊЁḞĠḦЇ ḲḶṀṄÖṖ ṚṠṪÜṾẄẌŸŻ äḅċḋëḟġḧï ḳḷṁṅöṗ ṛṡẗüṿẅẍÿż ',
90 | \ 'SANS' : ' 𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫 𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹 𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓 ',
91 | \ 'SANS_BOLD' : ' 𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵 𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭 𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇 ',
92 | \ 'SANS_BOLD_ITALIC' : ' 𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕 𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯 ',
93 | \ 'SANS_ITALIC' : ' 𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡 𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻 ',
94 | \ 'SERIF_BOLD' : ' 𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗 𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙 𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳 ',
95 | \ 'SERIF_BOLD_ITALIC' : ' 𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁 𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛 ',
96 | \ 'SERIF_ITALIC' : ' 𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍 𝑎𝑏𝑐𝑑𝑒𝑓𝑔ℎ𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧 ',
97 | \ 'SMALL_CAPS' : ' ᴀʙᴄᴅᴇꜰɢʜɪᴊᴋʟᴍɴᴏᴩ ʀꜱᴛᴜᴠᴡ ᴢ ',
98 | \ 'SQUARED_BLACK' : ' 🅰🅱🅲🅳🅴🅵🅶🅷🅸🅹🅺🅻🅼🅽🅾🅿🆀🆁🆂🆃🆄🆅🆆🆇🆈🆉 ',
99 | \ 'SQUARED_WHITE' : ' ⧆⊞ ⊟⊡⧄ 🄰🄱🄲🄳🄴🄵🄶🄷🄸🄹🄺🄻🄼🄽🄾🄿🅀🅁🅂🅃🅄🅅🅆🅇🅈🅉 ⧅ ',
100 | \ 'STROKED' : ' ƻ ȺɃȻĐɆ ǤĦƗɈꝀŁ ØⱣꝖɌ Ŧᵾ ɎƵ Ⱥƀȼđɇ ǥħɨɉꝁł øᵽꝗɍ ŧᵾ ɏƶ ',
101 | \ 'SUBSCRIPT' : ' ₍₎ ₊ ₋ ₀₁₂₃₄₅₆₇₈₉ ₌ ₐ ₑ ₕᵢⱼₖₗₘₙₒₚ ᵣₛₜᵤᵥ ₓ ',
102 | \ 'SUPERSCRIPT' : ' ⁽⁾ ⁺ ⁻ ⁰¹²³⁴⁵⁶⁷⁸⁹ ⁼ ᴬᴮᶜᴰᴱᶠᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾ ᴿˢᵀᵁⱽᵂ ᵃᵇᶜᵈᵉᶠᵍʰⁱʲᵏˡᵐⁿᵒᵖ ʳˢᵗᵘᵛʷˣʸᶻ ',
103 | \ }
104 |
105 | let s:keys = sort(keys(copy(s:charset)))
106 | let s:lo = char2nr(s:ascii[0])
107 | let s:hi = char2nr(s:ascii[strlen(s:ascii)-1])
108 | let s:undefined = ' '
109 |
110 | let s:active = ''
111 |
--------------------------------------------------------------------------------
/autoload/isotope/diacritic.vim:
--------------------------------------------------------------------------------
1 | " vim: et sw=2 sts=2
2 |
3 | " Plugin: https://github.com/segeljakt/vim-isotope
4 | " Description: Insert special characters with ease.
5 | " Maintainer: Klas Segeljakt
6 | " Resources:
7 | " https://vim.fandom.com/wiki/Create_underlines,_overlines,_and_strikethroughs_using_combining_characters
8 | " https://en.wikipedia.org/wiki/Combining_character
9 |
10 | if exists('s:autoloaded') | finish | el | let s:autoloaded = 1 | en
11 |
12 | fun! isotope#diacritic#attach(bang, line1, line2, ...)
13 | if a:bang
14 | call s:attach(a:line1, a:line2, a:000,
15 | \ {_, v -> s:diacritic_raw[v]})
16 | el
17 | call s:attach(a:line1, a:line2, a:000,
18 | \ {_, v -> s:diacritic_raw[s:diacritic_alias[v]]})
19 | en
20 | endfun
21 |
22 | fun! s:unicode(code)
23 | exe 'return "\u'.a:code.'"'
24 | endfun
25 |
26 | fun! s:attach(line1, line2, args, extractor)
27 | let code = copy(a:args)
28 | let code = map(code, a:extractor)
29 | let code = reverse(code)
30 | let code = map(code, 's:unicode(v:val)')
31 | let code = join(code, '')
32 | silent! exe a:line1.','.a:line2.'s/\%V[^[:cntrl:]]/&'.code.'/ge'
33 | endfun
34 |
35 | fun! isotope#diacritic#complete(ArgLead, CmdLine, CursorPos)
36 | let bang = a:CmdLine =~ 'IsotopeAttach!'
37 | let keys = bang ? s:raw_keys : s:alias_keys
38 | return filter(copy(keys), 'v:val =~ "^'.a:ArgLead.'"')
39 | endfun
40 |
41 | fun! isotope#diacritic#preview()
42 | for [key, val] in items(s:diacritic_raw)
43 | let code = s:unicode(s:diacritic_raw[key])
44 | let text = substitute('123abcABC', '.', '&'.code, 'g')
45 | let alias = get(s:diacritic_reverse_alias, key, '')
46 | if empty(alias)
47 | echom text.' = '.key
48 | el
49 | echom text.' = '.key.' [ '.alias.' ]'
50 | en
51 | echom ' '
52 | endfor
53 | endfun
54 |
55 | " https://en.wikipedia.org/wiki/Combining_character
56 | let s:diacritic_raw = {
57 | \ 'GRAVE_ACCENT' : '0300',
58 | \ 'ACCUTE_ACCENT' : '0301',
59 | \ 'CIRCUMFLEX' : '0302',
60 | \ 'TILDE' : '0303',
61 | \ 'MACRON' : '0304',
62 | \ 'OVERLINE' : '0305',
63 | \ 'BREVE' : '0306',
64 | \ 'DOT_ABOVE' : '0307',
65 | \ 'DIAERESIS' : '0308',
66 | \ 'HOOK_ABOVE ' : '0309',
67 | \ 'RING_ABOVE' : '030A',
68 | \ 'DOUBLE_ACCUTE_ACCENT' : '030B',
69 | \ 'CARON' : '030C',
70 | \ 'VERTICAL_LINE_ABOVE' : '030D',
71 | \ 'DOUBLE_VERTICAL_LINE_ABOVE' : '030E',
72 | \ 'DOUBLE_GRAVE_ACCENT' : '030F',
73 | \ 'CANDRABINDU' : '0310',
74 | \ 'INVERTED_BREVE' : '0311',
75 | \ 'TURNED_COMMA_ABOVE' : '0312',
76 | \ 'COMMA_ABOVE' : '0313',
77 | \ 'REVERSED_COMMA_ABOVE' : '0314',
78 | \ 'COMMA_ABOVE_RIGHT' : '0315',
79 | \ 'GRAVE_ACCENT_BELOW' : '0316',
80 | \ 'ACUTE_ACCENT_BELOW' : '0317',
81 | \ 'LEFT_TACK_BELOW' : '0318',
82 | \ 'RIGHT_TACK_BELOW' : '0319',
83 | \ 'LEFT_ANGLE_ABOVE' : '031A',
84 | \ 'HORN' : '031B',
85 | \ 'LEFT_HALF_RING_BELOW' : '031C',
86 | \ 'UP_TACK_BELOW' : '031D',
87 | \ 'DOWN_TACK_BELOW' : '031E',
88 | \ 'PLUS_SIGN_BELOW' : '031F',
89 | \ 'MINUS_SIGN_BELOW' : '0320',
90 | \ 'PALATIZED_HOOK_BELOW' : '0321',
91 | \ 'RETROFLEX_HOOK_BELOW' : '0322',
92 | \ 'DOT_BELOW' : '0323',
93 | \ 'DIAERESIS_BELOW' : '0324',
94 | \ 'RING_BELOW' : '0325',
95 | \ 'COMMA_BELOW' : '0326',
96 | \ 'CEDILLA' : '0327',
97 | \ 'OGONEK' : '0328',
98 | \ 'VERTICAL_LINE_BELOW' : '0329',
99 | \ 'BRIDGE_BELOW' : '032A',
100 | \ 'INVERTED_DOUBLE_ARCH_BELOW' : '032B',
101 | \ 'CARON_BELOW' : '032C',
102 | \ 'CIRCUMFLEX_ACCENT_BELOW' : '032D',
103 | \ 'BREVE_BELOW' : '032E',
104 | \ 'INVERTED_BREVE_BELOW' : '032F',
105 | \ 'TILDE_BELOW' : '0330',
106 | \ 'MACRON_BELOW' : '0331',
107 | \ 'LOW_LINE' : '0332',
108 | \ 'DOUBLE_LOW_LINE' : '0333',
109 | \ 'TILDE_OVERLAY' : '0334',
110 | \ 'SHORT_STROKE_OVERLAY' : '0335',
111 | \ 'LONG_STROKE_OVERLAY' : '0336',
112 | \ 'SHORT_SOLIDUS_OVERLAY' : '0337',
113 | \ 'LONG_SOLIDUS_OVERLAY' : '0338',
114 | \ 'RIGHT_HALF_RING_BELOW' : '0339',
115 | \ 'INVERTED_BRIDGE_BELOW' : '033A',
116 | \ 'SQUARE_BELOW' : '033B',
117 | \ 'SEAGULL_BELOW' : '033C',
118 | \ 'X_ABOVE' : '033D',
119 | \ 'VERTICAL_TILDE' : '033E',
120 | \ 'DOUBLE_OVERLINE' : '033F',
121 | \ 'GRAVE_TONE_MARK' : '0340',
122 | \ 'ACUTE_TONE_MARK' : '0341',
123 | \ 'GREEK_PERSIPOMENI' : '0342',
124 | \ 'GREEK_KORONIS' : '0343',
125 | \ 'GREEK_DIALYTIKA_TONOS' : '0344',
126 | \ 'GREEK_YPOGEGRAMMENI' : '0345',
127 | \ 'BRIDGE_ABOVE' : '0346',
128 | \ 'EQUALS_SIGN_BELOW' : '0347',
129 | \ 'DOUBLE_VERTICAL_LINE_BELOW' : '0348',
130 | \ 'LEFT_ANGLE_BELOW' : '0349',
131 | \ 'NOT_TILDE_ABOVE' : '034A',
132 | \ 'HOMOTHETIC_ABOVE' : '034B',
133 | \ 'ALMOST_EQUAL_TO_ABOVE' : '034C',
134 | \ 'LEFT_RIGHT_ARROW_BELOW' : '034D',
135 | \ 'UPWARDS_ARROW_BELOW' : '034E',
136 | \ 'GRAPHEME_JOINER' : '034F',
137 | \ 'RIGHT_ARROWHEAD_ABOVE' : '0350',
138 | \ 'LEFT_HALF_RING_ABOVE' : '0351',
139 | \ 'FERMATA' : '0352',
140 | \ 'X_BELOW' : '0353',
141 | \ 'LEFT_ARROWHEAD_BELOW' : '0354',
142 | \ 'RIGHT_ARROWHEAD_BELOW' : '0355',
143 | \ 'RIGHT_ARROWHEAD_AND_UP_ARROWHEAD_BELOW' : '0356',
144 | \ 'RIGHT_HALF_RING_ABOVE' : '0357',
145 | \ 'DOT_ABOVE_RIGHT' : '0358',
146 | \ 'ASTERISK_BELOW' : '0359',
147 | \ 'DOUBLE_RING_BELOW' : '035A',
148 | \ 'ZIGZAG_ABOVE' : '035B',
149 | \ 'DOUBLE_BREVE_BELOW' : '035C',
150 | \ 'DOUBLE_BREVE' : '035D',
151 | \ 'DOUBLE_MACRON' : '035E',
152 | \ 'DOUBLE_MACRON_BELOW' : '035F',
153 | \ 'DOUBLE_TILDE' : '0360',
154 | \ 'DOUBLE_INVERTED_BREVE' : '0361',
155 | \ 'DOUBLE_RIGHTWARDS_ARROW_BELOW' : '0362',
156 | \ 'LATIN_SMALL_LETTER_A' : '0363',
157 | \ 'LATIN_SMALL_LETTER_E' : '0364',
158 | \ 'LATIN_SMALL_LETTER_I' : '0365',
159 | \ 'LATIN_SMALL_LETTER_O' : '0366',
160 | \ 'LATIN_SMALL_LETTER_U' : '0367',
161 | \ 'LATIN_SMALL_LETTER_C' : '0368',
162 | \ 'LATIN_SMALL_LETTER_D' : '0369',
163 | \ 'LATIN_SMALL_LETTER_H' : '036A',
164 | \ 'LATIN_SMALL_LETTER_M' : '036B',
165 | \ 'LATIN_SMALL_LETTER_R' : '036C',
166 | \ 'LATIN_SMALL_LETTER_T' : '036D',
167 | \ 'LATIN_SMALL_LETTER_V' : '036E',
168 | \ 'LATIN_SMALL_LETTER_X' : '036F',
169 | \ 'DOUBLED_CIRCUMFLEX_ACCENT' : '1AB0',
170 | \ 'DIAERESIS_RING' : '1AB1',
171 | \ 'INFINITY' : '1AB2',
172 | \ 'DOWNWARDS_ARROW' : '1AB3',
173 | \ 'TRIPLE_DOT' : '1AB4',
174 | \ 'XX_BELOW' : '1AB5',
175 | \ 'WIGGLY_LINE_BELOW' : '1AB6',
176 | \ 'OPEN_MARK_BELOW' : '1AB7',
177 | \ 'DOUBLE_OPEN_MARK_BELOW' : '1AB8',
178 | \ 'LIGHT_CENTRALIZATION_STROKE_BELOW' : '1AB9',
179 | \ 'STRONG_CENTRALIZATION_STROKE_BELOW' : '1ABA',
180 | \ 'PARENTHESIS_ABOVE' : '1ABB',
181 | \ 'DOUBLE_PARENTHESIS_ABOVE' : '1ABC',
182 | \ 'PARENTHESIS_BELOW' : '1ABD',
183 | \ 'PARENTHESES_OVERLAY' : '1ABE',
184 | \ 'DOTTED_GRAVE_ACCENT' : '1DC0',
185 | \ 'DOTTED_ACUTE_ACCENT' : '1DC1',
186 | \ 'SNAKE_BELOW' : '1DC2',
187 | \ 'SUSPENSION_MARK' : '1DC3',
188 | \ 'MACRON_ACUTE' : '1DC4',
189 | \ 'GRAVE_MACRON' : '1DC6',
190 | \ 'MACRON_GRAVE' : '1DC7',
191 | \ 'ACUTE_MACRON' : '1DC7',
192 | \ 'GRAVE_ACUTE_GRAVE' : '1DC8',
193 | \ 'ACUTE_GRAVE_ACUTE' : '1DC9',
194 | \ 'LATIN_SMALL_LETTER_R_BELOW' : '1DCA',
195 | \ 'BREVE_MACRON' : '1DCB',
196 | \ 'MACRON_BREVE' : '1DCC',
197 | \ 'DOUBLE_CIRCUMFLEX_ABOVE' : '1DCD',
198 | \ 'OGONEK_ABOVE' : '1DCE',
199 | \ 'ZIGZAG_BELOW' : '1DCF',
200 | \ 'IS_BELOW' : '1DD0',
201 | \ 'UR_ABOVE' : '1DD1',
202 | \ 'US_ABOVE' : '1DD2',
203 | \ 'LATIN_SMALL_LETTER_FLATTENED_OPEN_A_ABOVE' : '1DD3',
204 | \ 'LATIN_SMALL_LETTER_AE' : '1DD4',
205 | \ 'LATIN_SMALL_LETTER_AO' : '1DD5',
206 | \ 'LATIN_SMALL_LETTER_AV' : '1DD6',
207 | \ 'LATIN_SMALL_LETTER_C_CEDILLA' : '1DD7',
208 | \ 'LATIN_SMALL_LETTER_INSULAR_D' : '1DD8',
209 | \ 'LATIN_SMALL_LETTER_ETH' : '1DD9',
210 | \ 'LATIN_SMALL_LETTER_G' : '1DDA',
211 | \ 'LATIN_LETTER_SMALL_CAPITAL_G' : '1DDB',
212 | \ 'LATIN_SMALL_LETTER_K' : '1DDC',
213 | \ 'LATIN_SMALL_LETTER_L' : '1DDD',
214 | \ 'LATIN_LETTER_SMALL_CAPITAL_L' : '1DDE',
215 | \ 'LATIN_LETTER_SMALL_CAPITAL_M' : '1DDF',
216 | \ 'LATIN_SMALL_LETTER_N' : '1DE0',
217 | \ 'LATIN_LETTER_SMALL_CAPITAL_N' : '1DE1',
218 | \ 'LATIN_LETTER_SMALL_CAPITAL_R' : '1DE2',
219 | \ 'LATIN_SMALL_LETTER_R_ROTUNDA' : '1DE3',
220 | \ 'LATIN_SMALL_LETTER_S' : '1DE4',
221 | \ 'LATIN_SMALL_LETTER_LONG_S' : '1DE5',
222 | \ 'LATIN_SMALL_LETTER_Z' : '1DE6',
223 | \ 'LATIN_SMALL_LETTER_ALPHA' : '1DE7',
224 | \ 'LATIN_SMALL_LETTER_B' : '1DE8',
225 | \ 'LATIN_SMALL_LETTER_BETA' : '1DE9',
226 | \ 'LATIN_SMALL_LETTER_SCHWA' : '1DEA',
227 | \ 'LATIN_SMALL_LETTER_F' : '1DEB',
228 | \ 'LATIN_SMALL_LETTER_L_WITH_DOUBLE_MIDDLE_TILDE' : '1DEC',
229 | \ 'LATIN_SMALL_LETTER_O_WITH_LIGHT_CENTRALIZATION_STROKE' : '1DED',
230 | \ 'LATIN_SMALL_LETTER_P' : '1DEE',
231 | \ 'LATIN_SMALL_LETTER_ESH' : '1DEF',
232 | \ 'LATIN_SMALL_LETTER_U_WITH_LIGHT_CENTRALIZATION_STROKE' : '1DF0',
233 | \ 'LATIN_SMALL_LETTER_W' : '1DF1',
234 | \ 'LATIN_SMALL_LETTER_A_WITH_DIAERESIS' : '1DF2',
235 | \ 'LATIN_SMALL_LETTER_O_WITH_DIAERESIS' : '1DF3',
236 | \ 'LATIN_SMALL_LETTER_U_WITH_DIAERESIS' : '1DF4',
237 | \ 'UP_TACK_ABOVE' : '1DF5',
238 | \ 'KAVYKA_ABOVE_RIGHT' : '1DF6',
239 | \ 'KAVYKAK_ABOVE_LEFT' : '1DF7',
240 | \ 'DOT_ABOVE_LEFT' : '1DF8',
241 | \ 'WIDE_INVERTED_BRIDGE_BELOW' : '1DF9',
242 | \ 'DELETION_MARK' : '1DFB',
243 | \ 'DOUBLE_INVERTED_BREVE_BELOW' : '1DFC',
244 | \ 'ALMOST_EQUAL_TO_BELOW' : '1DFD',
245 | \ 'LEFT_ARROWHEAD_ABOVE' : '1DFE',
246 | \ 'RIGHT_ARROWHEAD_AND_DOWN_ARROWHEAD_BELOW' : '1DFF',
247 | \ 'LEFT_HARPOON_ABOVE' : '20D0',
248 | \ 'RIGHT_HARPOON_ABOVE' : '20D1',
249 | \ 'LONG_VERTICAL_LINE_OVERLAY' : '20D2',
250 | \ 'SHORT_VERTICAL_LINE_OVERLAY' : '20D3',
251 | \ 'ANTICLOCKWISE_ARROW_ABOVE' : '20D4',
252 | \ 'CLOCKWISE_ARROW_ABOVE' : '20D5',
253 | \ 'LEFT_ARROW_ABOVE' : '20D6',
254 | \ 'RIGHT_ARROW_ABOVE' : '20D7',
255 | \ 'RING_OVERLAY' : '20D8',
256 | \ 'CLOCKWISE_RING_OVERLAY' : '20D9',
257 | \ 'ANTICLOCKWISE_RING_OVERLAY' : '20DA',
258 | \ 'THREE_DOTS_ABOVE' : '20DB',
259 | \ 'FOUR_DOTS_ABOVE' : '20DC',
260 | \ 'ENCLOSING_CIRCLE' : '20DD',
261 | \ 'ENCLOSING_SQUARE' : '20DE',
262 | \ 'ENCLOSING_DIAMOND' : '20DF',
263 | \ 'ENCLOSING_CIRCLE_BACKSLASH' : '20E0',
264 | \ 'LEFT_RIGHT_ARROW_ABOVE' : '20E1',
265 | \ 'ENCLOSING_SCREEN' : '20E2',
266 | \ 'ENCLOSING_KEYCAP' : '20E3',
267 | \ 'ENCLOSING_UPWARD_POINTING_TRIANGLE' : '20E4',
268 | \ 'REVERSE_SOLIDUS_OVERLAY' : '20E5',
269 | \ 'DOUBLE_VERTICAL_STROKE_OVERLAY' : '20E6',
270 | \ 'ANNUITY_SYMBOL' : '20E7',
271 | \ 'TRIPLE_UNDERDOT' : '20E8',
272 | \ 'WIDE_BRIDGE_ABOVE' : '20E9',
273 | \ 'LEFTWARDS_ARROW_OVERLAY' : '20EA',
274 | \ 'LONG_DOUBLE_SOLIDUS_OVERLAY' : '20EB',
275 | \ 'RIGHTWARDS_HARPOON_WITH_BARB_DOWNWARDS' : '20EC',
276 | \ 'LEFTWARDS_HARPOON_WITH_BARB_DOWNWARDS' : '20ED',
277 | \ 'LEFT_ARROW_BELOW' : '20EE',
278 | \ 'RIGHT_ARROW_BELOW' : '20EF',
279 | \ 'ASTERISK_ABOVE' : '20F0',
280 | \ 'LIGATURE_LEFT_HALF' : 'FE20',
281 | \ 'LIGATURE_RIGHT_HALF' : 'FE21',
282 | \ 'DOUBLE_TILDE_LEFT_HALF' : 'FE22',
283 | \ 'DOUBLE_TILDE_RIGHT_HALF' : 'FE23',
284 | \ 'MACRON_LEFT_HALF' : 'FE24',
285 | \ 'MACRON_RIGHT_HALF' : 'FE25',
286 | \ 'CONJOINING_MACRON' : 'FE26',
287 | \ 'LIGATURE_LEFT_HALF_BELOW' : 'FE27',
288 | \ 'LIGATURE_RIGHT_HALF_BELOW' : 'FE28',
289 | \ 'TILDE_LEFT_HALF_HELOW' : 'FE29',
290 | \ 'TILDE_RIGHT_HALF_BELOW' : 'FE2A',
291 | \ 'MACRON_LEFT_HALF_BELOW' : 'FE2B',
292 | \ 'MACRON_RIGHT_HALF_BELOW' : 'FE2C',
293 | \ 'CONJOINING_MACRON_BELOW' : 'FE2D',
294 | \ 'CYRILLIC_TITLO_LEFT_HALF' : 'FE2E',
295 | \ 'CYRILLIC_TITLO_RIGHT_HALF' : 'FE2F',
296 | \ }
297 |
298 | let s:range = '['
299 | \ . nr2char(768) . '-' . nr2char(879) " 0300-036F
300 | \ . nr2char(6832) . '-' . nr2char(6846) " 1AB0 1ABE
301 | \ . nr2char(7616) . '-' . nr2char(7679) " 1DC0 1DFF
302 | \ . nr2char(8400) . '-' . nr2char(8432) " 20D0 20F0
303 | \ . nr2char(65056) . '-' . nr2char(65071) " FE20 FE2F
304 | \ . ']'
305 |
306 | " TODO: Not working currently
307 | fun! isotope#diacritic#search()
308 | exe 'normal! /'.s:range.'\+
'
309 | let @/ = s:range
310 | endfun
311 |
312 | let s:diacritic_alias = {
313 | \ 'a' : 'LATIN_SMALL_LETTER_A',
314 | \ 'b' : 'LATIN_SMALL_LETTER_B',
315 | \ 'c' : 'LATIN_SMALL_LETTER_C',
316 | \ 'd' : 'LATIN_SMALL_LETTER_D',
317 | \ 'e' : 'LATIN_SMALL_LETTER_E',
318 | \ 'f' : 'LATIN_SMALL_LETTER_F',
319 | \ 'g' : 'LATIN_SMALL_LETTER_G',
320 | \ 'h' : 'LATIN_SMALL_LETTER_H',
321 | \ 'i' : 'LATIN_SMALL_LETTER_I',
322 | \ 'k' : 'LATIN_SMALL_LETTER_K',
323 | \ 'l' : 'LATIN_SMALL_LETTER_L',
324 | \ 'm' : 'LATIN_SMALL_LETTER_M',
325 | \ 'n' : 'LATIN_SMALL_LETTER_N',
326 | \ 'o' : 'LATIN_SMALL_LETTER_O',
327 | \ 'p' : 'LATIN_SMALL_LETTER_P',
328 | \ 'r' : 'LATIN_SMALL_LETTER_R',
329 | \ 's' : 'LATIN_SMALL_LETTER_S',
330 | \ 't' : 'LATIN_SMALL_LETTER_T',
331 | \ 'u' : 'LATIN_SMALL_LETTER_U',
332 | \ 'v' : 'LATIN_SMALL_LETTER_V',
333 | \ 'w' : 'LATIN_SMALL_LETTER_W',
334 | \ 'x' : 'LATIN_SMALL_LETTER_X',
335 | \ 'z' : 'LATIN_SMALL_LETTER_Z',
336 | \ 'G' : 'LATIN_LETTER_SMALL_CAPITAL_G',
337 | \ 'L' : 'LATIN_LETTER_SMALL_CAPITAL_L',
338 | \ 'M' : 'LATIN_LETTER_SMALL_CAPITAL_M',
339 | \ 'N' : 'LATIN_LETTER_SMALL_CAPITAL_N',
340 | \ 'R' : 'LATIN_LETTER_SMALL_CAPITAL_R',
341 | \ 'α' : 'LATIN_SMALL_LETTER_ALPHA',
342 | \ 'β' : 'LATIN_SMALL_LETTER_BETA',
343 | \ '()center' : 'PARENTHESES_OVERLAY',
344 | \ '()above' : 'PARENTHESIS_ABOVE',
345 | \ '()below' : 'PARENTHESIS_BELOW',
346 | \ '*above' : 'ASTERISK_ABOVE',
347 | \ '*below' : 'ASTERISK_BELOW',
348 | \ '+below' : 'PLUS_SIGN_BELOW',
349 | \ '--below' : 'DOUBLE_LOW_LINE',
350 | \ '->above' : 'RIGHT_ARROW_ABOVE',
351 | \ '->below' : 'RIGHT_ARROW_BELOW',
352 | \ '-above' : 'DOUBLE_MACRON',
353 | \ '-below' : 'DOUBLE_MACRON_BELOW',
354 | \ '-center' : 'LONG_STROKE_OVERLAY',
355 | \ '...above' : 'THREE_DOTS_ABOVE',
356 | \ '...below' : 'TRIPLE_UNDERDOT',
357 | \ '.above' : 'DOT_ABOVE',
358 | \ '.below' : 'DOT_BELOW',
359 | \ '//center' : 'LONG_DOUBLE_SOLIDUS_OVERLAY',
360 | \ '/center' : 'LONG_SOLIDUS_OVERLAY',
361 | \ '<-center' : 'LEFTWARDS_ARROW_OVERLAY',
362 | \ '<->above' : 'LEFT_RIGHT_ARROW_ABOVE',
363 | \ '<->below' : 'LEFT_RIGHT_ARROW_BELOW',
364 | \ '<-above' : 'LEFT_ARROW_ABOVE',
365 | \ '<-below' : 'LEFT_ARROW_BELOW',
366 | \ '=below' : 'EQUALS_SIGN_BELOW',
367 | \ '\center' : 'REVERSE_SOLIDUS_OVERLAY',
368 | \ '^above' : 'CIRCUMFLEX',
369 | \ '^below' : 'CIRCUMFLEX_ACCENT_BELOW',
370 | \ 'circle' : 'ENCLOSING_CIRCLE',
371 | \ 'diamond' : 'ENCLOSING_DIAMOND',
372 | \ 'keycap' : 'ENCLOSING_KEYCAP',
373 | \ 'ring-above' : 'RING_ABOVE',
374 | \ 'ring-below' : 'RING_BELOW',
375 | \ 'ring-center' : 'RING_OVERLAY',
376 | \ 'square' : 'ENCLOSING_SQUARE',
377 | \ 'triangle' : 'ENCLOSING_UPWARD_POINTING_TRIANGLE',
378 | \ 'vbelow' : 'CARON_BELOW',
379 | \ 'xabove' : 'X_ABOVE',
380 | \ 'xbelow' : 'X_BELOW',
381 | \ 'zabove' : 'ZIGZAG_ABOVE',
382 | \ 'zbelow' : 'ZIGZAG_BELOW',
383 | \ '^|below' : 'UPWARDS_ARROW_BELOW',
384 | \ '|above' : 'VERTICAL_LINE_ABOVE',
385 | \ '|below' : 'VERTICAL_LINE_BELOW',
386 | \ '|center' : 'LONG_VERTICAL_LINE_OVERLAY',
387 | \ 'v|above' : 'DOWNWARDS_ARROW',
388 | \ '~above' : 'TILDE',
389 | \ '~below' : 'TILDE_BELOW',
390 | \ '~center' : 'TILDE_OVERLAY',
391 | \ }
392 |
393 | fun! s:reverse_dict(dict)
394 | let reversed = {}
395 | for [key, val] in items(a:dict)
396 | let reversed[val] = key
397 | endfor
398 | return reversed
399 | endfun
400 |
401 | let s:raw_keys = sort(copy(keys(s:diacritic_raw)))
402 | let s:alias_keys = sort(copy(keys(s:diacritic_alias)))
403 | let s:diacritic_reverse_alias = s:reverse_dict(s:diacritic_alias)
404 |
--------------------------------------------------------------------------------
/doc/isotope.txt:
--------------------------------------------------------------------------------
1 | *isotope.txt* Insert special characters with ease
2 |
3 | vim-isotope
4 | CONTENTS *vim-isotope*
5 |
6 | 1. Introduction ............................... |vim-isotope-introduction|
7 | 2. Requirements ............................... |vim-isotope-requirements|
8 | 3. Commands ................................... |vim-isotope-commands|
9 | 4. Options .................................... |vim-isotope-options|
10 | 5. Miscellaneous .............................. |vim-isotope-misc|
11 |
12 | ==============================================================================
13 | INTRODUCTION *vim-isotope-introduction*
14 |
15 | This plugin provides mappings for inserting characters as ˢᵘᵖᵉʳˢᶜʳⁱᵖᵗˢ,
16 | ₛᵤbₛ꜀ᵣᵢₚₜₛ, u͟n͟d͟e͟r͟l͟i͟n͟e͟, s̶t̶r̶i̶k̶e̶t̶h̶r̶o̶u̶g̶h̶, 𝐒𝐄𝐑𝐈𝐅-𝐁𝐎𝐋𝐃, 𝐒𝐄𝐑𝐈𝐅-𝐈𝐓𝐀𝐋𝐈𝐂,
17 | 𝔉ℜ𝔄𝔎𝔗𝔘ℜ, 𝔻𝕆𝕌𝔹𝕃𝔼-𝕊𝕋ℝ𝕌ℂ𝕂, ᴙƎVƎᴙꙄƎD, INΛƎᴚ⊥Ǝᗡ, ⒸⒾⓇⒸⓁⒺⒹ, and much more.
18 |
19 | A complete list can be found in the README.
20 |
21 | ==============================================================================
22 | REQUIREMENTS *vim-isotope-requirements*
23 |
24 | A Vim version 7.4 or higher is required for basic functionality.
25 |
26 | ==============================================================================
27 | COMMANDS *vim-isotope-commands*
28 |
29 | 1. IsotopeInsert ....................................... |:IsotopeInsert|
30 | 2. IsotopeToggle ....................................... |:IsotopeToggle|
31 | 3. IsotopeAttach ....................................... |:IsotopeAttach|
32 | 4. IsotopeSearch ....................................... |:IsotopeSearch|
33 | 5. IsotopePreview ...................................... |:IsotopePreview|
34 |
35 | ------------------------------------------------------------------------------
36 | *:IsotopeInsert*
37 |
38 | Convert the next typed character into a special character whose class is
39 | specified as an argument.
40 |
41 | >
42 | :IsotopeInsert SERIF_BOLD
43 |
44 | 𝐗
45 | >
46 |
47 | ------------------------------------------------------------------------------
48 | *:IsotopeToggle*
49 |
50 | Toggle on/off conversion into special characters, whose class is specified as
51 | an argument.
52 |
53 | >
54 | :IsotopeToggle FRAKTUR
55 |
56 | 𝔖𝔞𝔪𝔭𝔩𝔢 𝔗𝔢𝔵𝔱
57 | >
58 |
59 | When called without an argument, any current conversion is toggled off.
60 |
61 | ------------------------------------------------------------------------------
62 | *:IsotopeAttach*
63 |
64 | This command can be used in visual mode to attach a diacritic
65 | (combining character) to every character in a visual selection.
66 |
67 | >
68 | :'<,'>IsotopeAttach h e h e
69 |
70 | Sͤͪͤͪaͤͪͤͪmͤͪͤͪpͤͪͤͪlͤͪͤͪeͤͪͤͪ ͤͪͤͪtͤͪͤͪeͤͪͤͪxͤͪͤͪtͤͪͤͪ
71 |
72 | :'<,'>IsotopeAttach *below /center zabove
73 |
74 | S̸͙͛a̸͙͛m̸͙͛p̸͙͛l̸͙͛e̸͙͛ ̸͙͛t̸͙͛e̸͙͛x̸͙͛t̸͙͛
75 |
76 | :'<,'>IsotopeAttach .below .above
77 |
78 | Ṩạ̇ṃ̇ṗ̣ḷ̇ẹ̇ ̣̇ṭ̇ẹ̇ẋ̣ṭ̇
79 |
80 | :'<,'>IsotopeAttach xabove xbelow
81 |
82 | S͓̽a͓̽m͓̽p͓̽l͓̽e͓̽ ͓̽t͓̽e͓̽x͓̽t͓̽
83 |
84 | :'<,'>IsotopeAttach ^below ~below ring-above <->below ~above
85 |
86 | S͍̰͎̃̊ã͍̰͎̊m͍̰͎̃̊p͍̰͎̃̊l͍̰͎̃̊ẽ͍̰͎̊ ͍̰͎̃̊t͍̰͎̃̊ẽ͍̰͎̊x͍̰͎̃̊t͍̰͎̃̊
87 | >
88 |
89 | ------------------------------------------------------------------------------
90 | *:IsotopeAttach!*
91 |
92 | You may also insert diacritics by their raw unicode name through the
93 | `IsotopeAttach!` command:
94 |
95 | >
96 | :'<,'>IsotopeAttach! LATIN_SMALL_LETTER_H LATIN_SMALL_LETTER_E
97 | :'<,'>IsotopeAttach! ASTERISK_BELOW LONG_DOUBLE_SOLIDUS_OVERLAY
98 | :'<,'>IsotopeAttach! DOT_BELOW DOT_ABOVE
99 | :'<,'>IsotopeAttach! X_ABOVE X_BELOW
100 | :'<,'>IsotopeAttach! CIRCUMFLEX_ACCENT_BELOW CIRCUMFLEX TILDE_BELOW
101 | >
102 |
103 | ------------------------------------------------------------------------------
104 | *:IsotopeSearch*
105 |
106 | This command can be used to search special characters.
107 |
108 | >
109 | " Locate all classes of special characters.
110 | :IsotopeSearch
111 |
112 | " Locate specific classes of special characters.
113 | :IsotopeSearch SERIF_BOLD DOUBLE_STRUCK
114 | >
115 |
116 | ------------------------------------------------------------------------------
117 | *:IsotopePreview*
118 |
119 | You can preview the complete list of special characters by running:
120 |
121 | >
122 | :IsotopePreview
123 | >
124 |
125 | ==============================================================================
126 | OPTIONS *vim-isotope-options*
127 |
128 | g:isotope_use_default_mappings .......... |g:isotope_use_default_mappings|
129 |
130 | ------------------------------------------------------------------------------
131 | *g:isotope_use_default_mappings*
132 | Type: bool ~
133 | Default: v:true ~
134 |
135 | The default mappings are:
136 |
137 | >
138 | " Superscript/subscript/circled-white
139 | inoremap :IsotopeInsert SUPERSCRIPT
140 | inoremap :IsotopeInsert SUBSCRIPT
141 | inoremap :IsotopeInsert CIRCLED_WHITE
142 |
143 | inoremap :IsotopeToggle SUPERSCRIPT
144 | inoremap :IsotopeToggle SUBSCRIPT
145 | inoremap :IsotopeToggle CIRCLED_WHITE
146 |
147 | " Underline
148 | vnoremap :IsotopeAttach -below
149 | >
150 |
151 | If set to `v:false`, do not use the default mappings.
152 |
153 | >
154 | let g:isotope_use_default_mappings = v:false
155 | >
156 |
157 |
158 | ==============================================================================
159 | MISCELLANEOUS *isotope-misc*
160 |
161 | By default, Vim can display 2 diacritics on top of each other. You can raise
162 | this limit through the 'maxcombine' option. The maximum is 6:
163 |
164 | >
165 | set maxcombine=6
166 | >
167 |
168 | You may also want to toggle on the 'delcombine' option which allows you to
169 | remove diacritics without deleting the character they are attached to.
170 |
171 | >
172 | set delcombine
173 | >
174 |
175 | ==============================================================================
176 | " vim:tw=78:ts=4:sts=4:sw=4:ft=help:norl:
177 |
--------------------------------------------------------------------------------
/plugin/isotope.vim:
--------------------------------------------------------------------------------
1 | " vim: et sw=2 sts=2
2 |
3 | " Plugin: https://github.com/segeljakt/vim-isotope
4 | " Description: Insert special characters with ease.
5 | " Maintainer: Klas Segeljakt
6 |
7 | com!
8 | \ -range
9 | \ -nargs=+
10 | \ -bang
11 | \ -complete=customlist,isotope#diacritic#complete
12 | \ IsotopeAttach
13 | \ call isotope#diacritic#attach(0, , , )
14 |
15 | com!
16 | \ -nargs=?
17 | \ -complete=customlist,isotope#charset#complete
18 | \ IsotopeToggle call isotope#charset#toggle()
19 |
20 | com!
21 | \ -nargs=?
22 | \ -complete=customlist,isotope#charset#complete
23 | \ IsotopeInsert
24 | \ call isotope#charset#insert()
25 |
26 | com!
27 | \ -nargs=*
28 | \ -complete=customlist,isotope#charset#complete
29 | \ IsotopeSearch
30 | \ silent! call isotope#charset#search()
31 |
32 | com!
33 | \ -nargs=0
34 | \ IsotopePreview
35 | \ call isotope#preview()
36 |
37 | " Default settings
38 |
39 | if get(g:, 'isotope_use_default_mappings', v:true)
40 | silent! ino :IsotopeToggle SUPERSCRIPT
41 | silent! ino :IsotopeToggle SUBSCRIPT
42 | silent! ino :IsotopeInsert SUPERSCRIPT
43 | silent! ino :IsotopeInsert SUBSCRIPT
44 | en
45 |
--------------------------------------------------------------------------------