3
0

More than 3 years have passed since last update.

nvim-qtで日本語入力時に,textwidthに従って自動改行してほしい場合の対処

Last updated at Posted at 2020-04-19

問題

Kaoriyaさんのgvimでは,日本語入力時にtextwidthを設定していた場合,自動改行される.

kaoriya版gvimの挙動

gvim_tw.gif

しかし,nvim-qtでは,textwidthを設定しても日本語が自動改行されない.
(スペース入力後の文字列のみ改行される)

nvim-qtの標準挙動

nvim_tw.gif

対処

formatoptionsmMを設定することで,textwidthに従った日本語の自動改行が行われるようになる.設定方法は,以下のコマンド

:set formatoptions+=mM
      または
:set fo+=mM

set fo+=mMを実行後のnvim-qtの挙動

nvim_tw_x.gif

おわりに

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コマンドを入力することで再整形される.

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0