---
title: VSCodeDevContainer拡張機能のVim版を作った
tags:  #vim #dev container  
author: [mikoto2000](https://www.docswell.com/user/mikoto2000)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PJXQK2217X.jpg?width=480
description: [VimConf 談話懇親会 〜Vim以外もOK！〜 - connpass](https://vimconf.connpass.com/event/384648/) で使用したポスター
published: April 16, 26
canonical: https://www.docswell.com/s/mikoto2000/59NV3W-2026-04-16-074935
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PJXQK2217X.jpg)

VSCode Dev Container 拡張機能のVim版を作った
～Dev Container の開発体験を Vim に持ち込むため、devcontainer.vim を開発した～
モチベーション
コンテナに引きこもって作業をしたかった
・ホスト環境が汚れない
・環境の切り替えが楽
↓
VSCode Dev Container 拡張機能が最適！
↓
でも Vim が使いたい
↓
Vim をコンテナに転送してそこで Vim を動かそう
ターミナル版なら UI 考える必要ないから行けるやろ
書いた人
mikoto2000
VSCode Dev Container 拡張機能とは？
VSCode Dev Container では、コンテナ上でサーバー側を
動かし、ホスト上の UI と連携してコンテナ内のリソース
を操作する。
devcontainer.json というファイルにコンテナの
ビルド設定やマウント設定、ポートフォワード設定等を
記述し、その設定どおりにコンテナを立ち上げてくれる
† Developing inside a Container using Visual Studio Code Remote Development from https://code.visualstudio.com/docs/devcontainers/containers
devcontainers/cli という、CLI ツールも存在する
Vim をDev Container 上で実行するつらみ
右図のように、Vim をコンテナに転送して動かす構成を
実現してみたところ、いくつかのつらみが発生した。
1. VSCode を使っている人にとって
邪魔な定義が必要(vimrc のマウントなど)
2. vsplit してるとコピーが崩れる
3. devcontainers/cli が forwardPorts 未対応
↓
† Developing inside a Container using devcontainer.vim Cited while modifying
https://code.visualstudio.com/docs/devcontainers/containers
1. VSCode を使っている人にとって邪魔なマウント定義が必要
⇒ devcontainer.json と別に専用ファイルを作ってマージする機能を追加
2. vsplit してるとコピーが崩れる
⇒ Vim9.1984 から入った OSC52 プラグインを利用して Vim のコピーを OS に連携できるようになった
3. devcontainers/cli が forwardPorts 未対応
⇒ Go で port-forwarder を作成し、強引に再現
できたモノ(devcontainer.vim)
devcontainer.vim は、devcontainers/cli をベースに Vim ユーザー向けのコンテナ開発環境を提供するツール。
Vim の転送、設定のマージ、ポートフォワーディングを行う。
```sh
devcontainer.vim template apply # プロジェクトテンプレートを選択・作成(devcontainer.json を作ってくれる)
devcontainer.vim config -g &gt; .devcontainer/devcontainer.vim.json # devcontainer.vim 用の設定ファイル生成
devcontainer.vim start . # コンテナを起動し、コンテナにアタッチ＆Vim を起動
```
という感じでコンテナ開発環境を作成できるようになった。
devcontainer.vim で検索！


