🏡
Vimの起動時にpwdをgitルートへ移動する
ファイルツリーやfuzzy-finder系のプラグインを使っていて、常にプロジェクトルートからファイルを探したかったので作りました。
以下を設定ファイルに記載してください。
.vimrc or init.vim
" {{{ ensure_git_root
function! s:ensure_git_root() abort
let cmd = 'git rev-parse --show-superproject-working-tree --show-toplevel 2>/dev/null | head -1'
let root = system(cmd)->trim()->expand()
if isdirectory(root) && root != getcwd()
execute 'cd' root
endif
endfunction
autocmd VimEnter * ++once call s:ensure_git_root()
" }}}
以下のようなディレクトリ構成のプロジェクトで、dir
内でVimを開いたときに、pwdがmy_project
に移動するようになります。
my_project/
├─ .git/
├─ dir1/
│ ├─ file-inner1
│ └─ file-inner2
├─ file-outer1
└─ file-outer2
参考
Discussion