IPA symbols in Sublime Text
Sublime Text is my text editor of choice, and I often use it during class (online or in person) to make plain notes on the screen. I often need to type IPA symbols, and while there are several options to do that, it’s nice to be able to do it quickly on Sublime so I don’t have to use my mouse nor leave the app (e.g., I also use LaTeXit, but mostly for non-linear structures). Ultimately, I want to be able to do it quickly, since anything too convoluted will have been done before, not during, class.
Sublime completions
One easy way to do that is to create a .sublime-completions
file containing different IPA symbols. Simply put, this allows you to create a list of substitutions that are triggered by specific characters. Once you’ve created the file, place it in the following location: .../Library/Application Support/Sublime Text/Packages/User/
.
Here’s an example: {"trigger": "ae-æ", "contents": "æ"}
. Here, the trigger is ae
, that’s what you’d need to type before hitting Tab
. The contents
bit is the symbol you want to insert. The reason why I like to have the symbol in the trigger as well is because you can preview the symbol before selecting it. That’s useful because the triger is greedy: if you press a
and hit Tab
, all triggers containing a
will be listed (see gif below), regardless of the position of the character in the trigger. This is especially important since you’ll want to have intuitive shortcuts. In the file example at the bottom of the page, I use some of the tipa
shortcuts, but it doesn’t really matter in the end considering the greedy matching of triggers.1
Limitations
There are two minor limitations, which shouldn’t be an issue given that the goal here is simply to type some IPA symbols when taking notes during class. First, while you can add diacritics (see file below), the example here won’t work for diacritics on top of or under segments (unless you include host and diacritic together). So you can add stress and length diacritics, but adding devoicing to a segment won’t work. Second, you need a space between symbols to activate triggers with Tab
(see gif).
ipa.sublime-completions
{
"completions": [
// Vowels:
{"trigger": "ae-æ", "contents": "æ"},
{"trigger": "OE-ɶ", "contents": "ɶ"},
{"trigger": "A-ɑ", "contents": "ɑ"},
{"trigger": "6-ɒ", "contents": "ɒ"},
{"trigger": "5-ɐ", "contents": "ɐ"},
{"trigger": "schwar-ɚ", "contents": "ɚ"},
{"trigger": "schwa-ə", "contents": "ə"},
{"trigger": "Er-ɝ", "contents": "ɝ"},
{"trigger": "E-ɛ", "contents": "ɛ"},
{"trigger": "oe-œ", "contents": "œ"},
{"trigger": "3-ɜ", "contents": "ɜ"},
{"trigger": "E-ɞ", "contents": "ɞ"},
{"trigger": "2-ʌ", "contents": "ʌ"},
{"trigger": "O-ɔ", "contents": "ɔ"},
{"trigger": "o-ø", "contents": "ø"},
{"trigger": "9-ɘ", "contents": "ɘ"},
{"trigger": "8-ɵ", "contents": "ɵ"},
{"trigger": "7-ɤ", "contents": "ɤ"},
{"trigger": "I-ɪ", "contents": "ɪ"},
{"trigger": "Y-ʏ", "contents": "ʏ"},
{"trigger": "U-ʊ", "contents": "ʊ"},
{"trigger": "1-ɨ", "contents": "ɨ"},
{"trigger": "0-ʉ", "contents": "ʉ"},
{"trigger": "W-ɯ", "contents": "ɯ"},
// Consonants:
{"trigger": "t-ʈ", "contents": "ʈ"},
{"trigger": "d-ɖ", "contents": "ɖ"},
{"trigger": "j-ɟ", "contents": "ɟ"},
{"trigger": "g-ɢ", "contents": "ɢ"},
{"trigger": "P-ʔ", "contents": "ʔ"},
{"trigger": "M-ɱ", "contents": "ɱ"},
{"trigger": "n-ɳ", "contents": "ɳ"},
{"trigger": "N-ŋ", "contents": "ŋ"},
{"trigger": "n-ɴ", "contents": "ɴ"},
{"trigger": "B-ʙ", "contents": "ʙ"},
{"trigger": "r-ʀ", "contents": "ʀ"},
{"trigger": "v-ⱱ", "contents": "ⱱ"},
{"trigger": "r-ɾ", "contents": "ɾ"},
{"trigger": "r-ɽ", "contents": "ɽ"},
{"trigger": "F-ɸ", "contents": "ɸ"},
{"trigger": "B-β", "contents": "β"},
{"trigger": "T-θ", "contents": "θ"},
{"trigger": "D-ð", "contents": "ð"},
{"trigger": "S-ʃ", "contents": "ʃ"},
{"trigger": "Z-ʒ", "contents": "ʒ"},
{"trigger": "s-ʂ", "contents": "ʂ"},
{"trigger": "z-ʐ", "contents": "ʐ"},
{"trigger": "j-ʝ", "contents": "ʝ"},
{"trigger": "G-ɣ", "contents": "ɣ"},
{"trigger": "X-χ", "contents": "χ"},
{"trigger": "R-ʁ", "contents": "ʁ"},
{"trigger": "h-ħ", "contents": "ħ"},
{"trigger": "Q-ʕ", "contents": "ʕ"},
{"trigger": "h-ɦ", "contents": "ɦ"},
{"trigger": "l-ɬ", "contents": "ɬ"},
{"trigger": "lZ-ɮ", "contents": "ɮ"},
{"trigger": "v-ʋ", "contents": "ʋ"},
{"trigger": "r-ɹ", "contents": "ɹ"},
{"trigger": "r-ɻ", "contents": "ɻ"},
{"trigger": "w-ɰ", "contents": "ɰ"},
{"trigger": "l-ɭ", "contents": "ɭ"},
{"trigger": "L-ʎ", "contents": "ʎ"},
{"trigger": "l-ʟ", "contents": "ʟ"},
{"trigger": "hui-ɥ", "contents": "ɥ"},
// Diacritics:
{"trigger": "ps-ˈ", "contents": "ˈ"},
{"trigger": "ss-ˈ", "contents": "ˌ"},
{"trigger": "long-ː", "contents": "ː"},
{"trigger": "l-l̥", "contents": "l̥"},
{"trigger": "r-ɹ̥", "contents": "ɹ̥"},
{"trigger": "tS-t͡ʃ", "contents": "t͡ʃ"},
{"trigger": "dZ-d͡ʒ", "contents": "d͡ʒ"},
{"trigger": "ts-t͡s", "contents": "t͡s"},
{"trigger": "dz-d͡z", "contents": "d͡z"},
{"trigger": "p-p̚", "contents": "p̚"},
{"trigger": "t-t̚", "contents": "t̚"},
{"trigger": "k-k̚", "contents": "k̚"},
{"trigger": "i-i̥", "contents": "i̥"},
{"trigger": "u-u̥", "contents": "u̥"},
// Greek letters:
{"trigger": "alpha-⍺", "contents": "⍺"},
{"trigger": "beta-β", "contents": "β"},
{"trigger": "gamma-Ɣ", "contents": "Ɣ"},
{"trigger": "sigma-σ", "contents": "σ"},
{"trigger": "Sigma-Σ", "contents": "Σ"},
{"trigger": "mu-µ", "contents": "µ"},
]
}
Copyright © 2024 Guilherme Duarte Garcia
Footnotes
You may have noticed that snippets are also summoned by
Tab
(lorem
in the gif). You can delete thelorem
snipped by installingPackageResourceViewer
. Then, go toPackageResourceViewer: Open Resource
from the command palette. Next, chooseText
,Snippets
,lorem.sublime-snippet
. Simply delete the text, save, and restart Sublime Text.↩︎