[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:06789] Re: C++ モードでプログラムしていて



まつだです
片岡さんこんにちは

>  (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

Index Home