どの Windows キー バインドを探しているのかわかりません。おそらく、カット、コピー、ペーストですか? それはCUAと呼ばれ、デフォルトではこれらのキーバインディングは付属していませんが、簡単に追加できます. xemacs の CUA モードがあるサイトへのリンクを次に示します。XEmacs をインストールしてから、CUA モードを追加して、必要なものを効果的に作成できるはずです。
http://sites.google.com/site/olegalexandrov/xemacs
または、init.el ファイルに数行のキー割り当てを追加して、自分で追加することもできます。最初に Cx Ce を使用してバッファで実行し、動作することを確認してください。
私はキルリングを使用せず、別の方法でブロックをマークしたかったので、ここに挿入または添付しようとするファイル skm-mark-blocks.el にいくつかの関数を書きました。ファイルの最後に global-set-key 行があり、それらをテンプレートとして使用して、Windows キーを Windows と同じように機能させることができます。
-をちょきちょきと切る - - - - - - - - - - - - - - - - - - -
; skm-blocks.el
; バイレルとスティーブ・ミッチェル
; 2009 年 11 月 12 日
; ブロックを次のようにマークします。
; 最初と 2 番目のブロック エンド マーカーをマーキングするための同じキー
; 両端がマークされたら、ブロックをコピー、カット、移動、および削除するためのキー
;
; ゴール:
; すべてのブロック コマンドを実行するには: 左手でマーク、コピー、移動、デルなど
; 右手はカーソルキーでバッファ内に配置するために使用されます。
; Vedit+ メソッドを模倣して最初に書かれた方法 (右手用)::
; F9 で最初の端をマークし、
; F9 で 2 番目の端をマークし、
; 次に、Cntl-F9 (カーソルにコピー) または Alt-F9 (カーソルに移動)
; Vedit+ は、ブロックが強調表示されているときに削除キーを使用してブロックを削除します。ここでは機能しません
; そのため、強調表示されたブロックを削除するために、同じプレフィックス (super) を持つキーを定義します
;
; 可能な改善:
; vars を追加して、ブロック時にポイント (またはカーソル位置またはブロック マーカー) を移動する方法を選択します
; コピーされるなど。
; つまり、これらのものはブロックとともに移動し、元の場所にとどまり、
; または新しいブロックの最後に移動するなど。
; すべてのブロック端のマークを外す機能を追加しますか?
; 現在「3 番目の」端点をマークしている場合は、以前に選択した 2 つのブロック端点のマークを解除します
; 3番目の端をブロックの新しい最初の端をマークするものとしてカウントします
; 私のイニシャル以外のこの種のブロックマーキングの名前を見つけてください.
; 新しいキーの組み合わせで、柱状のブロック マーキング (長方形) を行う関数を追加します。
; vars を追加して、柱状ブロックのマーキングがどのように機能するか、挿入、上書きなどを構成します。
;
(defvar block-marker-highlight-mode 1
"block-marker-highlight-mode can have 3 values:
0 = highlighing is removed following a block copy or block move
1 = w/ a copy, orig block remains highlighted
w/ a move, block is highlighted at new position
2 = w/ copy or move, block is highlighted at new position" )
(defvar block-marker-end-position-mode t
"block-marker-end-position-mode has 2 values:
t = after a block copy/move, cursor is positioned at end of
挿入されたブロック
nil = after a block copy/move, cursor is positioned at beginning of inserted block
note: t is similar to the way Xemacs works by default")
(defvar block-mark1 (point-marker)) ; ブロックの最初の端を保持する var
(defvar block-mark2 (point-marker)) ; ブロックの 2 番目の端を保持する var
(defvar block-ends-marked 0) ; マークされた端がない場合は 0、マークされた端の数は ;1 または 2
(defvar block-copiedp nil) ;t ブロックがコピーされた場合
;-------- マークブロック --------------------------
(defun マークブロック ()
「ブロックの両端を skm タイプのブロックでマークします。」
(相互の作用)
(if ( or (eq block-ends-marked 0 ) (eq block-ends-marked 2)) ;ブロックの最初の端をマークしていますか?
(progn
(setq block-mark1 (point-marker))
(setq block-ends-marked 1)
(clear-highlighting )
(set-mark-command nil)) ;starts highlighting
( if (eq block-ends-marked 1) ; if there is 1 block marker already, we are marking the second end.
(progn (setq block-mark2 (point-marker))
(setq block-ends-marked 2)
(highlight-region ) ))) )
;-------- ブロックからポイントへのコピー -----------------
(defun copy-block-to-point ()
"skm でマークされたブロックを cur.cursor pos. にコピーします。"
(相互の作用)
(let ((開始位置 (点)))
(if ( < block-ends-marked 2)
(message "Both ends not marked: %d end(s) marked." block-ends-marked ) ;error if there aren't 2 ends marked
(save-excursion
(set-buffer (marker-buffer block-mark1))
(copy-to-register ?c block-mark1 block-mark2))
(insert-register ?c t)
(setq block-copiedp t)
(let ((end-pos (point)))
(if (eq block-marker-highlight-mode 0) ;0 = clear all highlighting
(clear-highlighting-at-point ( marker-buffer block-mark1) block-mark1)
(if (eq block-marker-highlight-mode 2 ) ;2 = highlight at new position
(progn
(clear-highlighting-at-point ( marker-buffer block-mark1) block-mark1)
(goto-char start-pos)
(push-mark)
(goto-char end-pos)
(highlight-region))))))
(if (not block-marker-end-position-mode) ;determine where to leave cursor
(goto-char start-pos)) ))
;-------- ブロックからポイントへの移動 -----------------
(defun move-block-to-point ()
"skm でマークされたブロックを現在のカーソル位置に移動します。"
(相互の作用)
(if ( < ブロック終了マーク付き 2)
(message "Both ends not marked: %d end(s) marked." block-ends-marked )
(save-excursion
(set-buffer (marker-buffer block-mark1))
(copy-to-register ?c block-mark1 block-mark2 t))
(let ((start-pos (point)) end-pos )
(insert-register ?c t)
(setq end-pos (point))
(setq block-copiedp t)
(clear-highlighting-at-point ( marker-buffer block-mark1) block-mark1)
(if (eq block-marker-highlight-mode 0) ;0 = clear all highlighting
nil
(goto-char start-pos)
(push-mark)
(goto-char end-pos)
(highlight-region))
(if (not block-marker-end-position-mode) ;determine where to leave cursor
(goto-char start-pos)) )))
;-------- カットブロック ---------------------------
(defun カットブロック ()
「ファイルから skm でマークされたブロックを切り取ります。」
(相互の作用)
(if ( < ブロック終了マーク付き 2)
(message "Both ends not marked: %d end(s) marked." block-ends-marked )
(copy-to-register ?c block-mark1 block-mark2 t)
(setq block-copiedp t)))
;------ ブロックを永続的にハイライトする -----------
(defun ハイライト領域 ()
(相互の作用)
(let (new-extent) (setq new-extent (make-extent (マーク t) (ポイント)))
(set-extent-property new-extent 'face 'zmacs-region)
(set-extent-property new-extent 'wordstar-block t)))
;--------- バッファ内のハイライトされたブロックをクリア -----------
(defun clear-highlighting-whole-buffer (&optional バッファ)
(相互の作用)
(let ((highlighted-list (extent-list buffer nil nil nil 'face 'zmacs-region)))
(while highlighted-list
(delete-extent (car highlighted-list))
(setq highlighted-list (cdr highlighted-list)))))
(defun clear-highlighting-at point (&optional バッファ位置)
(相互の作用)
(if (位置ではない)
(setq position (point)))
(while (extent-at position buffer 'wordstar-block nil 'at )
(delete-extent (extent-at position buffer 'wordstar-block nil 'at )) ))
;------------ キー割り当て ------------------
;--- VEdit+ メソッドを模倣するキー割り当て
;--- アルゴリズムが正しいことを確認する
;--- 不要になったらコメントアウトする
(グローバル セット キー [ f9 ] 'マーク ブロック)
(global-set-key [ (control f9) ] 'copy-block-to-point)
(global-set-key [ (meta f9) ] 'move-block-to-point)
(global-set-key [ (control meta f9) ] 'cut-block) ; Vedit ではなく、テスト用
(global-set-key [ (control shift f9) ] 'clear-highlighting) ; Vedit ではなく、テスト用
;------- 左手用のキー割り当て
;--- スーパー キー (左の Windows ロゴ キー) シフトのみを使用
; Windows はスーパー キーを先取りするため、Windows の xemacs では機能しません
; Windowsのxemacsで動作するものを見つけるために実験する必要があります...
(グローバル セット キー [ (スーパー スペース) ] 'マーク ブロック)
(global-set-key [ (super v) ] 'copy-block-to-point) ;ニーモニック: 挿入の V、V (くさび) をドライブ
(global-set-key [ (super m) ] 'move-block-to-point) ;ニーモニック: 移動の M
(global-set-key [ (super c) ] 'cut-block) ;ニーモニック: CutのC
(global-set-key [ (super n) ] 'clear-highlighting-at-point)
;ニーモニック: N は強調表示なしと考えてください
--中略----------------- これがいかに簡単かを理解するのに役立つことを願っています. コードがこのメッセージにどのように挿入されたかを見た後、このエディターにコードを挿入する練習が必要であることは明らかです (にやにや笑い)。