1. ホーム
  2. vim

[解決済み] Vimでファイルタイプ別のキーバインディングは可能か?

2023-06-22 16:08:59

質問

私の .vimrc ファイルでは、コメントアウトのためのキーバインディングで、ダブルスラッシュ ( // ) を行頭に挿入します。

" the mappings below are for commenting blocks of text
:map <C-G> :s/^/\/\//<Esc><Esc>
:map <C-T> :s/\/\/// <Esc><Esc>

しかし、Pythonスクリプトを編集しているときは、これを #  記号に変更したいのです。

私の場合は Python.vim ファイルを .vim/ftdetect ファイルがあり、タブ幅などの設定もあります。 可能であれば、キーバインドを上書きして、Pythonを使用できるようにするには、どのようなコードがありますか。

" the mappings below are for commenting blocks of text
:map <C-G> :s/^/#/<Esc><Esc>
:map <C-T> :s/#/ <Esc><Esc>

どのように解決するのですか?

ftdetect フォルダは、ファイルタイプ検出のスクリプトを格納するフォルダです。Filetypeプラグインは、ftpluginフォルダの中に入っている必要があります。ファイルタイプは、以下の3つのうちいずれかの形式でファイル名に含まれている必要があります。

  • .../ftplugin/<filetype>.vim
  • .../ftplugin/<filetype>_foo.vim
  • .../ftplugin/<filetype>/foo.vim

例えば、cppファイルタイプのコメントをマッピングするには、以下のように .../ftplugin/cpp_mine.vim :

:map <buffer> <C-G> :s/^/\/\//<Esc><Esc>
:map <buffer> <C-T> :s/\/\/// <Esc><Esc>