snippet の置換部分を全部消した時
なんか中の人に催促するようで申し訳ないのだが調べてみた。
全部消した後で入力しても連動する部分が出てこない
("from" "from ${1:module} import ${2:symbol}${3/./ as }${3:alias}$0" nil 0)
なんてので
#展開した状態から from module import obj as alias #${3:alias} んとこを消して from module import obj! # "alias" を消したんで " as " も消える #「やっぱ alias つけとく」 from module import objsp! # " as " が出てこない
${n/regexp/format/} の前後が ${n:default} とかだとダメ?前か後ろに snippet で変わったりしない文字置いとけばだいじょぶっぽい。
削除したのに気付いてくれないことがあった(解決済み)
from module import obj as !alias # "alias" が選択状態 #から "alias" を消しても from module import obj as ! # " as " が残ってちゃう
消し方によってちゃんと消えてくれたり残ったりする。
- だいじょぶなの
- delete-char-or-selection
- backward-delete-char-untabify-or-selection
- だめなの
- py-electric-backspace
- html+-backward-delete-char-untabify-or-selection
- html+-delete-char-or-selection
モード特有のがダメなら *snippet-mode-map* の C-d とか書き換えちまえばいくね?とか思って snippet.l 見たら原因わかった。snippet-modify-command に登録してあるコマンドのときだけ動くのね。ちゃんとコメントついてるのに気付かんとは、まったく。
コマンドを登録するよりは *snippet-mode-map* の C-d と C-b*1, BS*2 を登録してあるやつにしとく方が楽そうなんでそうしといた。
;~/.xyzzy に (define-key ed::*snippet-mode-map* #\C-d 'delete-char-or-selection) (define-key ed::*snippet-mode-map* #\C-b 'backward-delete-char-untabify-or-selection) (define-key ed::*snippet-mode-map* #\F24 'backward-delete-char-untabify-or-selection)
"ed::" つけないと *snippet-mode-map* なんかねーよって怒られた。