2012-07-22 3 views
4

vim에서 파일을 열어 특정 라인을 vim 레지스터 중 하나에 복사하는 스크립트를 작성하려고합니다. 스크립트를 다시 실행하면 파일을 다시 열고 vim의 레지스터에 값을 다시 붙여 넣기로 결정합니다. 실제로 스크립트는 실행될 때마다 값을 전환하도록되어 있습니다.터미널 커맨드 라인에서 vim 레지스터로 라인 복사하기

예를 들어, 스크립트를 실행할 때 단어 "foo"를 "bar"로 전환 한 다음 스크립트를 다시 실행하면 "foo"로 다시 전환한다고 가정하십시오. 나는 수행하여 단어 foo를 얻을 수 있습니다 :

vim '+/foo' myfilename 

을 그리고 나는 정력의 내부에있을 때, 나는

"qyy 

를 수행하여 레지스터 'Q'로 'foo는'로드 할 수 있다는 것을 알고 그러나 다음 명령은 내 레지스터를 검사 할 때 작동하지 않습니다. reg

vim '+/foo' '+"qyy' myfilename 

무엇이 잘못 되었나요? 감사!

답변

6

명령 줄 모드에서 일반 모드 명령을 실행하려고합니다 (+ 인수가 의미하는 것입니다). 올바른 명령 줄은 것하고 싶은 일을합니다 :

vim '+/foo' '+normal "qyy' myfilename 

는 인수에 대한 자세한 설명은 :help +cmd를 참조하십시오.

+0

감사합니다. 그걸 어떻게 알았습니까? – bhh1988

+0

Vim의 설명서에 대한 참조를 추가했습니다.이 설명서는 vifm에서 유사한 기능을 구현하는 동안 한 번 읽었습니다 (그리고 그것이 어떻게 작동하는지 알 수 있습니다). – xaizek

+0

'vim '+ @ f'filename'과 같은 것이 작동합니까? ('~/.vimrc'에서''@f = '/ begin {tikzp^MA [font = \ Large]^C : w^M' '이라고 가정) – ying17zi

관련 문제