windows環境でscrapboxに似せた個人的テキストファイルシステム
追記:こちらの方法に乗り換えました
追記ここまで
個人でprivate projectでscrapboxを使っている場合の代替方法
prirvateのscrapboxの項目が増えすぎて、不便になってきた(全部表示するのに時間がかかるので、素早く扱えない)ので、いい方法ないかと考えた
検索も便利に使いたい
リンクも少し使えると嬉しい
ということから、windowsローカルでscrapboxに似たようなことできないかと考えた結果です
今2600ファイルくらいになっています
あくまで一人用のやり方です
シェルスクリプトを使っていますが、pythonでもなんでもできると思います
見た目がおおまかにちょっと似るだけですが
ファイルアイコンがグリッドでプレビューも兼ねるようにする
ファイルの一行目をファイル名にする
保存は自動更新にする
画像はファイルパスから別アプリで表示するくらいならできる
などの特徴があります
メリットは
すごく早い
必要ならフォルダ機能を使える(自分は1フォルダでやっています)
タイトル(一行目)の全角スペースが半角スペースに変えられてしまうことがない
テキストエディタのタブでファイルを何枚でも同時に開ける
Grep検索も便利
です
デメリットは
テキスト間リンクは指定がめんどくさい、scrapboxのようなリンクバックはない
です
以下がポイントです
エディタの自動保存を有効にする
自動更新にしたほうが便利なので
「テキストみるみる」を入れる(ファイルアイコンのグリッド&プレビュー化)
「テキストみるみる」テキストファイルの内容をファイルのアイコンで確認 - 窓の杜
windowsストアからubuntuを入れて、シェルスクリプトを使えるようにする
Windows Subsystem for Linuxをインストールしてみよう! - Qiita
毎回テキストファイルを新規作成するのはめんどくさいので、シェルスクリプトで一括作成する
文章を新規作成するときは、中身だけ編集する
シェルスクリプトで短時間に大量ファイルを作成する方法|茶トラネコ日記
code:sh
for i in {1..20}; do
echo "ABCDE" > "${i}.txt"
done
exit 0;
最初のころは、別フォルダに連番で数百ファイルを作って、適宜作業用のフォルダに移していく方法でやっていました
最近は新規ファイルを作るペースが落ちたので、50ファイルずつくらいを作業用フォルダの中に作成しています
注意点ですが、リネーム前にファイルを新規作成すると、書いた内容が失われます
中身だけ編集したファイルがたまってきたら、
下のシェルスクリプトを使って、ファイル一行目でファイル名をリネームさせる
ファイル一行目をファイル名に変換するスクリプト - Qiita
code:sh
for file in *.txt; do
firstline=$(head -n 1 "$file" | tr '/' '-')
mv "$file" "${firstline}.txt"
fi
done
編集済みファイルの一行目を編集するとそのファイル名も変わります
なぜかは分かりませんが、普通にエディタから作成したテキストファイルをリネームしようとすると、中黒(・)が混じったりして微妙にうまくいきませんでした
ファイルをアクセス時間順に並べたい場合
もし秀丸エディタを使っていれば、マクロ機能を使って、起動時にファイルを編集してそれを元に戻すような自動起動マクロを書いて使えばよいです
ファイルを開くと更新時刻が更新されるので、アクセス時間順と同じことになります。
code:hidemaru macro
//---ここから
//autoupdate.MAC
gofileend;
insert "\n";
save;
backspace;
gofiletop;
endmacro;
//---ここまで
こういう単純なので十分です
しばらく使っていたのですが、使わなくなりました
検索
grep検索を使います
リンクについて
対応できるエディタとできないエディタがあると思いますが、秀丸とかのエディタだと、テキストファイル内で、ローカルファイルのパスをクリック可能なリンクとして認識させることが可能です
(scrapboxのようなリンクバックは当然ありません。一方向です)
https://gyazo.com/25b7200bd721a28a715aacfc39d6a845
デスクトップ上のtextというフォルダしか使ってませんので、秀丸のファイル名と思わしき場所の正規表現による指定で
c:\\users\\username\\desktop\\text.*
usernameのところは書き換え必要
としています
フルファイルパスの取得