내용은 다음과 같습니다 cmd.txt
.
:w 2.txt
:q
명령줄에서는 다음을 수행합니다.
D:\>vim 1.txt<cmd.txt
나는 키보드가 아닌 cmd.txt를 입력 스트림으로 예상하고 vim은 1.txt를 2.txt로 저장한 다음 종료합니다.
그러나 그것은 작동하지 않습니다. Vim은 입력이 터미널에서 나온 것이 아니고 멈춘다고 말합니다.
외부 파일에서 명령을 보내고 싶습니다. 어떻게 해야 하나요?
업데이트:
제가 하고 싶은 것은 많은 패턴을 대체하는 것입니다. 팀 이름이 도시를 참조하는 NBA 역사에 대해 설명하는 파일이 있는데 이를 "성"으로 변경하고 싶습니다.
어떻게든 대체 명령(30개 규칙/행)을 생성했습니다.
:%s/\v<Boston>/Celtics/g
:%s/\v<Brooklyn>/Nets/g
:%s/\v<New York>/Knicks/g
:%s/\v<Philadelphia>/76ers/g
:%s/\v<Toronto>/Raptors/g
:%s/\v<Golden St>/Warriors/g
:%s/\v<LA Clippers>/Clippers/g
:%s/\v<LA Lakers>/Lakers/g
:%s/\v<Phoenix>/Suns/g
:%s/\v<Sacramento>/Kings/g
:%s/\v<Chicago>/Bulls/g
:%s/\v<Cleveland>/Cavaliers/g
:%s/\v<Detroit>/Pistons/g
:%s/\v<Indiana>/Pacers/g
:%s/\v<Milwaukee>/Bucks/g
.....
이 명령을 실행하기 위해 파일을 vim에 입력하고 싶습니다. 이 명령을 수동으로 입력하고 싶지 않습니다.
다른 방법으로 규칙을 생성하여 다른 프로그램에 입력할 수도 있고, 대체를 수행하는 간단한 프로그램을 작성할 수도 있습니다. 하지만 Vim, Powershell 또는 제가 최근 배우고 있는 Total Commanders에서 수행할 수 있다면 감사하겠습니다.
답변1
-s
명령줄 옵션을 사용하여 이 작업을 수행할 수 있습니다 .
vim -s cmd.txt 1.txt
그러나 Teun Vink의 의견은 여전히 유효합니다. 실제로 무엇을 하려고 하시나요? 이거 클래식 같은데X->Y 문제.
답변2
이 게시물이 오래된 게시물이라는 것을 알고 있지만 @Gqqnbig이 요구하는 것은 가능합니다.
자주 실행하고 싶은 명령 목록을 파일로 저장해 보세요. 이상적으로는 nbaEdits.vim과 같이 .vim 확장자를 지정하는 것이 좋습니다.
명령을 실행하려는 데이터 파일에서 VIM 명령줄에서 이 명령을 실행하면 됩니다(Windows를 통해서만 시도했습니다).
:source c:\myVimCommands\nbaEdits.vim
**위에서는 명령 파일이 c:\myVimCommands 폴더에 있다고 가정합니다.