basyura's blog

あしたになったらほんきだす。

Inkdrop : sidetoc 2.4.0 release

ヘッダーが無い場合には必要がない (表示するものが無い) ので非表示にしているけど、サイドバーをキー操作で非表示にしてしまっているのか意図的に非表示にしているのか分からないことがあるのでヘッダーが無くても領域を表示するオプションを追加した。

オプションは "常に表示する" にした方がよいかは迷った (将来的にゴチャゴチャしそう)。

keyhac - エラー発生時にコンソールを表示しない

キーカスタマイズツールの keyhac を大変ありがたく常用している。非常に柔軟で便利なのだけど、一点だけ気になるところがある。エラー発生時にコンソールが表示される。

エラー

ERROR : 予期しないエラーが発生しました : _onKeyDown

Traceback (most recent call last):
  File ".\keyhac_keymap.py", line 577, in strToMod
KeyError: '<C'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File ".\keyhac_keymap.py", line 1335, in setInput_FromString
  File ".\keyhac_keymap.py", line 579, in strToMod
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File ".\keyhac_keymap.py", line 975, in _onKeyDown
  File ".\keyhac_keymap.py", line 914, in _keyAction
  File ".\keyhac_keymap.py", line 1342, in setInput_FromString
ValueError

こういったエラーが発生した場合にコンソールウインドウが表示される。表示されるけど、 "だから何?" で操作には特に影響が無いのでウインドウを閉じる。日に何回か出る。無視して表示したままにしてもいいのだけど無駄に表示されているのを見ると閉じてしまう。気になる。そもそも表示されないで欲しい。

ソースコードがあるので何日かかけてビルドできるようにしたけど、結果的にはそんなことしなくてよかった。

python コードを直す

keyhac の実行フォルダに library.zip があるので、これを解凍する。 解凍後に作られた library フォルダを library.zip にリネームする。 * .pyc の代わりに対応する .py ファイルを置けば良い。

diff --git a/keyhac_consolewindow.py b/keyhac_consolewindow.py
index 779493b..cf59b01 100644
--- a/keyhac_consolewindow.py
+++ b/keyhac_consolewindow.py
@@ -434,7 +434,7 @@ class ConsoleWindow(ckit.TextWindow):
         class Stderr:
             def write( writer_self, s ):
                 writeCommon(s)
-                self.show(True,False)
+                //self.show(True,False)

         if not self.debug:

今回は keyhac_consolewindow.py を直して格納するだけ。

まとめ

また一つ便利になった。

が、ここまで書いて気がついたけどコメント行は # じゃないのか?内部エラー出てるのかもしれないけど、期待通りになっている (エラーコンソールが表示されない)。

vim - リンクしたファイルがリンクじゃなくなる

set backupcopy=yes
'backupcopy' 'bkc'   文字列   (UnixでのViの既定値: "yes"、それ以外: "auto")
            グローバル/バッファについてローカル |global-local|
    ファイルの書き込みをしてバックアップが作られるとき、その方法をこのオプ
    ションで指定する。このオプションはコンマで区切られた単語のリストである。

    主な値は次の通り:
    "yes"   先にファイルのコピーを作ってバックアップにして、更新した内容は
        元のファイルに上書きする
    "no"    先に元のファイルをリネームしてバックアップにして、更新した内容
        は新しいファイルに書き出す
    "auto"  どちらか適切な方を選ぶ

WindowsTerminal - タブのタイトルを変える

WIndowsTerminal + GitBash で zsh を使っているのだけど、たまにタブのタイトルが変わったまま戻らなくなる。気にしなくても困ることは無いのだけど、気持ちが落ち着かないので気楽に戻したい。通常は zsh のタイトルがついてる。

関数を定義すればいいだけだった。

function title() {
    echo -ne "\033]0;$1\007"
}

使い方

$ title zsh

べんり。

Bluesky の vim クライアント

ちょこちょこ作っては止まるを繰り返し中。tweetvim を作ってるときは謎のモチベーションがあったけど、今回はこれだけ動けばーで終わることが多い。今の主目的は tweetvim が動かなくなった結果、愚痴的なものを垂れ流す場所が無くなったことの代替。

