Vim의 기본 'path'옵션은 중복입니까?


10

Vim의 도움말 문서 (: 참조 :help 'path')에서 :

'path'문자열 (유닉스의 기본값 : " .,/usr/include,,")

-현재 파일의 디렉토리를 기준으로 검색하려면 다음을 사용하십시오.

:set path=.

현재 디렉토리에서 검색하려면 두 개의 쉼표 사이에 빈 문자열을 사용하십시오.

:set path=,,

것으로 보인다 .,,'경로'옵션에 차이가 없다. 둘 다 현재 디렉토리를 의미합니다.

경로 옵션 .,,경로를 모두 사용해야하는 이유를 이해할 수 없습니다 . 차이점은 무엇이며 :set path=.그리고 :set path=,,?

답변:


14

"현재 디렉토리"와 "현재 파일의 디렉토리"는 서로 다른 두 가지입니다.

"현재 디렉토리"는 기본적으로 Vim을 시작한 디렉토리입니다. 당신은 함께 무엇 빔을 요청 :pwd하고 그것을 변경 :cd하거나 :lcd또는 설정 autochdir옵션을 선택합니다. 변경하지 않으면 현재 세션을 닫을 때까지 동일하게 유지됩니다.

"현재 파일의 디렉토리"는 정확히 그것이 주장하는 것입니다. 현재 파일이 "현재 디렉토리"에 있으면 둘 다 동일한 값을 갖습니다. 현재 파일이 다른 디렉토리에 있으면 다른 값을 갖습니다.

을 위해 path유용하다는 것을, 그것으로 그 두 가지 시나리오를 해결하기 위해 필요 .하고 ,,.

예:

$ cd /foo/bar/baz
$ vim filename
:pwd                   -->  /foo/bar/baz
:echo expand("%:p:h")  -->  /foo/bar/baz
:e ../file
:pwd                   -->  /foo/bar/baz
:echo expand("%:p:h")  -->  /foo/bar

7

현재 파일디렉토리현재 디렉토리 는 완전히 다른 두 가지입니다 (때로는 같은 값을 가질 수 있음).

치다:

cd /tmp; vim /etc/bash.bashrc

내가 autochdir(또는 비슷한 것을) 설정 하지 않으면 현재 디렉토리는 /tmp이지만 현재 파일의 디렉토리는 /etc입니다.

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