나는 거의 매일 다음과 같은 일을 하고 있습니다.
- 실행찾기(
find -name somefile.txt
) - 결과 열기
vim
find
문제는 결과를 복사하여 명령 에 붙여넣어야 한다는 것입니다 vim
. 이런 일을 피할 수 있는 방법이 있나요? 나는 몇 가지 ( find -name somefile.txt | vim
)를 시도했지만 작동하는 것을 찾지 못했습니다.
미리 감사드립니다
답변1
명령 대체를 사용할 수 있습니다.
vim $(find -name somefile.txt)
또는
find -name somefile.txt -exec vim {} \;
답변2
이 시도:
- vim 시작
- 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
- 내 잘못:)