명령줄에서 ex에 여러 명령을 실행하는 방법은 무엇입니까?

명령줄에서 ex에 여러 명령을 실행하는 방법은 무엇입니까?

vim의 ex 모드를 사용하여 작성하고 싶은 스크립트를 작성하려고 하는데 여러 명령을 작성할 수 있는 구문을 알 수 없는 것 같습니다.

내 코드는 다음과 같습니다

ex -c 'normal! 2gg19|^V49gg59|y' geom.inc

따라서 이것은 geom.inc 파일의 ex 모드로 들어가서 텍스트 블록을 강조 표시한 다음 해당 텍스트 블록을 꺼내는 것입니다. 이 작업이 완료되면 파일이 닫힐 것이라고 덧붙이고 싶지만 파일을 닫는 추가 명령을 포함하는 방법을 알 수 없는 것 같습니다. 나는 일반적으로 "|"가 명령을 함께 묶는 데 사용된다는 것을 알고 있지만 내가 시도한 조합 중 어느 것도 작동하지 않습니다. 일반적으로 명령 중 하나가 다른 파일이라고 생각하게 됩니다.

답변1

나는 어리석은 실수를 저질렀습니다. @Jeff Schaller가 위에서 제안한 것처럼 여러 -c 프롬프트는 여러 명령을 허용합니다. 그래서 내 작업 예는 아래와 같습니다.

ex -c 'normal! 2gg19|^V49gg59|y' -cwq geom.inc

ex 모드를 입력 ex하고 명령 프롬프트를 -c표시하고 블록을 정의한 다음 normal! 2gg19|^V49gg59|y( normal!일반 vi 명령을 허용합니다. 2gg19|즉, 2행과 19열로 이동하고 ^V시각적 블록 모드로 들어가서 49gg59|49행과 59열로 이동하고 y블록을 가져옵니다), 다른 프롬프트가 표시됩니다 쓰고 종료하는 명령입니다 -cwq.

답변2

나는 다음과 같이 명령을 파이프하는 경향이 있습니다.

$ echo '
  0r !seq 10
  w test
' | ex
$ cat test
1
2
3
4
5
6
7
8
9
10

답변3

끝에 "x" 또는 "wq" 명령을 추가하면 됩니다.

ex -c execute 'normal! 2gg19|^V49gg59|y|x' geom.inc

관련 정보