0

autocmds の略語を vimrc に追加しています。それらは次のとおりです。

augroup caucmds
    autocmd!
    autocmd FileType c :iabbrev iff if ()<left>
    autocmd FileType c :iabbrev elseif else if ()<left>
    autocmd FileType c :iabbrev whilee while ()<left>
    autocmd FileType c :iabbrev elsee else ()<left>
    autocmd FileType c :iabbrev forr for ()<left>
augroup END

しかし、それらは機能していないようです。特定の文字などをエスケープする必要がありますか? ファイル内でそれらを単独で実行しても機能しません。

4

2 に答える 2

2

コロンの有無にかかわらず機能するはずです(ここでは冗長です)。

FileTypeファイルタイプのイベントでトリガーするこれらの自動コマンドをインストールしましたc

そのため、任意の C ファイルを開くときに、iff<Space>oriff<Tab>またはiff<Enter>orを入力iff<Esc>して省略形をトリガーし、展開を挿入できます。省略形は、何らかの形で末尾を示した後にのみトリガーされることに注意してください。

Cファイルのファイルタイプcが認識されない場合は、おそらく行がありません

filetype plugin indent on

あなたのvimrcで。

inoreabbrevまた、 の代わりに非再帰コマンドを使用する必要がありiabbrevます。

于 2013-08-30T17:26:10.860 に答える
2

彼らは私にとって素晴らしい働きをします。ただし、そのバッファーにローカルな省略形を使用する必要があります (ファイルタイプに依存するすべてのものに対して使用する必要があります)。したがって、結果は次のようになります。

augroup caucmds
    autocmd!
    autocmd FileType c :iabbrev <buffer> iff if ()<left>
    autocmd FileType c :iabbrev <buffer> elseif else if ()<left>
    autocmd FileType c :iabbrev <buffer> whilee while ()<left>
    autocmd FileType c :iabbrev <buffer> elsee else ()<left>
    autocmd FileType c :iabbrev <buffer> forr for ()<left>
augroup END

私はそれを試しましたが、それは私にとってはうまくいきます。キーワード以外の文字を押すまで、略語は起動されないことに注意してください。これは、たとえば、iff発射するには と入力する必要があるためです。iff<space>cファイルに対してのみ定義したため、それらを機能させるにはacファイルを編集する必要があることに注意してください。

それでもうまくいかない場合は、競合が発生している可能性があります。これを試して、誰がその略語を最後に設定したかを確認してください。

:verbose iabbrev iff
于 2013-08-30T17:27:18.943 に答える