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


5

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

답변:


6

Karalos의 답변에 대한 대안 :

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

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

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

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


1
또한 shellescape()특수 문자를 보호하기 위해 사용하는 것이 좋습니다.
Chris Johnsen

2

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

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

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

:let l=line(".")

전화

:!echo %:<Ctrl+R>=l<CR><CR>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.