Fedora 37 で今頃気がついたけど。
Anthy の辞書がまた PageDown でページ送りができなくなっているじゃん。
/usr/share/ibus-anthy/engine/engine.py は八月に更新されているな。
バッチは当ててくれなかったのか、気がつかなかったようで。
do_page_down なんてメソッドは定義されていないよメンテナさん。
しかたがない、今回も自前バッチを。
#!/usr/bin/env python3
'''
Fedora 37 の Anthy で PageUp(Down) にて辞書送りできないのを修正
コピペして sudo で実行しログインのやりなおし
万が一失敗したら gnome-softwere から入れ直しで元通り
'''
import os
os.chdir('/usr/share/ibus-anthy/engine')
with open('engine.py') as f:
src = f.read()
dst = src.replace('do_page_up()', '__page_up(0)', 1).replace('do_page_down()', '__page_down(0)', 1)
with open('engine.py', 'w') as g:
g.write(dst)
今回は replace で。
いや Python の open には r+ という読み書きモードがあるんだけど?
と思うかもだけど r+ は使わないほうがいいよ。
#!/usr/bin/env python3
import os
with open('rw.txt', 'w') as f:
f.write('ABCDEFG')
with open('rw.txt', 'r+') as f:
src = f.read()
#
# 巻き戻すのを忘れずに
f.seek(0)
#
# r+ での書き込みは以前の内容が残る
dst = src.replace('ABCDE', 'a', 1)
f.write(dst)
#
# 確認
f.seek(0)
print(f.read())
#
#=> 'aFGDEFG'
ね。
書き出しが短いと最初の語尾が残ってしまうんです。
文字数を合わせる、又はそれ以上なら問題ないんですけど。
ただ文字数を合わせても日本語だと以下のように。
#!/usr/bin/env python3
import os
with open('rw2.txt', 'w') as f:
f.write('あいうえお')
with open('rw2.txt', 'r+') as f:
src = f.read()
f.seek(0)
#
# write は UTF-8 で書き出す
dst = src.replace('あいう', 'aiu', 1)
f.write(dst)
#
# 確認
f.seek(0)
print(f.read())
#
#=> 'aiuえおえお'
日本語はほぼ 3byte なので。
対策はあるんだろうけど、一番の対策は使わないことですよね。
ところで Nautilus 43 のリネームで入力メソッド切り替えが初回が無視される。
いやこれ US 配列キーボード愛用者以外には関係ないといえばそうなんですけど。
Ctrl+J のほうを使えばいいんだけど macOS と同じコッチを使ってしまうし。
Fedora とは関係ないけど GTK4 になった GHex もなんかおかしいな。
Source Code Pro 以外のフォントだとはみ出すんだが。
なにがどうしてこうなるのか全然わからん。



