問題
Kaoriyaさんのgvimでは,日本語入力時にtextwidth
を設定していた場合,自動改行される.
kaoriya版gvimの挙動
しかし,nvim-qtでは,textwidth
を設定しても日本語が自動改行されない.
(スペース入力後の文字列のみ改行される)
nvim-qtの標準挙動
対処
formatoptions
にmM
を設定することで,textwidth
に従った日本語の自動改行が行われるようになる.設定方法は,以下のコマンド
:set formatoptions+=mM
または
:set fo+=mM
set fo+=mM
を実行後のnvim-qtの挙動
おわりに
nvim-qtでも日本語の自動改行を行うための対処を示した.なお,この方法では禁則処理に対応できない.kaoriyaさんのgvimでは禁則処理に対応できているので,そちらはソースコードレベルで対処しているのかなと思っている.
追記
kaoriyaさんのgvimでの禁則処理対応は,autofmtというプラグインによるものだった.このため,このプラグインを利用することで,nvim-qtでも,kaoriyaさんのgvimと同様の日本語自動改行が可能となる.
禁則処理対応
プラグインマネージャとしてdeinを使用している場合の例を示す.以下の記述をInit.vim内に加える.
Init.vim
if dein#load_state('~/.cache/dein')
...
call dein#add('vim-jp/autofmt') " <<追加
...
endif
set formatexpr=autofmt#japanese#formatexpr() " <<追加
これにより,禁則処理が行われるようになる.フォーマットがずれる場合は,Visualモードで該当行を選択した後,gq
コマンドを入力することで再整形される.