0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CUIでタグを付けるソフトを自作して使っているので紹介

Posted at

この記事はなに?

僕の作った便利ツールである、これの紹介。身も蓋もない。

下記でインストールできます。

pip install git+https://github.com/uesseu/ntag

タグは便利である

みなさん、タグ使ってますか?使ってますよね。なにしろ、このqiitaの記事にすらタグが付いています。パッと思いつく限り

  • gmail
  • qiita
  • iTunes

などなど、挙げればきりがないです。メール、記事、音楽などを皆さんはタグで管理しています。2025年2月現在、僕は婚活していますが、婚活アプリもタグ管理です。人間すらタグで管理されるのです。

ファイルをタグで管理しよう

WindowsにもMacOSにもタグが標準でついています。皆さん、使っていますか?僕は…使っていません!何故か?僕はTerminalの中に引きこもってvimを弄るキモオタだからです!
GUIにあれだけタグがありますが、CUIの世界にはどうでしょうか?実はあるんですよ。調べれば、あります。詳しくはググれ。でも、僕が満足できるものはなかったのです。
僕が欲しかったのは以下のような性能です。

  • ディレクトリ単位で管理
  • inode/file indexベース
  • CUIやvimで使いやすい
  • いろどりが豊かである
  • マルチプラットホーム
  • pythonとか軽量言語で作ってあとで改造できる

というわけで作ったのです。inode/file indexベースなので、例えファイルやディレクトリを移動してもちゃんと追跡できます。

使い方

gitみたいに特定のディレクトリをリポジトリにします。

ntag init

で、タグを作ります。

echo hoge | ntag make

標準入出力かよ!と思われるでしょうが、このソフトは基本標準入出力で動きます。理由は大量のファイルとタグを管理するためにはコマンドライン引数では苦しいからです。大量のファイルを捌くために、非同期的にファイル名をパイプに渡すように作っていますし。

ここで、タグを確認します。

ntag list

色もつけましょうね。この機能は現時点ではwindowsでは動きません。

ntag color

対話的に設定できます。

では、タグを付けましょう。

echo filename.md | ntag add hoge

あとは

ntag filter red

こんな感じになります。

filename.md [ red ]

これでfilename.mdにredが付いているのが確認できるはずです。ちなみに、タグを指定せずにfilterコマンドを打つと全てのファイルを絞りこまずに表示します。

ntag filter

これはパイプで繋いでいけます。下記はredが付いていてかつblueとyellowのいずれかが付いているのを絞りこみます。

ntag filter red | ntag filter blue yellow

パイプに流す時にはタグは流しません。ttyの上だけでタグを表示します。
例えばこんな感じにすると、currentというタグが付いていて、かつ'.py'という文字列が付いているファイルのみをvimで編集することになります。

vim $(ntag filter current | grep .py)

inode上書き対策

ファイルを上書きする時にinodeを変更されたら追跡できなくなります。vimの場合このようにすればinodeを上書きしなくなるので大丈夫です。

set backupcopy=yes

vscodeやemacsでどうすればいいのかは僕にはわかりませんが、できるでしょう、多分。

他の機能

コメントを付けられます。

現時点での不備

僕自身は割と便利に使っているのですが、僕がlinuxユーザーなのであまりwindowsに配慮していないです。というか、自分しか使わねーだろという発想がある…。
誰か興味あればちゃんと整備します。既知の問題は下記の通りです。

  • Windowsでの検証が不十分
    • 特に色関連はなにもしていない
  • インポート/エクスポートのテストが不十分
  • MacOSを持っていないのでそこはわからん

おわりに

本当に僕以外あまり使う人がいないなら、ゆっくりと整備をつづけていくことになろうかと思いますが、興味がある人がいればモチベーションはあがるかも。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?