Vimでファイルタイプごとにキーマッピングを行うことは可能ですか?

Vimでファイルタイプごとにキーマッピングを行うことは可能ですか?

最近、改行なしスペース(注意HTML ドキュメントで を入力
し、 を utf-8 に設定すると、テキストをフォーマットするために繰り返しencoding入力する必要がなくなります。最初は 、これを のようにスペースバーにマッピングしたらどうかと考えました。 その後、 を編集し、Vim を再起動すると、 名前を付けたにもかかわらず、関数に名前が必要であるというエラーが多数発生しました。 はスペースのように見えても、スペースとして扱われない (当然)ことに気付きました。そこで、ファイル タイプごとにマッピングして、HTML ドキュメントを編集しているときはスペースで が挿入され、他のファイルを編集しているときは通常のスペース が挿入されるようにするのが良いと考えました。nbsp;
:imap <SPACE> <C-R>=nr2char(160)<CR>
.vimrc
nbsp
nbspchr(32)
どうすればいいですか?

答え1

このau[tocommand]コマンドは、設定されたFileTypeときに実行されるイベントを受け取ります (例: ファイル名を指定して起動時)。例:filetype~/.vimrc

au Filetype python source ~/.vim/scripts/python.vim

答え2

ファイルが特定のファイルタイプの場合にのみ読み込まれるファイルタイププラグインを使用できます。これを設定するには、ファイルを作成し~/.vim/ftplugin/html.vim、このファイルにコマンドを記述します。すでにファイルがある場合は、html というディレクトリを作成すると、ディレクトリ内のすべてのファイルが読み込まれます。:h ftplugin-nameその他の命名オプションについては、(ディレクトリが存在しない場合は作成してください)

vimrc に必要なのは次のすべてですfiletype plugin indent on(インデントは実際にはこれに必要ではありませんが、通常は便利です)。

マッピングをバッファにローカルにするためには、

map <buffer>

目を通すのも役に立つかもしれませ:h ftplugin:h filetype

関連情報