dromozoa-dotfiles

リンク

シェル設定ファイル

シェル 種別 設定ファイル
zsh ログイン .zshenv .zprofile .zshrc .zlogout
インタラクティブ .zshenv .zshrc
非インタラクティブ .zshenv
bash ログイン .bash_profile .bash_logout
インタラクティブ .bashrc
非インタラクティブ
SSH .bashrc?

Zshの補完

(Zshマニュアル Completion System より)

_argumentsと変数の局所化

-Cオプションを付けると、->state形式のアクションでcurcontext変数が変更される。呼びだし元の関数に変更された値を渡さないように、関数の先頭でローカル変数を宣言し、現在の値で初期化する。

local curcontext="$curcontext"

$state$state_descrに加えて、_argumentsはグローバル変数context, line, opt_argsも設定する。さらに、PREFIXwordsのような特殊変数の変更をリセットしない。これにより、これらの変数をリセットするか変更を伝播するかという選択肢が、呼びだす関数に提供される。

->stringを含むアクションをひとつでも指定するならば、_argumentsを呼びだす関数は、適切にローカル変数を宣言するべきである。

local context state state_descr line
typeset -A opt_args

日本語テキスト処理

文字間での分割の可否

(日本語組版処理の要件 附属書Cより)

  1. 前の文字が文字クラス1, 12, 28である。
  2. 後の文字が文字クラス2〜7, 9〜11, 20, 29である。

1または2が成立するとき、おおまかに分割不可であると言える。 1と2の条件がどちらも満たされるとき、分割不可であるか、配置が禁止されているかは表に記述されている。

ところで、文字クラス2〜7, 9〜11, 29は行頭禁則の対象であり、文字クラス1, 28は行末禁則の対象である。 行頭禁則と行末禁則が実装されているとき、前の文字が文字クラス12であるか、後の文字が文字クラス20であるかを考慮することになる。

注記を考慮して実装は以下を分割不可とした。

NeuG

NeuGの使い方を参照し、RaspbianからNeuGを使う。

ejectをインストールし、USBメモリとして動いているNeuGを取り出す。

sudo apt-get -y install eject
sudo eject /dev/sda

CRC32フィルタ+SHA256フィルタで動かす。

stty -F /dev/ttyACM0 -parenb

インスタンスのユニーク情報取得

GNU/Linux

/sys/class/dmi/id/product_uuidを参照する。 準仮想化の場合は/sys/hypervisor/uuidを参照する必要があるかもしれない。

AWS EC2

http://169.254.169.254/latest/meta-data/instance-idでインスタンスIDを取得できる。

Raspbian

/proc/cpuinfoSerialという項目がある。