vim의 현재 작업 디렉토리가 vim이 시작된 곳과 다른 이유는 무엇입니까?
Aug 21 2020
vim은 명령 줄에서 vim을 시작한 것과 다른 현재 작업 디렉토리를 보여줍니다. .vimrc
( vim -u NONE
) 없이 실행하면 문제가 사라집니다 . 왜 이런 일이 발생하는지 알아 내기 위해 이것을 디버그하려면 어떻게해야합니까?
$ pwd /Users/rbednark/Dropbox/git/quizme_personal_files/bin $ vim --noplugin
:pwd
/Users/rbednark/Dropbox/git/quizme_personal_files/bin
:edit settings.sh
:pwd
/Users/rbednark/quizme-read-only-prod
(expected:
/Users/rbednark/Dropbox/git/quizme_personal_files/bin
actual:
/Users/rbednark/quizme-read-only-prod
)
내 사용하지 않으면 문제가 사라집니다 .vimrc
.
$ vim -u NONE
노트:
:set autochdir?
출력noautochdir
:verbose set autochdir?
출력noautochdir
:!pwd
그리고:pwd
모두 출력 같은 디렉토리- 문제는 또한
vim --noplugin
- 나는 한 최근 업그레이드
vim
및python
(통해brew upgrade
). - 나는 한 하지 내 변경
.vimrc
(일부 의견을 추가하는 대신 다른) 최근합니다. 그것은 git에서 버전 관리하에 있으므로 이것이 유일한 변경 사항임을 확인했습니다. - 나는 한 설치 및 vundle (내 플러그인을 업데이트
:VundleInstall
하고:VundleUpdate
). - 나는 한 내 일부 변경을
.bashrc
내가 정력 동작을 변경 할 생각하지만, 아무것도. - 운영체제 : macOS Mojave 10.14.6
- vim : 8.2 (2019 년 12 월 12 일, 2020 년 8 월 20 일 컴파일 22:44:15) Homebrew에서 편집
편집 : 처음에는 이것이 일 때문이라고 생각 :edit other-file
했지만 이제는 단일 파일을 편집하여 볼 수 있으므로 불필요한 측면을 제거하기 위해 위의 내용을 변경했습니다.
답변
1 RobBednark Aug 23 2020 at 19:22
이유 : :lcd
어느 시점에서 나는 s를 했고 버퍼를 나가고 들어갈 때 s를 .vimrc
가지고 있으므로 파일을 다시 편집 하면 다른 디렉토리에 대해 수행됩니다.autocmd
mkview
loadview
:lcd
해결책 :
옵션 1- 현재 작업 디렉토리를 편집중인 파일의 디렉토리로 변경하고 다음을 저장합니다.
cd %:p:h
:wq
옵션 2- 해당보기 파일 제거, 예 :
$ rm ~/.vim/view/*myfile*
해결 / 디버깅 방법 : 파일을
양분 .vimrc
하여 문제가되는 줄을 확인했습니다.
autocmd BufWinEnter * silent! loadview
그것은로드되는 뷰 때문이라는 것을 나타냅니다. 그런 다음에서 해당 view
파일 을보고 ~/.vim/view
디렉터리 이름을 검색하여 다음 줄을 생성했습니다.
lcd ~/quizme-read-only-prod
참고 항목 : 현재 파일 디렉터리와 다른 작업 디렉터리?