답변:
예, 예를 들어하려는 경우 다음을 ls
시도하십시오.
:!ls
쉘을 스폰하려면
:shell
:w !sudo tee %
nano
ctrl+z
vi를 잠들고 쉘에서 필요한 것을 실행 한 다음 fg
vi를 다시 시작 하는 데 사용하는 경향이 있습니다 . 귀하의 질문에 대한 정확한 답변은 아니지만 매우 빠른 작업 방법을 찾으십시오.
vi가 백그라운드에서 열려 있다는 것을 잊어 버린 경우 (이것은 바쁠 때 발생할 수 있음)을 사용하여 쉘에서 로그 아웃하려고 할 때 ctrl+d
백그라운드 작업이 실행 중이라는 경고가 표시되며 닫을 수 있습니다. 또는 ctrl + d를 다시 눌러 로그 아웃하십시오. 또한 동일한 파일을 두 번 다시 열려고하면 복구 경고가 표시되므로를 눌러 a
중단하고 fg를 실행하여 vi로 돌아갈 수 있습니다.
"stdout 가져 오기"에 대해 언급 했으므로 할 수 있습니다.
:r! command
명령의 출력이 파일에 추가되거나
:<range>!command
[eg :1,$!wc
] 명령을 통해 범위의 내용을 필터링
:%!command
꽤 유용한 것 같습니다
:.,+20 !sort
]
내가 선호하는 관용구는
!!command
이것은 속기입니다
:.!command
명령을 통해 현재 행을 파이프하고 출력을 파일에 삽입합니다. 가장 일반적인 경우는 vi로 명령을 편집하고 다음을 실행하는 것입니다.
!!sh
또는
!<motion>command
예를 들어
!apsh
현재 단락 전체를 쉘을 통해 실행합니다.
!}
이 단락의 시작에 위치 할 필요가 시도 !ap
. (이것이 모든 vi에 있는지 vim에만