| *ft_raku.txt* The Raku programming language filetype |
| |
| *vim-raku* |
| |
| Vim-raku provides syntax highlighting, indentation, and other support for |
| editing Raku programs. |
| |
| 1. Using Unicode in your Raku files |raku-unicode| |
| |
| ============================================================================== |
| 1. Using Unicode in your Raku files *raku-unicode* |
| |
| Defining new operators using Unicode symbols is a good way to make your |
| Raku program easy to read. See: |
| https://perl6advent.wordpress.com/2012/12/18/day-18-formulas-resistance-is-futile/ |
| |
| While Raku does define ASCII alternatives for some common operators (see |
| https://docs.raku.org/language/unicode_ascii), using the full range of |
| Unicode operators is highly desirable. Your operating system provides input |
| facilities, but using the features built in to Vim may be preferable. |
| |
| The natural way to produce these symbols in Vim is to use digraph shortcuts |
| (:help |digraphs-use|). Many of them are defined; type `:digraphs` to get |
| the list. A convenient way to read the list of digraphs is to save them in a |
| file. From the shell: > |
| vim +'redir >/tmp/vim-digraphs-listing.txt' +digraphs +'redir END' +q |
| |
| Some of them are available with standard Vim digraphs: |
| << « /0 ∅ !< ≮ ~ |
| >> » Ob ∘ !> ≯ ~ |
| ., … 00 ∞ (C ⊂ ~ |
| (U ∩ -: ÷ )C ⊃ ~ |
| )U ∪ (_ ⊆ >= ≥ ~ |
| ?= ≅ )_ ⊇ =< ≤ ~ |
| (- ∈ ?= ≅ != ≠ ~ |
| -) ∋ ?- ≃ ~ |
| |
| The Greek alphabet is available with '*' followed by a similar Latin symbol: |
| *p π ~ |
| *t τ ~ |
| *X × ~ |
| |
| Numbers, subscripts and superscripts are available with 's' and 'S': |
| 0s ₀ 0S ⁰ ~ |
| 1s ₁ 1S ¹ ~ |
| 2s ₂ 9S ⁹ ~ |
| |
| But some don't come defined by default. Those are digraph definitions you can |
| add in your ~/.vimrc file. > |
| exec 'digraph \\ ' .. char2nr('∖') |
| exec 'digraph \< ' .. char2nr('≼') |
| exec 'digraph \> ' .. char2nr('≽') |
| exec 'digraph (L ' .. char2nr('⊈') |
| exec 'digraph )L ' .. char2nr('⊉') |
| exec 'digraph (/ ' .. char2nr('⊄') |
| exec 'digraph )/ ' .. char2nr('⊅') |
| exec 'digraph )/ ' .. char2nr('⊅') |
| exec 'digraph U+ ' .. char2nr('⊎') |
| exec 'digraph 0- ' .. char2nr('⊖') |
| " Euler's constant |
| exec 'digraph ne ' .. char2nr('𝑒') |
| " Raku's atomic operations marker |
| exec 'digraph @@ ' .. char2nr('⚛') |
| |
| Alternatively, you can write Insert mode abbreviations that convert ASCII- |
| based operators into their single-character Unicode equivalent. > |
| iabbrev <buffer> !(<) ⊄ |
| iabbrev <buffer> !(<=) ⊈ |
| iabbrev <buffer> !(>) ⊅ |
| iabbrev <buffer> !(>=) ⊉ |
| iabbrev <buffer> !(cont) ∌ |
| iabbrev <buffer> !(elem) ∉ |
| iabbrev <buffer> != ≠ |
| iabbrev <buffer> (&) ∩ |
| iabbrev <buffer> (+) ⊎ |
| iabbrev <buffer> (-) ∖ |
| iabbrev <buffer> (.) ⊍ |
| iabbrev <buffer> (<) ⊂ |
| iabbrev <buffer> (<+) ≼ |
| iabbrev <buffer> (<=) ⊆ |
| iabbrev <buffer> (>) ⊃ |
| iabbrev <buffer> (>+) ≽ |
| iabbrev <buffer> (>=) ⊇ |
| iabbrev <buffer> (\|) ∪ |
| iabbrev <buffer> (^) ⊖ |
| iabbrev <buffer> (atomic) ⚛ |
| iabbrev <buffer> (cont) ∋ |
| iabbrev <buffer> (elem) ∈ |
| iabbrev <buffer> * × |
| iabbrev <buffer> **0 ⁰ |
| iabbrev <buffer> **1 ¹ |
| iabbrev <buffer> **2 ² |
| iabbrev <buffer> **3 ³ |
| iabbrev <buffer> **4 ⁴ |
| iabbrev <buffer> **5 ⁵ |
| iabbrev <buffer> **6 ⁶ |
| iabbrev <buffer> **7 ⁷ |
| iabbrev <buffer> **8 ⁸ |
| iabbrev <buffer> **9 ⁹ |
| iabbrev <buffer> ... … |
| iabbrev <buffer> / ÷ |
| iabbrev <buffer> << « |
| iabbrev <buffer> <<[=]<< «=« |
| iabbrev <buffer> <<[=]>> «=» |
| iabbrev <buffer> <= ≤ |
| iabbrev <buffer> =~= ≅ |
| iabbrev <buffer> >= ≥ |
| iabbrev <buffer> >> » |
| iabbrev <buffer> >>[=]<< »=« |
| iabbrev <buffer> >>[=]>> »=» |
| iabbrev <buffer> Inf ∞ |
| iabbrev <buffer> atomic-add-fetch ⚛+= |
| iabbrev <buffer> atomic-assign ⚛= |
| iabbrev <buffer> atomic-fetch ⚛ |
| iabbrev <buffer> atomic-dec-fetch --⚛ |
| iabbrev <buffer> atomic-fetch-dec ⚛-- |
| iabbrev <buffer> atomic-fetch-inc ⚛++ |
| iabbrev <buffer> atomic-inc-fetch ++⚛ |
| iabbrev <buffer> atomic-sub-fetch ⚛−= |
| iabbrev <buffer> e 𝑒 |
| iabbrev <buffer> o ∘ |
| iabbrev <buffer> pi π |
| iabbrev <buffer> set() ∅ |
| iabbrev <buffer> tau τ |
| < |
| vim:tw=78:ts=8:noet:ft=help:norl: |