2017-09-21 4 views
1

Vim에서 쉘 명령을 실행하면 (예 : :!ls) Vim을 종료 한 후에도 쉘에서 출력이 계속 표시됩니다.빔 버퍼에서 콘솔로 쓰는 방법은 무엇입니까?

비슷한 방식으로 Vim의 현재 버퍼에서 선택된 행을 쉘에 쓰려고합니다. 즉, Vim을 종료 한 후에 콘솔에이 줄이 표시되어야합니다. 이 작업을 수행하는 방법?

선을 예를 들어 4-10를 작성하려면,이 명령은 그렇게하지 않았다 :4,10w !tee

+0

':! cat %'을 사용하지 않는 이유는 무엇입니까? – dlmeetei

+0

@dlmeetei 버퍼에서 선택한 선 (4 ~ 10 행) 만 쓰고 싶다면 어떻게해야합니까? 어쩌면 시각적으로 그 줄을 표시하고 그 줄을 써야할까요? –

+0

좋아, 이제 질문을 업데이트했습니다. – dlmeetei

답변

1

간단한 고양이 팅에 대한 파일이

:!cat % 

(:%!cat에 oposed로만 인쇄 할 것이다 무엇 버퍼로)

선택한 라인 만 인쇄 :

:execute '!sed -n ' . line("'<") . ',' . line("'>") . 'p %' 

당신은 시각적 선택 (또는 다른 목록에만 위해, @의 pacholik의 대답에 빌드하려면 그

command! -range PrintSelected :execute '!sed -n ' . line("'<") . ',' . line("'>") . 'p %' 
+0

이 작품! 버퍼에서 선 (예 : 4 ~ 10 줄)을 씁니다. 어쩌면 시각적으로 그 줄을 표시하고 그 줄을 써야할까요? –

0

에 대한 명령을 정의 (및 코멘트에서 확장 된 질문에 대답) 할 수 범위의 라인), 당신은 sed을 사용할 수 있습니다 :

:execute printf('!sed -n %d,%dp %%', line("'<"), line("'>"))