vim環境をあらためて整理してみる#2

vim環境をあらためて整理してみる#2

2022年9月18日 オフ 投稿者: KYO
Table of Contents

前回、vim環境をあらためて整理してみる#1 で、前振りだけになりましたが、vim環境整理のため、docker で、almalinux9 を準備。

基本的に、Dockerは、docker-compose.yml と Dockerfile で組むのですが、手っ取り早く Dockerhub のイメージで流用します。(説明上)
よほどのことがない限り、dockerの環境は DockerfileとDockerhub, githubで管理して、Docker自体は使い捨てますが、構築手順や内部のデータ(DBなど)は、永続化して再利用できる形を取ってます。
何かと環境が異なるインフラを構築したい場合には、便利なので。

では、Dockerでalmalinux9 を立ち上げちゃいましょう。
Dockerの環境構築や、その他利用方法は省略します。

また、vimはできるだけ最新版を利用して、パッケージ関連を活用しているので、Homebrewで最新版をインストールします。
Mac環境の場合は、macbrewで読み替えてくださいね。

Almalinux9のDocker起動

docker pull almalinux9:latest

あとは、利用しているdockerクライアントから起動しちゃいましょう。

.vimrcなどの、ドットファイルをgithubからclone

実施してる方も多いと思いますが、ドットファイルはgithubで管理できていると楽です。
特に、vimはプラグインを追加しがちで、.vimrcがカオスになることも多かったり、プラグイン管理ようのツールを変更する場合も多い。

私も以前、Pathogenから dein に乗り換えた時、この恩恵をかなり受けました。
オフライン環境であれば、ダウンロードしたzipファイルを展開すればいいし、オンライン環境ならばgithubから簡単に同期が取れますからね!

dropboxで管理されている方も居るようですが。そこは、お好みで。

最終的に、ソースを全てgithubと自宅サーバで管理しているので、なんだかんだで・・古くから愛用してます。

githubのリポジトリは、Privateなので、ざっくり管理方法だけご紹介。

ドットファイルのgithub管理

前述したように、色んなOSを使っているので、リポジトリは OSとShell で分けてます。

  • linux(bash)
  • mac(zsh)

と、行った具合です。

githubから、ドットファイルをclone

今回は、Linuxなので、こんな感じでリポジトリから、各種ファイルをcloneします。

mkdir ~/dotfiles
git clone git@github.com:<<user>>/<<repos>>.git .             # ドットファイルリポジトリ
cd ~/dotfiles
sh makeSymlinks.sh                                                           # .vimrcなどのパスをSymLinkで張り替え

環境ごとに、管理しているドットファイルをバックアップしつつ、シンボリックリンクを張り替えてます。
ファイルの実態は、~/dotfiles にあるので、OSが異なったり、Shellを変更した場合は、リポジトリを切り替えてます。

必要パッケージのインストール

あとは、必要なLinux側のパッケージを入れていくのですが・・・
普段はDockerfileで、パッケージも指定しているので、基本 一度でもdockerで利用したOSは、必要なパッケージを準備したものが、各タグで管理しているので、ほぼサクっと環境が整います。
インストールパッケージをメンテだけしていけば良いのが、やはり大きなメリットですね。

ざっくりと抜粋。

dnf clean all
rm -r /var/cache/dnf
dnf -y upgrade

# dnf-plugins
dnf -y install dnf-plugins-core

dnf -y install epel-release
dnf -y install  https://rpms.remirepo.net/enterprise/remi-release-9.rpm

dnf -y install --enablerepo=epel,remi wget curl git --allowerasing
dnf -y install --enablerepo=epel,remi vim git htop glances tmux
dnf -y install net-tools                # ifconfig
dnf -y install bind-utils               # for dig
dnf -y install telnet sudo zsh openssl-devel perl-ExtUtils-MakeMaker curl file
dnf -y groupinstall 'Development Tools'
dnf -y install nodejs ctags

一部、自身がよく使うパッケージも入れてるので、必要に応じてお好みで。

Linuxbrewをセットアップ

インストールが一通り終わったら、vim をHomebrew からインストールします。
実際、この作業も Dockerfileで作ってるので、普段は実行しませんが。。。

こんな感じです。

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)" && \     echo 'export PATH=${HOME}/.linuxbrew/bin:$PATH' >> .bash_profile
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

vimをインストール

さ、vimをインストールしましょう。

brew install vim

インストールが終わったら、確認。

vim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jun 13 2022 00:00:00)

問題なさそうです。

では、いよいよ。

deinによるパッケージ更新

.dein.toml などは、ドットファイルで管理していて、シンボリックリンクを作成済み。
vimを開くだけで、プラグインをインストールしてあげればOK。

※実際、この手順までは全て Dockerのイメージを作成済みなので、いつも作業はここからです。

vim
:call dein#install()

これで、deinで管理している、vimプラグインが全てインストール完了。

さらに、

:call coc#util/Install()

dnfのパッケージでも入れてるのですが、nodejs, ctag, yarn もプラグインで使ってるので、ここで準備します。

vim環境

実際、いつも使っている Dockerのイメージは、CentOS, Almalinux, Ubuntu, AmazonLinux と数種ありますが、セットアップとして自身の環境設定は、いつも最後の数コマンドだけで完了します。

OSやミドルウェアのパッケージをセットアップする場合は、また別のdockerイメージを利用しますが。

いつもの慣れた環境で作業を行いたい場合、やはり 私にとって vim環境・設定・プラグイン が同じであることは結構な作業の違いが出てきます。
都度、ワンライナーで設定してもいいのですが、プラグインはそうも行かず。

プラグインがなくても、充分戦闘力があるエディタが、vimです。(emacsも同様だと思います)

コンソールを触る機会がある方で、ガジェット好きな方は .vimrc にこだわる傾向があるような気がしてます。
逆に、新しい技術に関心がない方は、こういったことができること自体も、やはり関心がないので、知らない方が多いように思います。

たかがコマンドであったり、エディタですが。
ショートカットや、設定の有無で大化けするのが linuxやvimのようなエディタ。

OS自体にも便利なショートカットも多いですし、できれば暇な時にでもチャレンジしてほしい内容だなぁ〜と思ってます。

さてと。
次回は、ちょっと整理して、久しぶりに .vimrc でも晒してみようかと思います。

取り急ぎ、全OS分は整理が間に合わないので・・・ たぶん、Mac版になると思いますが。