Vim에서 한 번에 여러 파일을 열려면 어떻게해야합니까?


87

Vim 내에서 디렉토리의 모든 파일을 여는 방법이 있습니까? 따라서 :command" /some/path버퍼로 모든 파일을 엽니 다 "라는 의미입니다.

이상적으로는 dir 아래의 모든 파일을 재귀 적으로 여는 것이 좋습니다.

답변:


105

찾고있는 명령은 args입니다.

예를 들면 :

:args /path_to_dir/*

디렉토리의 모든 파일을 엽니 다.


32
**파일을 재귀 적으로 일치시키는 데 사용 합니다. 예:args /path_to_dir/**
daf

1
확장자없이 파일을 열려면 상위 디렉토리를 지정하십시오. 예를 들어 args ** /. hg / hgrc는 작동하지만 ** / hgrc는 작동하지 않습니다.
79E09796 2013 년

11
파일이 열리면 사용 :tab all하여 개별 탭에 넣으십시오.
Backlin

"모든 파일"에는 원하지 않는 하위 디렉토리가 포함됩니다. (내 vim 오류 "/path_to_dir/subdir/" Illegal file name). 빠른 해결책은 두 번째 명령을 실행 argd */하여 목록에서 다시 제거하는 것입니다
덜 이상적입니다

다음 제안으로 답을 완성하는 것이 정말 좋을 것입니다. 좋은 방법으로 열려있는 모든 파일에 동일한 명령 세트를 적용하는 방법을 보여주기 위해 다음 명령을 실행하여 모든 명령을 적용 할 수 있습니다. my_commands_batch.vim 파일에 포함:argdo source my_commands_batch.vim
aturegano

21

특정 확장자로 끝나는 모든 파일을 열려면 왜 작동하지 않습니까? 나는 시도했다

:n ./**.cs

currenty 디렉토리의 파일 만 엽니 다.

답을 찾았는데 올바른 코드는 :n **/*.cs

자세한 내용은 :h find


9

시도해 보았 니

:n /some/path/*

/ some / path에있는 모든 파일을 엽니 다.

나는 그것이 파일을 재귀 적으로 열 것이라고 생각하지 않습니다.

편집하다

**를 사용하면 daf가 언급했듯이 재귀 적으로 열릴 수 있습니다.


: n은 무엇을 의미합니까? vim의 도움말을 살펴보면 "마지막 패턴 반복".. 키 입력이라는 것을 알 수 있습니다. 명령 모드에 대한 도움말 만 얻을 수있는 방법이 있습니까?
U0001 2011 년

1
너무 쉽습니다 : h : n .. ": n"에 대한 도움말을 얻습니다. 나는 내 질문에 대답하는 것을 좋아하지 않는다;)
U0001 2011-09-02

4

엉망 args이 될 필요가없는 방법 은 파일 목록을 텍스트 파일에 넣은 다음 :so명령을 사용하여 해당 파일에서 명령을 실행하는 것입니다.

예를 들어, .php주어진 디렉토리에서 끝나는 모든 파일을 열려면 먼저 files.txt파일 목록을 포함하고 파일을 여는 데 사용할 명령을 앞에 추가합니다.

sp alpha.php
sp bravo.php
sp charlie.php

그런 다음 vim 내에서 :

:so files.txt

파일 목록이 크면 files.txt의 출력을 ls파일 로 리디렉션 한 다음 vim 매크로를 사용하여 sp각 파일 이름 앞에 추가 하여 파일을 빠르게 생성하는 것은 비교적 간단합니다 .

이것은 분명히 argsargdo명령 을 사용하는 것만 큼 우아 하지는 않지만 이러한 명령도 훨씬 더 복잡합니다.

명령 줄에서 단일 명령으로이 작업을 수행하는 방법도있을 수 있지만 16 년이 지난 후에도 여전히 vim 프로그래밍이 이상하고 난해합니다.


흥미 롭군! 이 파일이 모두 필요하지 않은 경우 주어진 디렉토리의 모든 파일을 맹목적으로 여는 대신 열어야 할 파일을 제어하는 ​​좋은 방법처럼 들립니다.
cram2208

1

재귀 적으로 파일을 여는 또 다른 방법

find . -type f -exec vi {} \;

4
"Vim 내에서"제한을 충족하지 않습니다.
ZYX

아직 :) 필요한 것을 수행
불량 - 하나

3
그렇지 않습니다. 필요한 것은 vim 내에서 재귀 적 으로 주어진 디렉토리의 파일입니다 . 조건을 버리고 있다면 kate **/*(^/)(zsh globbing 구문을 사용하여) 필요한 작업을 수행 한다고 말할 수 있습니다 . 주어진 디렉토리에서 파일을 재귀 적으로 엽니 다. 그것은 "내부로부터"가 아니며 vim을 전혀 사용하지 않지만 "아직 필요한 것을 수행"합니다. 또는 kate ~/.vimrc ~/.bashrc. "withing", "from the given directory"및 "recursively"를 모두 생략하지만 "아직 필요한 작업을 수행합니다": 파일을 엽니 다.
ZYX

이 한 번에 파일을 한 번에 하나씩 열도록

1

인수 목록에 추가하려면;

:arga what_you-d_like_to_add

보다

:he arga

자세한 내용은 vim에서 /에서.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.