![`:function FunctionName`의 에코 코드 내용을 현재 파일로 리디렉션하는 방법은 무엇입니까?](https://linux55.com/image/71015/%60%3Afunction%20FunctionName%60%EC%9D%98%20%EC%97%90%EC%BD%94%20%EC%BD%94%EB%93%9C%20%EB%82%B4%EC%9A%A9%EC%9D%84%20%ED%98%84%EC%9E%AC%20%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
이것을 이용하여 파일에 변수값을 넣는 방법을 배웠습니다.스택 오버플로 링크.
예: L = [1,2,3] :put string(L)
[1, 2, 3]
위 링크에 언급된 메소드는 표현식의 반환 값을 처리하는 것 같습니다.
하지만 명령이 에코하는 내용을 어떻게 캡처합니까 echo
? 나는 이것이 function FunctionName
함수의 내용을 화면에 반영하는 방식 이라고 생각합니다 .
내 vim 인터페이스에 에코가 표시되는 것처럼 레지스터나 다른 종류의 버퍼로 이동하지 않습니까?
이러한 에코 내용을 캡처하여 vim의 파일로 리디렉션할 수 있습니까?
답변1
나만의 솔루션:
:function Echo_to_file(expr_str)
: redir => zen_temp | exe a:expr_str | redir END | put=zen_temp
:endfunction
:call Echo_to_file("function Echo_to_file")
function Echo_to_file(expr_str)
1 redir => zen_temp | exe a:expr_str | redir END | put=zen_temp
endfunction
1
잘 작동하는데 왜 결과가 이상한지 모르겠습니다 .