NeovimのDockerコンテナ上のclipboard共有がかんたんになった

その他
  1. こんにちは
    泡アハです。

昨日neovim 0.10.0がリリースされました。

リリースノートはこちら
https://neovim.io/doc/user/news-0.10.html

そのリリースの中にOSC52を用いたclipboard共有が含まれていたので、
これはDockerコンテナ上でnvimを開いたときのclipboard共有がかんたんになるのでは?と思い、さっそく試してみました

Dockerコンテナでためす

Dockerコンテナを起動

docker run -it alpine:linux sh

nevim0.10.0およびLazyvimのインストール

自分はLazyvimを使っているので、インストールしていますが、試すだけならneovimだけでもいいと思います。

# nvim のインストール
apk update
apk add build-base cmake coreutils curl unzip gettext-tiny-dev git
git clone https://github.com/neovim/neovim
cd neovim
git checkout stable
make CMAKE_BUILD_TYPE=Release
make install
nvim --version

# Lazyvimのインストール
apk add git lazygit ripgrep alpine-sdk --update
git clone https://github.com/LazyVim/starter ~/.config/nvim
cd ~/.config/nvim
nvim

options.luaに追記

このドキュメントを参考にclipboardを追記
https://neovim.io/doc/user/provider.html#clipboard-osc52

vim.g.clipboard = {
  name = 'OSC 52',
  copy = {
    ['+'] = require('vim.ui.clipboard.osc52').copy('+'),
    ['*'] = require('vim.ui.clipboard.osc52').copy('*'),
  },
  paste = {
    ['+'] = require('vim.ui.clipboard.osc52').paste('+'),
    ['*'] = require('vim.ui.clipboard.osc52').paste('*'),
  },
}

nvimを開きなおして、checkhealthしてみたところ、OSC52となっていました。

==============================================================================
provider.clipboard: require("provider.clipboard.health").check()

Clipboard (optional) ~
- OK Clipboard tool found: OSC 52

==============================================================================

yyしてみる

できた!!!
しかも自分の環境は、
alactirry on ubuntu - ssh -> docker on wsl
で試してみたのですが、ちゃんとubuntu側でコピペができるようになりました!

まとめ

今までは、Docker上でコピペをするためにはtmuxと連携するなどの方法を取る必要がありました。
しかし、この方法だとdockerの外にtmuxがある場合、$TMUXやsockerファイルなどをDockerコンテナにマウントする必要がありました。

しかし、今回のアップデートによってnvimだけで完結するにようになったのは、とても嬉しいです。
neovimを初めてまだ3ヶ月ほどですが、neovimほどカスタマイズ性が高く、面白いエディタはそうそうないですね。
どんどんなれて快適な開発生活を送れるようになりたいところです。
それでは。

コメント

タイトルとURLをコピーしました