[xyzzy:06789] Re: C++ モードでプログラムしていて
- Subject: [xyzzy:06789] Re: C++ モードでプログラムしていて
- From: MATUDA Rito <rito.m@xxxxxxxxxxxxx>
- X-mailer: EdMax Ver2.85
まつだです
片岡さんこんにちは
> (insert "//") ←部分をdeleteに変えれば、
> 消えるかな?と勝手に思っていたのですが引数が足りないようで怒られます。
> それ以前に、deleteとしたところで目的の"//"だけ消すことができるのでしょうか?
> ?
deleteはsequence(リスト、と理解してよろしいのでしょうか? > 皆様)から
itemと一致するものを削除する関数なので、文字を削除するならdelete-charとか
delete-regionなんかを使うのだと思います。
ただ、単純に行頭の"//"を消せばよいのであればを、置換系の関数を使って"^//"
を""に置き換えちゃうが手っ取り早いかもしれません。以下、ささっと書いてみま
したが、
(defun rito-c++-outcomment-selection ()
(interactive)
(or (pre-selection-p)
(error "selectionを設定してください"))
(let ((from (selection-mark))
(to (selection-point)))
(if (> from to)
(rotatef from to))
(save-excursion
(save-restriction
(narrow-to-region from to)
(goto-char from)
(replace-buffer "^//" "" :regexp t)))))
;; ちゃんとテストしてないので不安です(^^;;;)
> > > ○ 単語中(ならどこでも)において
> > > キーバインドで設定してあるキーを押したら
> > > 単語選択+コピーができる。
>
> またまた松田さんのを使わせていただきます。
> うわ、めちゃくちゃ便利です。
お役に立てて光栄です
> > | ○ マクロ選択Dialogがキーバインド一発で出る。
> > load-kbd-macro を適当なキーに割り当ててください。
>
> 出ました!
> ただ、デフォルトでフォーカスのあたっているボタンを
> 別のものにできないものでしょうか?
> # 例えば、マクロ選択Dialogで言う、「読込み」を「実行」に変えたいとか・・
> ・。
めっちゃベタですけど、こんなのはダメでしょうか。
(ボタンやタイトルバーのキャプションは全角カタカナに変えてます)
(defun rito-load-kbd-macro ()
(interactive)
(multiple-value-bind (result data)
(dialog-box
'(dialog 0 0 187 135
(:caption "キーボードマクロの読み込み")
(:font 9 "MS Pゴシック")
(:control
(:listbox list nil #x50a10113 7 7 119 121)
(:button exec "実行(&E)" #x50010001 130 7 50 14)
(:button load "読み込み(&L)" #x50010000 130 24 50 14)
(:button remove "削除(&D)" #x50010000 130 41 50 14)
(:button IDCANCEL "キャンセル" #x50010000 130 58 50 14)))
;; *saved-kbd-macro-alist*がexportされてないので
(list (cons 'list ed::*saved-kbd-macro-alist*))
'((list :must-match t :enable (load exec remove))))
(let ((selected (cdr (assoc 'list data))))
(when selected
(cond ((eq result 'load)
(setq *last-kbd-macro* (cdr selected)))
((eq result 'exec)
(command-execute (cdr selected)))
((eq result 'remove)
(setq ed::*saved-kbd-macro-alist*
(delete selected
ed::*saved-kbd-macro-alist*
:test #'eq))))))))
--
松田 里都
rito.m@xxxxxxxxxxxxx