vim에서 명령 결과로 제공된 파일을 엽니다.

vim에서 명령 결과로 제공된 파일을 엽니다.

나는 거의 매일 다음과 같은 일을 하고 있습니다.

  1. 실행찾기( find -name somefile.txt)
  2. 결과 열기vim

find문제는 결과를 복사하여 명령 에 붙여넣어야 한다는 것입니다 vim. 이런 일을 피할 수 있는 방법이 있나요? 나는 몇 가지 ( find -name somefile.txt | vim)를 시도했지만 작동하는 것을 찾지 못했습니다.

미리 감사드립니다

답변1

명령 대체를 사용할 수 있습니다.

vim $(find -name somefile.txt)

또는

find -name somefile.txt -exec vim {} \;

답변2

이 시도:

  1. vim 시작
  2. vim에서는 다음 명령을 사용합니다.

:r!find /<path> -name 'expression'

검색이 완료되면 결과가 vim에 표시됩니다.

또는

노력하다:

find /<path> -name > results.txt
vim results.txt 

답변3

명령을 다시 실행해도 괜찮다면 명령을 누르고 Up추가하세요 . xargs또는 기록 교체를 사용하고 실행하십시오.

!! | xargs vim          # won't work with file names containing \'" or whitespace
!! | xargs -d \\n vim   # GNU only (Linux, Cygwin)

ksh 및 zsh에서는 작동하지만 bash에서는 작동하지 않는 명령의 출력을 저장하는 간단한 방법이 있습니다(상위 셸에서 실행하려면 파이프의 출력 끝이 필요함). 명령을 함수 K(아래 zsh 정의)에 파이프합니다.케이출력을 변수에 저장합니다 $K.

function K {
    K=("${(@f)$(tee /dev/fd/3)}") 3>&1;
}
find … |K
vim $K

셸만 사용하여 각 명령의 출력을 자동으로 저장할 수 없으므로 에뮬레이트된 터미널에서 명령을 실행해야 합니다. 내부에서 실행하면 이렇게 할 수 있습니다.script(BSD 유틸리티이지만 Linux 및 Solaris를 포함한 대부분의 unice에서 사용 가능) 파일을 통해 세션의 모든 출력을 저장합니다(typescript에서 마지막 프롬프트를 안정적으로 감지하려면 여전히 약간의 노력이 필요합니다).

답변4

다음을 사용하기 때문에 여기서 요점을 놓치고 있는 것 같습니다.

:find **/somefile.txt

(그 중 하나만 갖고 있는 경우 :echo &path ) 또는 모두 원하는 경우:

:args **/somefile.txt

편집자: 와! 알았어 그래서 나도했다요점이 없습니다. 실제 파일을 열지 않고 조회 목록을 원하십니까? (Vim에서 다시):

!!find . -name somefile.txt

- 내 잘못:)

관련 정보