はじめに
Neovimでは、今までvimrcに当たり前のように書いていたオプションがデフォルトで設定されています。:h vim_diff.txt
の出だしに載っているものを紹介します。
機能
Syntax highlighting
デフォルトで有効。
:filetype plugin indent on
デフォルトで有効。
オプション
autoindent
改行時にインデントが保持される。
autoread
vimで開いているファイルが外部で変更されたときに自動で読み直す。
background
デフォルトでdark
。
backspace
デフォルトでindent,eol,start
。バックスペースの挙動をよくあるように。
backupdir
デフォルトは~/.local/share/nvim/backup
。'backup'
がオンの場合、ファイルを上書きする前にバックアップが作られる。
belloff
デフォルトでall
。全てのイベントでベルが鳴らない。
complete
vimのデフォルトである.,w,b,u,t,i
からi
を除いた.,w,b,u,t
がNeovimのデフォルト。
キーワード補完の対象から、インクルードされるファイルが除かれている。
残った対象はバッファとタグ。
cscopeverbose
デフォルトでオン。cscopeのデータベースに情報を追加するときメッセージが表示される。
cscopeはctagsのようなツール。
directory
デフォルトは~/.local/share/nvim/swap//
。スワップファイル用のディレクトリ。
display
デフォルトはlastline,msgsep
。
lastline | ウィンドウの最後の行ができるだけ多く表示される。謎。 |
msgsep | メッセージが'cmdheight' より長いとき、画面全体ではなくメッセージ行だけスクロールする。 |
encoding
デフォルトはUTF-8
。Neovim内部とRPC通信に使われるエンコーディング。
RPCはリモートプラグインで使われる。
fillchars
デフォルトはvert:│,fold:·
。垂直分割の区切り文字と畳込んだ所の文字。
formatoptions
デフォルトはtcqj
。自動整形の方法を決める。vimに対してj
が追加されている。
t | 'textwidth'を使ってテキストを自動折返しする |
c | 同上。コメントだったらコメント開始文字を自動挿入する |
q | gq でコメントを整形する |
j | 複数行のコメントを連結する際に、余計なコメント開始文字を消す |
fsync
デフォルトでオフ。vimではオンになっている。
オンになっていると:write
の後などにOSのfsync()が呼ばれ、メモリからストレージに書き込まれる。
Neovimの場合、CursorHold
イベントやNeovimが異常終了したときなどに書き込まれるためオフになっている。
history
デフォルトで10000。EXコマンドと検索パターンの履歴数。
hlsearch
デフォルトでオン。検索文字がハイライトされる。
incsearch
デフォルトでオン。インクリメンタルサーチ。
langnoremap
デフォルトでオン。Neovimではdeprecated。気にする必要なし。
langremap
デフォルトでオフ。'langmap'
を無効にする。'langmap'
は、キー入力をギリシャ語等の言語に切り替えることができるオプション。
laststatus
デフォルトで2。ステータスラインを常に表示。
listchars
デフォルトはtab:> ,trail:-,nbsp:+
。nbsp。nbspはnon-breakable spaceで0xA0やU+202F等。
モード時の表示文字で、
'list''list'
はタブ文字や行末を文字で表示するオプション。
compatible
デフォルトでオフ。vi互換を無くす。
vimはvimrcがあればオフになっていたが、Neovimでは常にオフ。
nrformats
デフォルトはbin,hex
。i_CTRL-A
,i_CTRL_X
を使うときの進数。
vimからoctal
が除かれており、0始まりを8進数とみなさない。
0x,0bから始まる数をそれぞれ16進数、2進数と認識する。
ruler
デフォルトでオン。カーソルの位置を表示する。
sessionoptions
vimに対して、"options"
が除かれている。:mksession
にオプションとマッピングが含まれない。
その場限りのオプションの変更やマッピングは保存しないということ。
shortmess
デフォルトは"F"
。Neovimの様々な表示を短くするオプション。"F"
はコマンドに対する:silent
のように、ファイル編集中にファイル情報を表示しない。
showcmd
デフォルトでオン。右下にコマンドが表示される。
sidescroll
デフォルトで1。水平スクロールの刻み幅。vimでは0。
smarttab
デフォルトでオン。'shiftwidth'
,'tabstop'
,'softtabstop'
,'expandtab'
をみてタブを快適に扱える。
tabpagemax
デフォルトで50。タブページの最大数。vimでは10。
tags
デフォルトは./tags;,tags
。tagコマンドで使うファイル名。
ttimeoutlen
デフォルトで50。キーコードの完了を待つ時間。ミリ秒。
vimとは違いマッピングとは関係がない。
ttyfast
常にオン。Neovimでは削除されている。
undodir
デフォルトは~/.local/share/nvim/undo
。アンドゥファイル用のディレクトリ。
viminfo
デフォルトで"!"
が含まれている。アルファベットの大文字で始まり、小文字を含まないグローバル変数を保存・復元する。
wildmenu
デフォルトでオン。コマンドライン補完で候補が表示される。