🏡

Vimの起動時にpwdをgitルートへ移動する

2022/08/06に公開約600字

ファイルツリーや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

参考

https://qiita.com/dalance/items/b04c288d8dde06ce2b59

Discussion

ログインするとコメントできます