テキストを折り返す長い行を管理するためにcore.pagerを設定したいと思います。それを行うために、私はこのコマンドを使用します:
$ GIT_PAGER="fold -sw $COLUMNS" git log
core.pagerを設定しようとしましたが、Bashが$COLUMNSを評価するのが早すぎます。
$ git config core.pager "fold -sw $COLUMNS"
$ grep pager .git/config
pager = fold -sw 80
$ COLUMNSをエスケープしようとすると、次のようになります。
$ git config core.pager "fold -sw \$COLUMNS"
$ grep pager .git/config
pager = fold -sw $COLUMNS
$ LC_ALL=en_US git log
fold: option requires an argument -- 'w'
Try 'fold --help' for more information.
使用しようとすると、次のようsh -c
になります。
$ git config core.pager 'sh -c fold -sw $COLUMNS'
$ grep pager .git/config
pager = sh -c fold -sw $COLUMNS
..しかし、$ COLUMNSを正しく評価しません(静的です)。
core.pagerに設定して書いた最初のコマンドと同じ動作をどのように取得できますか?
編集:ニックバスティンが指摘したようgit config core.pager "fold -sw \$COLUMNS"
に、うまくいくはずですが、おそらく私は子プロセスに問題があります。