devcontainer.vim
コンテナ上で Vim を使った開発をするためのツール。
VSCode Dev Container の Vim 版を目指しています。
Usage:
devcontainer.json が存在しないプロジェクトで、ワンショットで環境を立ち上げる
devcontainer.vim run [DOCKER_OPTIONS] [DOCKER_ARGS]
docker run -it --rm -v "$(pwd):/work" --workdir /work -v "$HOME/.vim:/root/.vim" --name golang golang:1.22.1-bookworm コマンド相当の環境でコンテナを立ち上げる場合の例:
devcontainer.vim run -v "$(pwd):/work" --workdir /work -v "$HOME/.vim:/root/.vim" --name golang golang:1.22.1-bookworm
devcontainer.json が存在する場合
環境の起動
start サブコマンドで、環境を立ち上げ、Vim を転送し、起動できる。
たとえば、カレントディレクトリから devcontainer.json を検索し、読み込み、環境を立ち上げ、Vim を転送し、起動する場合は以下。
devcontainer.vim start .
devcontainer への引数を(--workspace-folder 以外は) そのまま利用できるため、
.vim をバインドしたい場合、以下のように指定する。
devcontainer.vim start --mount "type=bind,source=$HOME/.vim,target=/root/.vim" .
環境の停止
TODO:
環境の削除
down サブコマンドで環境の削除ができる。
devcontainer.vim down .
Requirements:
以下コマンドがインストール済みで、PATH が通っていること。
Features:
TODO
Install:
binary download
Latest version
go install
go install github.com/mikoto2000/devcontainer.vim@latest
Uninstall:
Windows
Delete executable file, config directory(~/AppData/Roaming/devcontainer.vim), and cache directory(~/AppData/Local/devcontainer.vim).
Remove-Item PATH_TO/devcontainer.vim.exe
Remove-Item -Recurse ~/AppData/Roaming/devcontainer.vim
Remove-Item -Recurse ~/AppData/Local/devcontainer.vim
Linux
Delete executable file, config directory(~/.config/devcontainer.vim), and cache directory(~/.cache/devcontainer.vim).
rm PATH_TO/devcontainer.vim
rm -rf ~/.config/devcontainer.vim
rm -rf ~/.cache/devcontainer.vim
MacOS
TODO:
TODO:
- : v0.1.0
- : docker run 対応
- : コンテナの起動
- : AppImage 版 Vim のダウンロードとコンテナへの転送
- :
devcontainer.vim への引数と docker への引数を指定できるようにする
- : v0.2.0
- :
devcontainer.json の composeContainer 対応
- : dockerComposeFile
- : service
- : workspaceFolder
- : remoteUser
- : v0.3.0
- :
devcontainer.json の nonComposeBase 対応
- : v0.4.0
- : down コマンドの実装
- :
composeContainer と nonComposeBase の判定
- :
devcontainer read-configuration の結果に dockerComposeFile が含まれているかで判定
- :
composeContainer の場合
docker compose ps --format json して Project の値を取得し、 docker compose -p ${PROJECT_NAME} down する
- :
nonComposeBase の場合
docker ps --format json して Labels 内に devcontainer.local_folder=xxx が含まれており、 xxx が現在のディレクトリと一致するものを探し、そいつの ID で docker rm -f ${CONTAINER_ID} する
- : v0.5.0
- : 暗黙の docker option を追加できるようにする
- : 設定ファイルに暗黙のオプション設定を追加し、
run サブコマンド実行時にそれを読み込む
- : 設定ファイルを開くサブコマンドを追加
- : 関連付けられているファイルで開けるなら開く、そうでなければパスを表示
- : リリーススクリプト・リリースワークフローを作る
- : v0.6.0
- : クリップボード転送機能追加
- TCP でテキストを待ち受け、受信したテキストをクリップボードへ反映するプログラムを作る
- TCP ソケット通信する関数、ヤンク処理時にテキスト送信をするマッピングを実装したスクリプトを作る
docker cp で /SendToTcp.vim にコピーし、 -c "source /SendToTcp.vim する
devcontainer.vim 起動時に「1.」のプログラムを実行
- 多重起動防止のために既にプログラムが実行済みかどうかを確認する必要がある
- 終了時にも、「他の
devcontainer.vim が存在するか」を確認して終了させるか判定
- : v0.7.0
- : キャッシュクリアコマンド
- : アンインストールコマンド
- : Vim アップデートコマンド
- : v0.6.0
License:
Copyright (C) 2024 mikoto2000
This software is released under the MIT License, see LICENSE
このソフトウェアは MIT ライセンスの下で公開されています。 LICENSE を参照してください。
Author:
mikoto2000 mikoto2000@gmail.com