여러 명령을 실행하기 위해 vim에서 명령을 작성하는 방법은 무엇입니까?

여러 명령을 실행하기 위해 vim에서 명령을 작성하는 방법은 무엇입니까?

나는 다음을 내 파일에 넣어 .vimrc일반적인 기능을 수행하는 몇 가지 명령을 작성했습니다 .

command! FixWhitespace %s/ \+$//g
command! FixCommas %s/,\S\@=/, /g

이제 이 두 명령을 실행하는 세 번째 명령을 생성하려고 하는데 다음 명령이 작동하지 않습니다.

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|FixCommasvim이 FixWhitespace명령을 따르기를 기대하지 않는다는 것을 알려주는 방식입니다. 바라보다 :h E488.


그런데, 패턴은 한 줄에 최대 한 번만 일치할 수 있으므로 FixWhitespace명령에는 해당 플래그가 필요하지 않습니다 . g또한 성가신 오류 메시지를 표시하지 않도록 플래그를 설정했습니다 e. 바라보다 :h s_flags.

관련 정보