◀一般トップへ
  • 5451 キーバインドについて
    • 5454 Re:キーバインドについて
    • 5456 Re: キーバインドについて
      • 5457 Re2: キーバインドについて
        • 5458 Re3: キーバインドについて
          • 5459 Re4: キーバインドについて
            • 5461 Re5: キーバインドについて
        • 5462 Re3: キーバインドについて
    • 5460 Re:キーバインドについて
      • 5463 Re2:キーバインドについて
      • 5471 Re2:キーバインドについて
  • [5451] キーバインドについて けん 2006年09月26日 07:56

    けんです。

    サクラのキーバインドをemacsの
    CTL-K,CTL-Yと同じ機能を実現するには、
    どのようにしたらよろしいでしょうか?

    たとえば、

    ***********
    123
    456
    789
    ***********

    上記のようにある場合に
    emacsでは
    CTL-Kで、削除して
    CTL-Y 一回で
    三行分ペーストできる
    ので、
    サクラで実現する方法はあるでしょうか?


    • [5454] Re:キーバインドについて maru 2006年09月27日 02:05

      ▼ けんさん
      C-kに相当する動作は

      S_GoLineEnd_Sel();
      S_Cut();

      のようなマクロで実現できると思います。

      > 一回で三行分ペーストできる
      この部分はおっしゃる意味がわかりません。
    • [5456] Re: キーバインドについて しみづ 2006年09月27日 06:28


       昔ちょっと使ったemacsライクのエディタのヘルプをみると、

      >CTL-Kで、削除して

      kill-line C-k カーソル以降の一行削除

      >CTL-Y 一回で
      >三行分ペーストできる

      yank C-y KILL バッファ内容の挿入

      ということでしょうか。

       とにかく、「設定」-「共通設定」の「キー割り当て」タブで「種別」を「編集系」にすると確認できるように、CTL-Kは「行末まで切り取り」に、CTL-Yは「やり直し」に割り当てられています。
       私も「三行分」というのがよくわからない。ファイル中に三行しかなくて、全部削除して、ペーストすると三行分挿入するということでしょうか。

      • [5457] Re2: キーバインドについて けん 2006年09月27日 07:46

        けんです。

        おっしゃるとおり、

        yank C-y KILL バッファ内容の挿入

        を実現したいのです
        • [5458] Re3: キーバインドについて しみづ 2006年09月27日 08:30

          >おっしゃるとおり、
          >
          >yank C-y KILL バッファ内容の挿入
          >
          >を実現したいのです

           どの部分が「おっしゃるとおり」なのか、あいかわらず説明が足りないですが、もしyankをCTL-Yに割り当てたいなら、前述の設定画面で、「やり直し」を他のキーに割り当てて、「種別」を「クリップボード系」にした「貼り付け」をCTL-Yに割り当てたらいいのでは。
          • [5459] Re4: キーバインドについて じゅうじ 2006年09月27日 10:46

            ▼ しみづさん
            http://www.unixuser.org/~euske/
            doc/emacsref/#cutcopydel
            C-k 3回に分けてcutするようです。
            • [5461] Re5: キーバインドについて しみづ 2006年09月27日 13:46

              ▼ じゅうじさん

              >C-k 3回に分けてcutするようです。

               ありがとうございます。でもそのページ(リンク中に改行はいってませんか)で3回に分けるという説明を見つけられませんでした。
               その可能性も考えていましたが、「10.その他」の項にある回数指定を使うのではないでしょうか。emacsはあまり知りませんが、viはずっと使っていて、「d3$」と入力すると3つ目の改行までを削除し、一つのバッファに入るので一度のyankで3行分挿入されます。
               その部分が本題なのかなあ。

        • [5462] Re3: キーバインドについて じゅうじ 2006年09月28日 08:38

          ▼ けんさん
          C-yに相当する動作は、キーバインド以外に

          S_Paste();

          マクロでも実現できます。

          C-k は、一筋縄では行かないようです、キー入力は、先頭が開始位置なら6回するようです。
    • [5460] Re:キーバインドについて miau 2006年09月27日 11:56

      > emacsでは
      > CTL-Kで、削除して
      > CTL-Y 一回で
      > 三行分ペーストできる

      これだけでは emacs 使ってない方には通じないかと。

      ・1回目の CTL+K では KILL バッファに 123 が保存される
      ・2回目の CTL+K では KILL バッファに 456 が追記される
      ・3回目の CTL+K では KILL バッファに 789 が追記される
      ・CTL+Y で 3 行まとめて貼り付けられる

      ということですよね。
      キーバインドだけの問題ではないので、基本的にはできないと思います。

      秀丸なんかにある「追加切り取り」「追加コピー」の機能があれば
      マクロで実現できそうな気はしますが・・・
      よく見るとサクラエディタにその機能ないみたいですね。
      機能追加していただけると助かります>開発者の方々

      # マクロを使うにしても「1回目かどうか」の判定は
      # トリッキーな方法になりそうですね。
      • [5463] Re2:キーバインドについて しみづ 2006年09月28日 09:12

        >・1回目の CTL+K では KILL バッファに 123 が保存される
        >・2回目の CTL+K では KILL バッファに 456 が追記される
        >・3回目の CTL+K では KILL バッファに 789 が追記される
        >・CTL+Y で 3 行まとめて貼り付けられる
        >
        >ということですよね。

         昔のemacsライクのエディタを動かしてみました。チュートリアルに上記のように動くと書いてありました。

        ># マクロを使うにしても「1回目かどうか」の判定は
        ># トリッキーな方法になりそうですね。

         ちょっといじってみたら、間にカーソル移動などを行うと、まとめては出てこないようですので、「1回目かどうか」はマクロを起動した時と解釈して、「次も削除するか」のポップアップを出し続けて、「いいえ」を答えるまで行を蓄えておいて、最終的にクリップボードに送ればいいのではないでしょうか。

      • [5471] Re2:キーバインドについて しみづ 2006年09月29日 01:30

         追加切り取りのマクロって、既にあったんですね。
        >>macro:141