Chapter 04

nyagos で環境変数を設定する

zetamatta
zetamatta
2020.10.18に更新

必要最小限の nyagos の設定として、環境変数を設定しましょう。環境変数は通常 GUI の設定で行いますが:

  • GUI のダイアログ経由での編集するは面倒くさい人類がいる。
  • GUI で設定すると、あらゆるアプリケーションに影響するので、必要最小限の範囲にとどめておきたい

という理由から、nyagos の設定ファイルで環境変数を設定した方が経済的です。設定の仕方は簡単

vim ~\.nyagos

です。この .nyagos というファイル Lua スクリプトで書くので、少々、書くのに抵抗があると思います。本文書では、なるべく Lua の知識なしを前提にして述べてゆきたいと思います。

単純に PATH にディレクトリを追加するには

nyagos.env.path = nyagos.env.path .. ";C:\\bin"

という1行を書けば Ok です。やっていることは、set PATH=%PATH%;C:\bin と同じです。nyagos では環境変数 XXX への読み書きは nyagos.env.XXX という変数経由で行われます。で、.. は Lua の文字列連結演算子です。

さて、これがちゃんと動くか試してみましょう。今実行している nyagos を抜けずに、そのまま nyagos のコマンドラインから nyagos とタイプしましょう。特に起動エラーが発生しなければ Ok です。

(これ、もし ~\.nyagos に文法エラーがあると、nyagos は ~\.nyagos を全くロードできなくなります。scoop 経由で vim を入れている場合は大丈夫ですが、わたくしのように 本家インストーラーで vim-kaoriya を入れて、~\.nyagos の中から vim-kaoriya に PATH を通していたりすると、~\.nyagos 自体をデバッグするのも困難になる時があります。そうした場合を避けるため、なるべく現行の「ちゃんと動く ~\.nyagos」を読んだ nyagos のプロセスを残しておいた方がよいのです)

なお、この書き方だと、実はあんまりうれしくありません。できれば、

  • 二重にパスにディレクトリを設定しているのを防止したい
  • 存在しないディレクトリへの PATH 追加は避けたい
  • Luaの中だと、%USERPROFILE% などの環境変数をもって手軽に引用したい(nyagos.env.XXX は長いよ!)

など、保守性をちょっと高めたいです(特に ~\.nyagos を使いまわししたい時)

そのために PATH にディレクトリを足すのを支援する関数があります(使うのは任意ですよ)

nyagos.envadd("PATH",
    "C:\\go\\bin",
    "C:\\TDM-GCC-64\\bin",
    "%ProgramFiles%\\Git\\bin",
    "~\\bin")

nyagos.envadd は環境変数に要素を足してくれる内蔵関数です。このように書くと

  • 5つのディレクトリの PATH 追加を一括して行う
  • すでに登録済みのディレクトリがある場合は追加しない
  • %ProgramFiles% や ~ などの環境変数の展開をやってくれる

など面倒なロジックを書かなくても実現できます。