1

特定の localleader マッピングを関数呼び出しにマップするプラグインを作成したいと考えています。

次の内容の ftplugin/javascript.vim ファイルがあります。

augroup javascript_pluginName
  au!
  echom "The plugin is loaded for JS"
  au FileType javascript nnoremap <buffer> <localleader>j :call pluginName#pluginName#funName()<cr>
augroup END

JavaScript ファイルを開くと、メッセージが出力されますが、マッピングされた組み合わせを確認すると、そのようなマッピングがないことが示されます。

私は、 noremap が単に他のマッピングの上にマッピングされないことを理解しています。ただし、autocmd に入れずに nnoremap コマンドのみを残すと、適切にマップされます。コマンドモードで呼び出しを実行するだけでも問題なく動作します。

autocmd の使用方法を確認するために vim のヘルプを調べましたが、使用方法とそこで説明されている内容との間に違いは見られません。"Learn Vim the Hard Way" という本も役に立ちませんでした。

足りないものはありますか?autocmd を別の方法でフレーム化する必要がありますか?

4

1 に答える 1

1

私はついに問題が何であるかを発見しました!どうやら、この記事によると: https://vimways.org/2018/from-vimrc-to-vim/ファイルタイプ固有のコードをファイルタイププラグインに入れる場合、そのための autocmd を作成する必要はありません。

ボイラープレートは、vim がオープン時にファイルタイプを設定し、ファイルに関連する ftplugin スクリプトを実行するという一般的な動作によってすべて冗長になります。

これは、私の ftplugin/javascript.vim ファイルでは、マッピングだけが必要であることを意味します:

nnoremap <buffer> <localleader>j :call pluginName#pluginName#funName()<cr>
于 2019-04-20T12:26:57.523 に答える