나는 system()
호출 쉘 스크립트의 인수로 현재 파일 이름 %
을 통과하고 싶습니다 :vim system() 호출에서 스크립트에 인수를 전달하는 방법은 무엇입니까?
let rev=system("~/script %")
이 어떻게 진짜 그렇게 할 수 있습니까?
나는 system()
호출 쉘 스크립트의 인수로 현재 파일 이름 %
을 통과하고 싶습니다 :vim system() 호출에서 스크립트에 인수를 전달하는 방법은 무엇입니까?
let rev=system("~/script %")
이 어떻게 진짜 그렇게 할 수 있습니까?
exec
를 사용해보십시오 :
exec 'call system("~/script " . expand("%"))'
을 수행하려는 작업에 따라 당신이 (같은 :h system()
알) 모두에서 exec
필요하지 않을 수도 있습니다 :
let foo = system("~/script " . expand("%"))
을 expand()
(감사 kongo2002)와 주변 재생 :
let script="~/script " . expand("%")
let rev=system(script)
매력으로 작동 =)
여기서'shellescape()'를 사용해야합니다. 같은 이유로'! ~/script %'를 사용하면 안됩니다 :'%'는 파일 이름을 이스케이프 처리하지 않고 전달합니다. – ZyX
좋아요, 그렇다면 변수'rev'를 어떻게 "먹일"수 있습니까? –
@putputer : 방금 시스템 호출의 출력 변수를 사용하여 내 대답을 편집했습니다. exec 명령은 대개 Ex 명령과 상호 작용하려는 경우에만 필요합니다. – kongo2002
'shelllescape()'를 사용하지 않았 으면 좋겠군, 괜찮아.) = –