Vim script だけで完結しても良かったのだけど、denops がおもしろそうだったので api 部分に使用。バッファへの書き込みも最初は使ってたけど、そこは Vim script の方が書きやすかったので分離。

今できること

  • タイムラインの表示 (ページめくり不可)
  • 任意のユーザーのタイムライン表示
  • post (テキストのみ)
  • like

ちょこちょこやる。

Inkdrop - sidetoc : サイドバーを常に表示する

サイドバー表示

ヘッダーが無い場合には必要がない (表示するものが無い) ので非表示にしているけど、サイドバーをキー操作で非表示にしてしまっているのか意図的に非表示にしているのか分からないことが割とある (記憶力)。

ちなみにのキーマップ。

"ctrl-l": "sidetoc:sidetoc-toggle"
"ctrl-n": "sidetoc:jump-next"
"ctrl-p": "sidetoc:jump-prev"
"ctrl-x ctrl-e": "sidetoc:wraptext-toggle"
"ctrl-x ctrl-0": "sidetoc:width-reset"
"ctrl-L": "sidetoc:width-decrease"
"ctrl-K": "sidetoc:width-increase"

ctrl-l で表示・非表示を切り替える。

ヘッダーが無くても表示するオプション

表示されてるかされてないか迷うんだったら、ずっと表示するオプションを追加してみる。 ヘッダーが無くても領域が表示されるけど、そもそも一定幅で折り返すようにスタイルを書いているので Distraction Free にしてウインドウ幅を狭くして使いたいときぐらいしか困らない。どちらにしろその場合は ctrl-l で非表示にするし。

まとめ

様子見運用してみる。

ChatGPT - メモリとカスタム指示

違いが分かりづらくフワフワしているので ChatGPT 4o に直接聞いてみた (リリースノートとか読まない)。

いくつか質問と回答を繰り返した結果、メモリは ChatGPT が動的に生成して保存するのに対して、カスタム指示は利用者が設定して保存することのよう。

メモリもカスタム指示も回答内容に同じように影響する。重複した内容は意味が無いようだ。よって、定期的にメモリの内容を確認して必要なものはカスタム指示に移し、メモリをクリアするのが効果的なようだ (と ChatGPT が回答した)。

メモリは ChatGPT 側で生成・削除できるのでこんなことができた。

僕: メモリの一覧を表示して

現在のメモリの内容は以下の通りです。

  1. ユーザーは簡潔な回答を好む。
  2. ユーザーは今後の回答に慎重さを求めている。
  3. ユーザーがメモリを更新してくださいと指示したときだけメモリを更新する。
  4. ユーザーは英語に翻訳する場合、自然なフレーズを優先することを好む。

僕: カスタム指示の一覧を表示して

現在のカスタム指示の一覧は以下の通りです。

  1. 簡潔に答えることを最優先にしてください。
  2. 指示を復唱しないでください。
  3. 半角文字と全角文字の間は前後に半角空白を入れて出力してください。

カスタム指示に変更や追加が必要であればお知らせください。

僕: メモリの中でカスタム指示と重複しているものを上げて

メモリの中でカスタム指示と重複しているものは以下の通りです。

  1. ユーザーは簡潔な回答を好む。

重複しているため、このメモリ項目は削除しても問題ないでしょう。どうしますか?

僕: 消してください

重複するメモリ項目を削除しました。他にご希望やご質問があればお知らせください。

僕: メモリの一覧を再表示

現在のメモリの内容は以下の通りです。

  1. ユーザーは今後の回答に慎重さを求めている。
  2. ユーザーがメモリを更新してくださいと指示したときだけメモリを更新する。
  3. ユーザーは英語に翻訳する場合、自然なフレーズを優先することを好む。

他に変更や追加が必要な場合はお知らせください。

いやぁ・・・未来だなぁ。

ちなみに、

僕: カスタム指示に "ユーザーは今後の回答に慎重さを求めている。" を追加して

としたら追加したような回答をするけど設定には反映されない。新しいセッションでは表示されないので追加を依頼したセッションでは有効なのかも。

あと、 "ユーザーがメモリを更新してくださいと指示したときだけメモリを更新する。" は無視される。指示の仕方が悪そうだが。