Neovim-jp Neovim.jp

NVim と Vim の相違点

設定

- 設定を保存するため、'.vimrc' のかわりに '.nvimrc' を使用します。
- 設定ファイル群の保存で '.vim' のかわりに '.nvim' を使用します。
- 永続セッション情報は '.viminfo' のかわりに '.nviminfo' を使用します。

デフォルトのオプション

'autoindent' のセット - インデントを現在の行から新規の行にコピーする
'autoread' のセット - 開いている未変更ファイルが Vim の外部で変更された場合自動的に読み込む
'backspace' を "indent,eol,start" に - バックスペースの働きを変える
'complete' に "i" を含まない - キーワード補完にインクルードされるファイルを含まない
'display' を "lastline" に - ウィンドウの最後の行が収まりきらなくてもできる限り表示する
'encoding' を "utf-8" に - Vim 内部の文字エンコーディングを utf-8 に統一
'formatoptions' を "tcqj" に - Vim の動作 "tcq" に加えてコメントリーダーを削除する動作 "j" を追加
'history' を 10000 に - 履歴の保存数を最大の 10000 にする
'hlsearch' のセット - 前回の検索パターンがある場合すべての一致を強調表示する
'incsearch' のセット - インクリメンタルサーチ
'langnoremap' のセット - マッピング文字に "langmap" の設定を適用しない
'mouse' を "a" に - すべての場合にマウスを有効にする、元は "" (すべて無効)
'nocompatible' を常にセット - ('compatible' を削除したため)
'nrformats' を "hex" に - 元は "octal,hex"、つまり8進数の認識を停止した
'sessionoptions' に "options" を含まない - すべてのオプションとマッピングを 'mksession' で保存しない
'smarttab' をセット - タブを打ち込んだときの 'shiftwidth' の扱いを変える
'tabpagemax' を 50 に - コマンドライン引数 '-p' や ":tab all" で開かれるタブページの最大数。Vim では 10
'tags' を "./tags;,tags" に - タグコマンドで必要なタグファイル名のリスト、Vim では "./tags,tags"
'ttyfast' を常にセット - (低速ターミナル接続という考え方がなくなった)
'viminfo' に "!" を含む - .nviminfo に大文字で始まり小文字を含まないグローバル変数を保存、復元する
'wildmenu' をセット - コマンドライン補完を拡張モードにする
'wildmode' を "list:longest,full" に - 補完モードの動作を変える、Vim では "full"

変更された機能

Nvim は、特定の機能をコンパイル時に有効/無効にする Vim とは対照的に、すべての機能をビルドします。これは、Vim の HUGE ビルド (Nvim は Vim の HUGE ビルドよりも小さいですが) のみのリリースであるようなものです。

Python インタプリタは、$PATH が通っている場合、:python と :python3 のどちらも常に利用可能で、独立したプラグインを同時に使用できます。Nvim では Python プラグインを使用するために 'neovim' pip パッケージをインストールする必要があります。

mkdir() の動作が変更されました:
1. /tmp/foo が存在しない場合、/tmp に mkdir('/tmp/foo/bar', 'p', 0700) を実行すると /tmp/foo と /tmp/foo/bar がパーミッション 0700 で作成されます。Vim では /tmp/foo はパーミッション 0755 になりました。
2. 存在するディレクトリに 'p' で mkdir() した場合 (たとえば mkdir ('/', 'p'))、mkdir() は静かに終了します。Vim ではエラーになりました。
3. mkdir() のエラーメッセージは、現在 strerror() のテキストを含んでいます。

新機能

nvim-intro に膨大な新機能のリストがあります。

bracketed-paste-mode は組み込みであり、デフォルトで有効です。

メタ (alt) コードはターミナルでも認識されています。
<M-1>, <M-2>, ...
<M-BS>, <M-Del>, <M-Ins>, ...
<M-/>, <M-\>, ...
<M-Space>, <M-Enter>, <M-=>, <M-->, <M-?>, <M-$>, ...
注: メタコードは大文字小文字を区別します (<M-a> は <M-A> と区別されます)。
いくつかの 'CTRL-SHIFT-...' キーコードは 'CTRL-...' などと区別されます (ターミナルでも)。具体的には、以下が機能します:
<C-Tab>, <C-S-Tab>
<C-BS>, <C-S-BS>
<C-Enter> <C-S-Enter>
イベント
TabNew
TabNewEntered
TabClosed
ハイライトグループ
hl-EndOfBuffer
hl-TermCursor
hl-TermCursorNC

存在しないレガシー機能

これらの古い Vim の機能は将来的には実装されるでしょう。しかし、現在のマイルストーンではありません。

- vim.bindeval() (Vim 7.4 Python インターフェースの新機能)
- if_ruby
- if_lua
- if_perl
- if_mzscheme
- if_tcl

削除された機能

これらは Vim の機能ですが、意図的に Nvim から削除されました。

Vi 互換モード:
":set nocompatible" を無視
":set compatible" をエラーとする
Ed 互換モード:
":set noedcompatible" を無視
":set edcompatible" をエラーとする
'ttyfast':
":set ttyfast" を無視
":set nottyfast" をエラーとする

暗号化サポート:
'cryptmethod'
'key'
MS-DOS サポート:
'bioskey'
'conskey'
ハイライトグループ:
hl-VisualNOS
その他のオプション:
'cpoptions' ('g', 'w', 'H', '*', '-', 'j' とすべての POSIX フラグ)
'guioptions' ('t' フラグ)
'guipty'
'macatsui'
'shelltype'
'shortname'
'termencoding'
'textauto'
'textmode'
'ttybuiltin'
'ttymouse'
'weirdinvert'
その他のコマンド:
:Print
:fixdel
:mode (引数を受け取らない)
:shell
:tearoff
その他のコンパイルフラグ:
EBCDIC
Emacs tags support

Nvim は組み込みの GUI を持たないので次の別名を削除: gvim, gex, gview, rgvim, rgview

"Easy モード" (eview, evim, nvim -y)

"(g)vimdiff" ("(g)nvim -d" の別名)

"Vi モード" (nvim -v)

以下の別名を介して nvim を起動する機能は、コマンドライン引数の使用により削除されました:
ex -> nvim -e
exim -> nvim -E
view -> nvim -R
rvim -> nvim -Z
rview -> nvim -RZ

原文: Generated Sat Aug 8 08:17:29 UTC 2015 from 5a19585