私は以下を私のファイルに入れて、一般的な.vimrc
機能を実行するいくつかのコマンドを書きました。
command! FixWhitespace %s/ \+$//g
command! FixCommas %s/,\S\@=/, /g
この2つのコマンドを実行する3番目のコマンドを生成しようとしていますが、次のコマンドは機能しません。
command! Fix FixWhitespace|FixCommas
:Fix
内部で実行すると、vim
次のメッセージが表示されます。
E488: 末尾の文字: FixWhitespace|FixCommas
このエラーメッセージが私がしていることとどんな関係があるのかよくわかりませんが、明らかに何かを正しくしていないようです!
私はVim 7.4を使用しています。
答え1
command! -bar
あるコマンドの後にパイプシンボルを持つ別のコマンドが続く可能性があることをvimに知らせる必要があります|
。
command! -bar FixWhitespace %s/\s\+$//e
command! FixCommas %s/,\S\@=/, /ge
今動作します。
command! Fix FixWhitespace|FixCommas
しかし、これはそうではありません:
command! Fix FixCommas|FixWhitespace
:h command-bar
詳しくはこちらをご覧ください。
エラーメッセージは、E488: Trailing characters: FixWhitespace|FixCommas
vimがFixWhitespace
コマンドに従うことを期待していないことを知らせる方法です。望むより:h E488
。
ただし、パターンは1行に最大1回しか一致できないため、コマンドには対応するFixWhitespace
フラグは必要ありません。g
また、迷惑なエラーメッセージを表示しないようにフラグを設定しましたe
。望むより:h s_flags
。