あんパン

こしあん派

別ブランチの特定のファイルを直接開くコマンド

欲しいときがありますよね。

masawada.hatenablog.jp

方法は4年前に書いてたんですが、最近欲しくなってちまちま打つのがだるくなってきたのでgitのサブコマンドにしました。Vimを使っているので直接Vimに流し込んでいます。pecoが2回起動するので、ブランチ名とファイル名を指定すると開けます。git-afとして保存して、git afコマンドとして使っています。afはアトラクタフィールドの略です。

doautocmd BufRead $(basename $FILE_PATH) がキモで、シンタックスハイライトを正しく指定しつつ開いてくれます。

dotfiles/git-af at master · masawada/dotfiles · GitHub

どうぞご利用ください。

リポジトリ内の特定の制御文字を削除するワンライナー

$ git grep -I --name-only $'\x08' | xargs -I{} sed -i -e "s/\x08//g" {}

リポジトリ内にbackspace(^H)のような制御文字が含まれてしまっていることに気付いたとき、消すのに便利です。

  • -I でバイナリを無視する
  • $'\x' で特定のASCIIコードの文字を検索する
    • 今回はbackspace(^H == \x08)を削除したい

あたりがミソです。これとあわせて、CIやpre-commit hooksなどで制御文字を検知したり自動で削除する機構があると良さそうです。

どうぞご利用ください。

Arch LiunxのyayでAURからgconfをアップグレードする際にconfigure: error: XML::Parser perl module is required for intltool

自分向けメモ。

autoreconfで以下のようなエラーが出る場合の対処方法。

checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool

perl-xml-parserを入れてしまう。systemのPerlで利用できるので、plenvを利用している場合はsystem Perlに切り替えておく。

$ sudo pacman -Sy perl-xml-parser
$ plenv global system
$ yay -Syu --noconfirm --noprovides

自分のはてなブログで1年以上前の記事に警告を出すようにした

ふと自分のブログのアクセスログを見ていたところ、1年以上前の記事への参照が意外と多かった。過去記事全ての情報の鮮度に責任は負えないなと思ったので、1年以上前の記事には警告を出すようにした。例えば以下の記事には警告が出る。

masawada.hatenablog.jp

スクリプトも置いといたので、よければご利用ください。設定 > 詳細設定 > headに要素を追加 あたりに置くと動きます。はてなブログProをご利用中の方で「トップページの表示形式(PC版)」を「一覧形式」にしている場合は、各記事にのみ表示されます。

gitで自分が関わったことがあるファイルだけを一覧するワンライナー

$ git log --name-status --author="$(git config --get user.name)" | grep -E '^(A|M|D)\b' | awk '{ print $2 }' | sort | uniq

git logの最後にディレクトリ名を入れると、そのディレクトリ以下のファイル一覧を取得することができます。昔書き捨てたスクリプトがあった気がするんだけどどこにやったかな〜というときに便利です。どうぞご利用ください。