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 以外のフォントだとはみ出すんだが。
なにがどうしてこうなるのか全然わからん。