どのタイミングからなのかわかりませんが、macOS版RStudioのスクリプトエディタで、一部の日本語フォントを指定した場合、一部の記号類(→や□など)を含む行でカーソルがズレるようになりました。
問題の詳細
例えば、「神田→東京→有楽町」という文字列があって、カーソルが「神田」の「田」の右にあるとします。(スクリーンショットのフォントはOsaka-Monoです。)
右カーソルキーを押すと、カーソルが「→」と「東」の間に来てくれることを期待しますが、実際には矢印の上にカーソルが移動します。この状態でdeleteキー(WindowsのBackSpaceに相当)を押すと、「→」が消えます。
「→」ひとつにつきカーソルがおよそ0.5文字分ずれるようで、右カーソルキーを押してもカーソルは「有楽町」の「楽」と「町」の間までしか進みません。その状態でdeleteキーを押すと、「町」が消えます。
原因
→や□などの記号文字は欧文フォントと日本語フォントで同じユニコードが当てられており、欧文フォントでは半角、日本語フォントでは全角で表示されるのが一般的ですが、RStudioがこれを適切に処理できないことが原因のようです。
回避方法
①欧文フォントを使う
Andale Mono、CourierNewPSMTなどの欧文フォントを使えば、カーソルがずれることはなくなります。日本語の文字は(おそらく別の日本語フォントで)表示されますが、文字間隔が空いてしまい、見栄えが悪くなります。(下の画像はCourierNewPSMT)
②記号類を半角表示する日本語フォントを使う
たとえば、UDEV Gothicのユニバーサルデザインフォントの BIZ UDゴシック と、 開発者向けフォントの JetBrains Mono を合成したフォントですが、これの「文字幅比率 半角1:全角2版」を使うとカーソルがずれなくなります。自分はこちらの方法をとっています。
問題としては、フォントのインストールが必要なことと、記号類が半角表示されて詰まり気味になることででしょうか。
自分の環境
- macOS Sonoma 14.4.1
- RStudio 2023.12.1+402
- R version 4.4.0