*ft_raku.txt*	Raku プログラミング言語ファイルタイプ

                                                      *vim-raku*

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://docs.raku.org/language/unicode_ascii )、Unicode 演算子の全範囲が使える
のが望しい。あなたのオペレーティングシステムが入力環境を提供していても、Vim 組
み込み機能を使うのが望しいだろう。

自然な方法でこれらの記号を Vim 内に出すにはダイグラフショートカットを使う
(:help |digraphs-use|)。多くの記号が定義されており、`:digraphs` とタイプするこ
とでその一覧が得られる。便利な方法として、ダイグラフの一覧をファイルに保存して
それを読んでもよい。シェルからなら: >
        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('⊖')
	" オイラー数/ネイピア数
	exec 'digraph ne ' .. char2nr('𝑒')
	" Raku の atomic 演算子記号
	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 τ
<
 vim:tw=78:ts=8:noet:ft=help:norl:
