[vim] Vim의 외부 명령에 대한 파이프 버퍼

저는 Vim 초보자입니다. 현재 버퍼의 내용을 외부 명령의 stdin으로 보내고 싶습니다 (메일이라고 말할 수 있음). 마지막 목적은 현재 Vim 버퍼에서 이메일을 빠르게 보내는 단축키를 설정하는 것입니다. 이것은 사소한 일이라고 생각하지만 Vim 버퍼를 외부 명령으로 보내는 방법을 찾을 수 없습니다. 미리 감사드립니다.



답변

를 사용 :w !cmd하여 외부 명령의 표준 입력에 현재 버퍼를 쓸 수 있습니다 . 에서 :help :w_c:

: [범위] w [라이트] [++ opt]! {cmd}

표준 입력 {cmd}으로 [range]줄을 사용하여 실행합니다 (앞의 공백에 유의하십시오 '!'). {cmd}와 같이 실행 ":!{cmd}"되며 any '!'는 이전 명령으로 대체됩니다 |:!|.

관련 명령은 :%!cmd동일한 작업을 수행 한 다음 현재 버퍼를 명령의 출력으로 대체하는 것입니다. 따라서 :%!sort외부 정렬 명령을 호출하여 현재 버퍼를 제자리에 정렬합니다.


답변

다음은 명령 줄에서 현재 버퍼를 외부 stdin으로 보내는 방법의 예입니다.

vim -es +"w >> /dev/stdout" -cq! /etc/hosts

스크립팅 목적으로 유용합니다.

더 많은 명령 줄 트릭은 다음을 확인하십시오.


답변