miyazi888の覚え書き日記

学習したことを書き留めてます。

vim内でターミナルを開く時、開いたターミナルだけ、編集中のバッファのカレントディレクトリに移動する方法

タイトルどおりです。

vim内でターミナル開いて作業する時にやりたいことは、僕の場合、ほとんどがファイル編集になります。 おまけにそのファイル編集はその時開いているバッファのディレクトリで作業したいことがほとんどだったりするので、ターミナルを開いた時にすでにそのディレクトリに移動しておいてほしい。

絶対、同じことを思ってる人がいると思ってネットを検索しているとやっぱりいました。

vi.stackexchange.com

この中の以下の方法が筋が良さそうだったので、マネしました。

僕の場合はノーマルモードで;;tを連続入力するとターミナルが起動するようにしています。 下の設定だと起動後のターミナルの中でバッファのカレントディレクトリに移動します。

nnoremap <silent> ;;t :let $VIM_DIR=expand('%:p:h')<CR>:25Term<CR>cd $VIM_DIR<CR>

ちなみに:25Termというのは画面を分割してターミナルを表示するvim-plugin、split-termでのターミナルの起動コマンドになります。
このプラグインを使っているのでなければ、:terminalですれば、良いと思います。

github.com

vimは自分好みにカスタマイズできるのでやっぱり楽しいです。