파일 이름과 현재 줄을 쉘 스크립트로 전달 스크립트에 전달하고

커서가있는 파일 이름과 현재 줄 번호를 콜론으로 구분하여 외부 쉘 스크립트에 전달하고 싶습니다. 예를 들어, “foo.c”파일을 편집 중이고 현재 77 행에있는 경우 “foo.c : 77″인수를 사용하여 vim에서 스크립트를 호출하려고합니다.



답변

Karalos의 답변에 대한 대안 :

:call system('echo ' . expand('%') . ':' . line('.'))

물론 “echo”를 쉘 스크립트 이름으로 바꿉니다.

system ()의 장점은 명령 실행의 출력을 반환하므로 필요한 경우 Vim 스크립트에서 나중에 사용할 수 있도록 캡처 할 수 있다는 것입니다.

:help expand()어떤 식 으로든 파일 이름을 한정 / 수정해야하는 경우 수정자를 살펴 봐야합니다 .


답변

꽤 번거롭지 만 다음을 시도해 볼 수 있습니다.

:!echo %:<Ctrl+R>=line(".")<CR><CR>

또는 중간 변수를 사용할 수 있습니다

:let l=line(".")

전화

:!echo %:<Ctrl+R>=l<CR><CR>


답변