本記事は Vim Advent Calendar 2019 - Qiita の18日目の記事です。
nginxの設定ファイルを編集するシチュエーションを題材にして、小さなvimrcを取り回すvimの使い方について紹介しようと思います。
さて、nginxの設定ファイルを編集した後に、 nginx -t
を実行することで、設定ファイルの文法チェックが行えます。
また変更した設定ファイルをnginxプロセスに反映させるとき、 systemctl reload nginx
などとします。
最近だと、dockerで動かすこともあるため、 docker exec "${container}" nginx -t
であったり、 docker restart "${container}"
であったりと細かいコマンドは変わるでしょうが、今回はそういうことは無視します。
ということで、通常ではnginx設定ファイルを編集するにあたり、以下のような手順で実施することになります。
vim /etc/nginx/nginx.conf
nginx -t
systemctl reload nginx
- 動作確認
もし、ローカルマシンのみで網羅的な動作確認ができるような設定であれば、ローカルマシン上に自分好みの環境を用意すれば事足ります。 ですが、例えば開発用の共有環境に(nginxだけではない)フルセットの構成が用意されており、網羅的な確認作業は共有環境上で実施するようなケースが割と多いです。 共有環境では、nginxの稼動サーバにsshし、素のvimは入っているけれどvimrcやpluginでのカスタマイズはできない、などの制約があったりします。
そういうときに使うために、私は↓のようなコピペ用のコードを用意しており、一時的なvimrcを用意して vim -u tmp-vimrc
とかで編集作業をします。
set nocompatible augroup gyokuro autocmd! augroup END function! s:reload_nginx() abort let res = system('nginx -t') if v:shell_error != 0 echo res return endif let res = system('systemctl reload nginx') if v:shell_error != 0 echo res return endif endfunction autocmd gyokuro BufWritePost /etc/nginx/* call s:reload_nginx()
やっていることは単純で、nginxの設定ファイルを編集したとき、自動で nginx -t
で文法チェックかけて、問題ないようなら systemctl reload nginx
を実行しているだけです。
単純ではありますが、あるのとないのとでは、面倒さが結構違ってきます。
紹介したスニペットはnginxに閉じていますが、素vimに対して、ワンポイントでかつコピペ程度の手間で使える機能(スニペット)を作っておくと、取り回しが良いです。 個人的には、pluginでモリモリするよりも、色々な環境で素vim使って作業していくことを想定して、こういう工夫をしています。
人により好みはあるかと思いますが、結構便利なので、試してみてください。 そしてもっと良い方法あるよっていう方がいましたら、是非教えてください。
以上です。