RR-automateの改良
Jake Paulの画像追加
DiscordにもJake Paulをなんとかしてくれ、というリクエストがあったけど、ほんとこれ欠片をゲットできないから強化できないし完全オワコンヒーローなんだよね
R.I.P.
こんな関数はどう作るといいの?
- エラーの数を返す
- さらに何らかのリストを作って返したい
- 呼び出し元がリストを渡して、関数の中で追加する、というのはやりたくない
- すると、
return (error_count, some_list)
ってやるの?
Result型というのが似てるけど、ちょっと違う
PythonでのResult型、returnsでエラー処理してみる #Python - Qiita
そういう型をつくるのかな
もしかして根本的に考え方間違ってる?
クラスのメソッドが自分を返すとき
class Aaa:
def method(self) -> Aaa:
return self
は動かないので文字列にするか
class Aaa:
def method(self) -> 'Aaa':
return self
なんか長々しいのをimportするとよい
from __future__ import annotations
class Aaa:
def method(self) -> Aaa:
return self
オブジェクトを文字列にするのは__str__を定義するとよい
参考:クラスの特殊メソッド 文字列型「str」に変換する str - ALL Python(オールパイソン)
Heroクラスがあって、nameにZeusとか入ってるんだけど普通にprintしたのと、__str__(self): return self.name
を作っておいたのを比較
python:普通 (Pdb) print(_hero) <modules.rushroyale_stats.Hero object at 0x0000011F118D1610>
python:__str__ 作っておいたほう (Pdb) print(_hero) Zeus
とやってくれる。けどカンストかどうかわからなくなってしまったのでそこなんとかしないと
親クラスのメソッドを呼ぶ
super()を使うとよい
class Aaa:
def method_name(self):
なにかする
class Xxx(Aaa):
def method_name(self):
super().method_name()
WezTermの起動時の場所とサイズ設定
これ意外と見つからなかった
起動時オプションもあるらしいけどそうじゃなくってwezterm.luaでやる方法
こんな風にしたらできた
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
local mux = wezterm.mux
-- position and size
wezterm.on('gui-startup', function(cmd)
local tab, pane, window = mux.spawn_window(cmd or {width=158, height=56})
window:gui_window():set_position(0,0)
window:set_inner_size(800, 1020)
end)
mux_spawn_windowの引数にデフォルトの幅と高さを渡しているが、これは158文字、56行ということ、pixelとか%じゃないので注意(ほとんどのエディタがそうかもしれない)
参考:
Add an option set the initial window position · Issue #1794 · wez/weztermのやりとり
公式のリファレンスが役に立つ
- https://wezfurlong.org/wezterm/config/lua/gui-events/gui-startup.html
- https://wezfurlong.org/wezterm/config/lua/window/set_position.html
- https://wezfurlong.org/wezterm/config/lua/wezterm.mux/spawn_window.html
neovim関連
pythonのコードを折りたたむ
vim.o.foldmethodあたりの2行追加
config = function()
if vim.loop.os_uname().sysname == 'Linux' then
local configs = require('nvim-treesitter.configs')
configs.setup({
ensure_installed = { 'lua', 'python', 'yaml', 'json', 'markdown' },
sync_install = false,
highlight = { enable = true },
indent = { enable = true },
})
end
-- fold
vim.o.foldmethod = 'expr' -- ココ
vim.o.foldexpr = 'nvim_treesitter#foldexpr()' -- ココ
end
foldの使い方:
- zoで折りたたみを一段階開き、zOで折りたたみを全部開く
- zcで折りたたみを閉じ、zCで全部閉じる
- zRでファイル全体の折りたたみを開く
いずれもカーソル下、もしくは選択範囲に有効
ファイル全体対象のもあるはず
参考:
[Treesitter code folding : r/neovim]
これはリンクを張れなかった。内容がよろしくない的なのがでた
リンクじゃなくして張り付ける
https://www.レディっと.com/r/neovim/comments/njew3z/treesitter_code_folding/
デバッグしたい、、
pdb.set_traceで止めてみるのいい加減いやになってきた
いずれこのあたり参考にしてよくしたい
画像表示したい
- このあたりかなあ
3rd/image.nvim: 🖼️ Bringing images to Neovim.
WezTermだとueberzugppないと動かないかも
jstkdng/ueberzugpp: Drop in replacement for ueberzug written in C++ - あとはこれ
edluffy/hologram.nvim: 👻 A cross platform terminal image viewer for Neovim. Extensible and fast, written in Lua and C. Works on macOS and Linux. - WezTerm向きなのあった!
adelarsq/image_preview.nvim: Image Preview for Neovim 🖼
-> けど動かない - telescopeのもあった!けどだめ
nvim-telescope/telescope-media-files.nvim: Telescope extension to preview media files using Ueberzug.- ここと同じエラー、Winでは出てくるけどUbuntu on WSLでは何も出てこない
Telescope-media-files not works · Issue #11 · nvim-telescope/telescope-media-files.nvim
- ここと同じエラー、Winでは出てくるけどUbuntu on WSLでは何も出てこない
ちょっとよくわからないな、、、今はあきらめよう
Neovim の Terminal で画像表示や動画再生 #Linux - Qiita
sixel、libvtermあたりがキーワードっぽいけど
Wezterm用の何かがあった
もうすこしだけ頑張ってみた
WezTermでUbuntu on WSL2を起動、img2sixelを使ってみた
がやっぱだめ
apt install libsixel-dev libsixel-bin してimg2sixelしたけど表示されない
ターミナルはWezTermなのでsixelに対応していると思うんだけどな
参考?: libsixel package : Ubuntu
なんかよくわからないけど画像をSIXELフォーマットという文字列に変換、ターミナルによってはその文字列を受け取ったときに文字ではなく画像として表示する、ということかと思いますが、門外漢すぎてわかりません、、
参考:
- saitoha/libsixel: A SIXEL encoder/decoder implementation derived from kmiya's sixel (https://github.com/saitoha/sixel).
- WSLtty と Libsixel と PulseAudio でコンソールからマルチメディアを楽しむ / Cygwin で PulseAudio 13.0 をビルドする #WSL - Qiita
- Sixel Graphicsを活用したアプリケーションの御紹介 #SIXEL - Qiita
- Neovim 上で Sixel 画像を表示する - あめだまふぁくとりー
もしかしたらimg2sixelがWindowsで動いてなくてUbuntuで動いているからダメとか?img2sixelはWinで動かさないといけないとか?
sixelのビルド関連
- saitoha/libsixel: A SIXEL encoder/decoder implementation derived from kmiya's sixel (https://github.com/saitoha/sixel).
- WSL の MinGW-w64 で Windows 用の実行バイナリを作成する #C++ - Qiita
- https://www.mingw-w64.org/downloads/
関連のnvimプラグイン
-
kawarimidoll/kawarimiline.vim: A fancy tiny scroll indicator in Vim 🌈
めっちゃいい、こんなの作りたい、画像差し替えとか簡単にできないんだろうか - dharmx/telescope-media.nvim: Complete rewrite. Pure Lua.
neovim-remote
mhinz/neovim-remote: Support for --remote and friends.
nvrでいい感じになるんだけど、右側のバッファに表示したいけど今のバッファに表示される
Seamlessly editing remote files in (Neo)Vim with Netrw and scp
コマンドラインカッコよく
普通は最下行がコマンドラインだけど、ポップアップするようになる
VonHeikemen/fine-cmdline.nvim: Enter ex-commands in a nice floating input.
物珍しいのでちょっと使ってみる
たぶん飽きて削除しそう
下に「挿入」とモード表示されるのがうざい
しばらくつかって不安定なのでやめた
:とfine-cmdlineを間違えたとき、たまに固まる
いままでの「:」から完全に乗り換えるならありかも
その他
- hrsh7th/nvim-cmp: A completion plugin for neovim coded in Lua. 自動補完
- noice.nvim のfilterの設定難しすぎて死んだ #neovim - Qiita
- 【Neovim】memolist.vimを使ってメモをとり、telescope-memo.nvimで検索する
- migemoでローマ字検索
- syougoさんのDark Poweredなプラグインはすごい感じがするが使いこなせない気がするので入れてない、けどdefxというカスタマイズ自由なファイラは気になっている
- バッファ系
git statusで日本語名が化ける
あちこちで書かれているのでやりかただけ
git config --global core.quotepath false
でOK
また、git diffで日本語が化けるときは、
git config --global core.pager "LESSCHARSET=utf-8 less"
とやるとよいそうだ、けど自分のところではしなくても平気だった