Ft_raku

Nvim :help 页面,生成 使用 tree-sitter-vimdoc 解析器。


Vim-raku 提供语法高亮、缩进和编辑 Raku 程序的其他支持。
1. 在您的 Raku 文件中使用 Unicode raku-unicode

1. 在您的 Raku 文件中使用 Unicode raku-unicode

使用 Unicode 符号定义新的运算符是使您的 Raku 程序易于阅读的好方法。参见:https://perl6advent.wordpress.com/2012/12/18/day-18-formulas-resistance-is-futile/
虽然 Raku 确实为一些常见的运算符定义了 ASCII 替代方案(参见 https://raku-docs.perl5.cn/language/unicode_ascii),但使用全面的 Unicode 运算符范围非常理想。您的操作系统提供了输入功能,但使用 Vim 中内置的功能可能更可取。
在 Vim 中生成这些符号的自然方式是使用二字符快捷键 (:help digraphs-use)。其中许多已定义;键入 :digraphs 获取列表。阅读二字符列表的一种便捷方式是将它们保存在文件中。从 shell
vim +'redir >/tmp/vim-digraphs-listing.txt' +digraphs +'redir END' +q
其中一些可以通过标准 Vim 二字符使用
<< « /0 ∅ !< ≮
>> » Ob ∘ !> ≯
., … 00 ∞ (C ⊂
(U ∩ -: ÷ )C ⊃
)U ∪ (_ ⊆ >= ≥
?= ≅ )_ ⊇ =< ≤
(- ∈ ?= ≅ != ≠
-) ∋ ?- ≃
希腊字母可以通过“*”后跟类似的拉丁字母使用
*p π
*t τ
*X ×
数字、下标和上标可以使用“s”和“S”使用
0s ₀ 0S ⁰
1s ₁ 1S ¹
2s ₂ 9S ⁹
但一些默认情况下未定义。这些是您可以在您的 ~/.vimrc 文件中添加的二字符定义。
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('⚛')
或者,您可以编写插入模式缩写,将基于 ASCII 的运算符转换为其单字符 Unicode 等效项。
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 τ
命令索引
快速参考