emacs26からの行番号表示がddskk入力時にガタつくのを防ぐ


Emacs26までは、行番号の表示をemacs lispで頑張るというアプローチがために、重たくてなかなか使いどころに困る問題があったが、Emacs26では、待望の Cで書かれた組み込みの行番号表示である、 display-line-numbers-mode が導入された。これは軽くてたいへん便利なのであるが、使っていて、ひとつめちゃくちゃ気になる問題があった。

それはごらんの通り、ddskkで日本語を入力するときに行番号の表示がずれて、がたがたとなり見辛いのである。

/ox-hugo/display-line-numbers-mode-gatagata.gif

これには困っていたのだけど、言語化しづらいところもあり解決策が見付けられなかったが、ソースコード見てパラメータいじってたら以下のパラメータを有効化することでがたつかなくなることがわかった。

(global-display-line-numbers-mode t)
(custom-set-variables '(display-line-numbers-width-start t))

先程のgifと見比べてみると今度はまったくがたつきがないのがわかる。

/ox-hugo/display-line-numbers-mode-not-gatagata.gif

今のところ、この設定で困ったことはなく、強いて言えば、見比べてみるとわかるが、はじめから行番号のスペースが広めにとられてしまっている。そのため、少し画面サイズは小さくなっているものの、これで快適な行番号生活をおくることができる。


See also