普通に一行削除するときとテーブルで一行削除するときとで、用いるコマンドが異なります。 こういうのは一本化しておきましょう。
ステノノート
ステノで文章を書くときテーブル機能が流用できます。 行の左端にあるハンドル、これを長押しするとメニューが出る。 これはこれで便利なんですけどね。
ただ、一行消すだけにこの作法は面倒くさい。
LineDelete.md
そこで「パラグラフを削除」と合体しました。
<%* e = app.workspace.activeLeaf.view.editor p = e.getCursor().line s = e.getLine(p) if(/^\s*(\d\.|-|\*|\+) /.test(s)){ s = "editor:delete-paragraph" }else{ if(/^\|/.test(s)){ s = "editor:table-row-delete" }else{ s = "editor:delete-paragraph" } } app.commands.executeCommandById(s) %>
これをTemplaterに登録。 Commanderのマクロにしてモバイルツールバーに置きます。 カーソル行を消すとき、ワンボタンで済むようになる。
PCの場合はホットキーに登録してお使いください。
悩みどころ
スクリプトからわかるように、 アウトライナー内では別の動作にしようとしたんですよ。 「ブランチの削除」みたいな。
でもそれって意外と意味がない。 「ブランチのカット」にして、 カットされた部分をクリップボードに保存することも考えましたが、 それをするのだったら他も「カーソル行をカット」にしないと辻褄が合わない。
ということで、 アウトライナーに関しては「そこだけ削除」にしました。 今回の目的は「テーブルで一行消したい」なので、 それを優先することにします。
コマンド実行について
Templaterは他のプラグインのコマンドを実行できます。
app.commands.executeCommandById("コマンドID")
コマンドIDを調べるには下記記事を参照してください。
dataviewを使って検索します。
Obsidian Basesになってdataviewが使えなくなったら、 どう調べればいいのだろう。 今から悩んでるわけですよ。
杞憂に終わればいいけど。
まとめ
合体怪人を量産しておくべきか。