vim에서 열린 파일의 디렉토리에 새 파일을 만드시겠습니까?


93

열린 파일이있는 디렉토리와 같은 디렉토리에 새 파일을 만들고 싶은 위치에 있습니다. vim에서 열린 파일의 디렉토리에 새 파일을 어떻게 만들 수 있습니까? 그리고 이런 것들을 스스로 배울 수있는 곳이 있나요? 인터넷 검색은 도움이되지 않았습니다.


Linux의 텍스트 편집기 인 vim에 대해 이야기하고 있습니까?
ianaz 2012

답변:


173

Vim 내에서 :edit filename또는 같은 명령을 통해 기존 파일을 편집하는 것처럼 새 파일이 생성 :split filename됩니다. 디스크에 유지하려면 (선택적으로 내용을 입력하고)를 통해 유지해야합니다 :write.

명령 프롬프트처럼 빔은의 개념이 현재 디렉토리 ( :pwd목록으로). 모든 파일 경로는 이에 상대적입니다. 현재 파일에 대한 경로를 복제 할 필요가 없습니다. 몇 가지 멋진 바로 가기가 있습니다. %현재 파일을 참조하고 :h해당 디렉토리에 대한 수정 자에서 파일 이름 (cp. :help filename-modifiers)을 뺀 값 입니다. 그래서,

:e %:h/filename
:w

filename현재 열려있는 파일과 동일한 디렉토리에 이름이 지정된 새 파일을 만들고 작성합니다.

또는 Vim을 좋아하는 사람들은 항상 현재 파일의 디렉토리로 변경합니다. 배치하여 구성 할 수 있습니다.

:set autochdir

당신에 ~/.vimrc파일 (이는 빔 시작시 읽기). 그러면 위는 간단히

:e filename
:w

마지막으로 Vim에는 :help. 탐색하고 검색하는 방법을 배우십시오!


2
autochdir안타깝게도 색다른 문제 였고, 믿을 수 없다는 것을 알았습니다. 대신 내 vimrc에 autocmd를 넣었습니다.autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
dash-tom-bang

1
Dawg도 귀하의 답변에 찬성 투표를 원하지만 Dawg에게는 필요한 담당자가 없습니다. 잘 작성된 설명에 감사드립니다!
Dawg

14

"nerdtree"플러그인을 사용해 보셔야합니다. nerdtree 창에서 키 m을 입력하면 파일 작업 선택 사항이 표시됩니다.


11

새 파일을 만들고 현재 파일 옆에있는 창에도 표시하려면 다음을 시도해보세요.

:vsp newfile

는의 vsp약자이며 vertical split화면을 반으로 분할하여 하나는 현재 파일을 표시하고 다른 하나는 새 파일을 표시합니다 ( sp수평 분할 인 에서도 작동 함 ).

위의 @MartinLyne의 설명에 따라 .NET을 열었던 파일의 디렉토리에 파일이 생성됩니다 vim. 이를 조정하기 위해 다음과 같이 현재 작업 디렉토리를 변경할 수 있습니다.

:cd %:p:h

이 명령은 현재 작업 디렉토리를 활성 파일의 디렉토리로 변경합니다. 즉, vsp명령 (또는 위의 명령) 을 실행하면 해당 디렉토리에 파일이 생성됩니다.


2

존재하지 않는 위치에서 vim을 열었을 때 $ vim /etc/<some_folder/<next_folder>/file.cfg

그런 다음 vim 내부에있는 동안 새 디렉토리를 만들려면 일반 모드에서 실행 :! mkdir -p /etc/<some_folder/<next_folder>하고 평소대로 문서를 저장하십시오 :w :x ZZ(원하는대로)

그게 다야


1

이것은 Gvim입니다! 현재 디렉토리를 보려면 이것을 입력하십시오.

:cd

다음으로 변경하십시오.

:cd desktop/somefolder

그런 다음 거기에 저장하거나 새 파일을 만드십시오.

:enew asd.cpp

이제 다시 파일을 참조하십시오

:cd

0

나는 파티에 꽤 늦었지만 또 다른 옵션은 :E또는 :Explore(또는 분할 대안 :Vexplore/ :Sexplore== :Vex/ :Sex)로 NERDtree를 여는 것입니다 .

NerdTree에서를 사용하여 새 파일을 만들고 %이름을 입력 할 수 있습니다 . 자동으로 파일이 열리고 :w/ 저장 후 생성 됩니다.

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