vim -c로 execute normal <c-a> 명령 실행하기

hemosu의 이미지

windows gvim과
windows wsl ubuntu에서 vim을 같이 쓰고 있습니다.

명령의 목적은 tmpfile.txt를 열고, 5번줄로 간뒤에, 숫자를 1 더하기 하는 것입니다.

wsl ubuntu vim에선 -c를 쓸 때 전체 명령을 ''로 감싸고, 안에선 ""을 쓸 수 있습니다.

vim -c 'execute "normal 5G\<c-a>"' tmpfile.txt

하지만 windows gvim에서 위 명령은 안됩니다.
gvim에선 -c를 쓸때 전체 명령을 ""을 감싸지 않으면 안됩니다.
그래서 다음처럼 escape하고 해봤는데 안되네요.

gvim -c "execute \"normal 5G\<c-a>\"" tmpfile.txt

어떻게 해야 할까요?
isanghan의 이미지

엄밀히 말해 vim문제 보다는 windows에서 커맨드 라인 문제네요

https://stackoverflow.com/questions/7760545/escape-double-quotes-in-parameter

밖이라 확인은 못했는데 출처에 따르면 이러면 될듯 합니다

gvim -c "execute ""normal 5G\<c-a>""" tmpfile.txt

--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
N년째 초보입니다

hemosu의 이미지

적어주신 걸 해봤는데 여전히 에러가 납니다.

gvim -c "execute ""normal 5G\<c-a>""" tmpfile.txt

그래서 끙끙대다가 :execute대신에 execute()로 해봤더니 되네요.

gvim -c "call execute('normal 5G\<c-a>')" tmpfile.txt