2010-12-15 3 views
5

제가 때때로하고 싶은 것은 vim 명령의 출력을 버퍼에 붙여 넣는 것입니다. 예 : 내 vimrc에 편집을하고있을 때, statusline 바이올린 할 수 있어야하고 단지vim 명령의 출력을 버퍼에 붙여 넣을 수 있습니까?

"=set statusline?<Enter>p 

문제에 가깝다 뭔가를 할 수 있도록 좋은 것 수율

E121: Undefined variable: set 
E15: Invalid expression: set statusline? 
Press ENTER or type command to continue 

나는 그 이게 가능하다는 것을 알았고, 내장 함수와 그것들을 사용하는 방법에 대해 충분히 알지 못한다. (나는 expand이 여기 저기에 사용되었지만 어떤 컨텍스트에서나 성공적으로 작동하지는 못했다. (내가 생각하기에) 정상 모드에 대한 꽤 단단한 이해가있다.

이 구체적인 예는 다소 고안된 것이지만 지금은 더 좋은 예를 생각할 수 없습니다. 위의 특정 유스 케이스의 경우, ":p을 사용하여 실험 중에 사용한 다음 전체적으로 set 명령을 사용할 수 있습니다. 그러나 상당히 규칙적으로 정기적으로 나는 vim에서 뭔가 알려주고 붙여 넣기를 원합니다. 그 결과물은 어딘가에서 출력되므로 계속해서 작업을 계속할 수 있습니다.

답변

4

당신은 옵션 설정을 붙여 넣을 수 있습니다.

+3

'redir' 레지스터에 출력 한 다음 레지스터를 붙여 넣으면 작동합니다. 아니면 다른 말하고있는거야? –

+0

@Herbert Sitz 나는이 질문에 대한 최선의 대답을 가지고 있다고 생각한다. 나는'redir'에 대해 몰랐다. –

+0

사실, 당신이 준 직접 붙여 넣기 옵션이 마음에 듭니다. 사용하지 않았고 사용하기 시작합니다. . . 감사. –

4

설정 값은 앞에 & 기호가 붙은 변수에 저장됩니다. 따라서 statusline이 설정된 값은 &statusline을 참조하여 액세스 할 수 있습니다. 문서에 한 가지 방법으로 삽입하려면 표현식 레지스터 <ctrl-R>=을 사용하면됩니다. 이를 사용하려면 삽입 모드를 입력하고 <ctrl-R>을 누른 다음 =을 누릅니다. 명령 줄에 등호가 표시되며 여기에 &statusline을 입력 한 다음 enter을 누릅니다. 그러면 버퍼에 값이 삽입됩니다. 그러나,

"=&statusline<Enter>p 

내가 버퍼에서 임의의 명령의 출력을 넣을 수있는 방법을 알고하지 않습니다

+0

감사합니다. 일반적으로 삽입 모드가 아니지만 설정이 앰퍼샌드로 참조되어 있는지 확인하는 것이 좋습니다. –

관련 문제