途中までです。 @でvimキーバインド ノーマルモード iでインサートモード
矩形選択をマウスでしなけらばならないと知って、愕然としました。
でこれ以上やる気がうせました。
やっぱり emacsとか,xyzzy とかは難しい。
C:\Users\moto\.xyzzy
;コマンドモード
;インサートモード
(defun del-key()
(interactive)
(global-unset-key '(#\a ))
(global-unset-key '(#\b ))
(global-unset-key '(#\c ))
(global-unset-key '(#\d ))
(global-unset-key '(#\e ))
(global-unset-key '(#\f ))
(global-unset-key '(#\g ))
(global-unset-key '(#\h ))
(global-unset-key '(#\i ))
(global-unset-key '(#\j ))
(global-unset-key '(#\k ))
(global-unset-key '(#\l ))
(global-unset-key '(#\m ))
(global-unset-key '(#\n ))
(global-unset-key '(#\o ))
(global-unset-key '(#\p ))
(global-unset-key '(#\q ))
(global-unset-key '(#\r ))
(global-unset-key '(#\s ))
(global-unset-key '(#\t ))
(global-unset-key '(#\u ))
(global-unset-key '(#\v ))
(global-unset-key '(#\w ))
(global-unset-key '(#\x ))
(global-unset-key '(#\y ))
(global-unset-key '(#\z ))
(global-unset-key '(#\i))
(global-unset-key '(#\l))
(global-unset-key '(#\h))
(global-unset-key '(#\j))
(global-unset-key '(#\g #\g))
(global-unset-key '(#\g #\e))
(global-unset-key '(#\g #\n))
(global-unset-key '(#\z #\z))
(global-unset-key '(#\C-j))
(global-unset-key '(#\C-k))
(global-unset-key '(#\0))
(global-unset-key '(#\o))
(global-unset-key '(#\d #\d))
(global-unset-key '(#\d #\e))
(global-unset-key '(#\y #\y))
(global-unset-key '(#\y #\w))
(global-unset-key '(#\x))
(global-unset-key '(#\p))
(global-unset-key '(#\u))
(global-unset-key '(#\s))
(global-unset-key '(#\: #\q))
)
;参考サイト
;xyzzy
;http://www.uranus.dti.ne.jp/~shiro-/soft/xyzzy/keybind.html
;▲ page top
;C-iやC-mに別の機能を割り当てる
;(setf (svref *kbd-translate-table* (char-code #\[キー1])) #\[キー2])
;(global-set-key #\[キー2] '[関数名])
; 一部のキーは、以下のように「同じもの」とみなされています。
;
;Enter #\C-m
;Tab #\C-i
;Backspace #\C-h
;Delete #\C-?
;Esc #\C-[
;LFD(Enter+Tab) #\C-j
; このキーに別の機能を割り当てるには、まず*kbd-translate-table*を使っ
;て空いているキー(キー2)に目的のキー(キー1)を割り当てます。この関
;数は、キー1が押された場合はキー2が押されたふりをする、というものです
;。
; その上で、キー2に目的の関数を割り当てます。
; 例えば、C-jにhtml+-insert-pathを、C-M-jにhtml+-insert-path-dialogを
; り当てるには、このようにします。
;
;(setf (svref *kbd-translate-table* (char-code #\C-j)) #\C-F23)
; (define-key *html+-mode-map* #\C-F23 'html+-insert-path)
;ノーマルモード
(defun set-key()
(interactive)
(global-set-key '#\i 'del-key)
;カーソル移動
;hljk
;(setf (svref *kbd-translate-table* (char-code #\l)) #\C-F19)
;(global-set-key #\C-F19 'forward-char)
;(setf (svref *kbd-translate-table* (char-code #\h)) #\C-F23)
;(global-set-key #\C-F23 'backward-char)
;(setf (svref *kbd-translate-table* (char-code #\j)) #\C-F22)
;(global-set-key #\C-F22 'next-virtual-line)
;(setf (svref *kbd-translate-table* (char-code #\k)) #\C-F20)
;(global-set-key #\C-F20 'previous-virtual-line)
(global-set-key '(#\l) 'forward-char)
(global-set-key '(#\h) 'backward-char)
(global-set-key '(#\j) 'next-virtual-line)
(global-set-key '(#\k) ' previous-virtual-line)
;カーソル移動 ------------------------
;行頭に移動 0
(global-set-key '(#\0) ' beginning-of-line)
;行末に移動 $
(global-set-key '(#\e) 'end-of-line)
;ファイルの先頭に移動 gg
(global-set-key '(#\g #\g) 'beginning-of-buffer)
;ファイルの末尾に移動 G
(global-set-key '(#\g #\e) 'end-of-buffer)
;指定行に移動 数字+g
(global-set-key '(#\g #\n) 'goto-line)
;スクロール ------------------------
;現在行をページの中央に zz
(global-set-key '(#\z #\z) 'recenter)
;次のページへ移動
(global-set-key '(#\C-j) 'next-page)
;前のページへ移動
(global-set-key '(#\C-k) 'previous-page)
;改行+カーソル移動+インサートモード o
(defun ret-new()
(interactive)
(end-of-line)
(newline)
(del-key)
)
(global-set-key '(#\o) ' ret-new)
;削除 -------------------------
;一行削除 dd
(defun kill-line-new()
(interactive)
(beginning-of-line)
(selection-next-virtual-line)
(kill-selection-to-clipboard)
(next-virtual-line)
)
(global-set-key '(#\d #\d) 'kill-line-new)
;カーソル位値から行末まで削除 d$
(global-set-key '(#\d #\e) 'kill-line)
;行選択と削除を分離
;行選択-削除 S-v d
(defun del-line-new()
(interactive)
(kill-selection-to-clipboard)
)
(defun mark-line-new()
(interactive)
(beginning-of-line)
(selection-next-virtual-line)
)
(global-set-key '(#\M-v) 'mark-line-new)
;カーソル位値文字削除 x
(global-set-key '(#\x) ' delete-char-or-selection)
;;矩形操作--------------------------------
;;矩形選択 C-v
;(global-set-key '(#\C-v) 'mouse-ctl-left-press)
;(global-set-key '(#\C-n) 'mouse-ctl-left-motion)
;(global-set-key '(#\C-q) 'mouse-nop)
;(defun mouse-c-l-m-new()
; (interactive)
; (mouse-ctl-left-motion)
; (next-virtual-line)
; (mouse-nop)
;)
(global-set-key '(#\C-d) 'mouse-c-l-m-new)
;矩形削除 d
;(defun del-rect-new()
; (interactive)
; (delete-rectangle)
; (global-unset-key '(#\d))
;)
;コピー ------------------------
;一行コピー yy
(defun copy-line-new()
(interactive)
(beginning-of-line)
(selection-next-virtual-line)
(copy-selection-to-clipboard)
)
(global-set-key '(#\y #\y) ' copy-line-new)
;単語コピー yw
(defun copy-word-new()
(interactive)
(backward-word)
(selection-forward-word)
(copy-selection-to-clipboard)
)
(global-set-key '(#\y #\w) 'copy-word-new )
;貼り付け p ------------------------
(global-set-key '(#\p) 'paste-from-clipboard)
;やり直し u
(global-set-key '(#\u) ' undo)
;やり直しをやめる C-r
(global-set-key '(#\s) ' redo)
;xyzzyを終了
(global-set-key '(#\: #\q) ' kill-xyzzy)
)
(global-set-key '(#\@) 'set-key)
0 件のコメント:
コメントを投稿