xyzzy 備忘録


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

インストール

Tips

  • ソート(並べ替え)する。
filter-region, filter-buffer で外部コマンド sort を実行している。

リージョンをソート --- C-x | sort

バッファ全体をソート --- C-x # sort

設定

  • ファイラで削除する際に、ゴミ箱を使用する
;; ファイラで削除する際に、ゴミ箱を使用する
(setq *filer-use-recycle-bin* t)

  • リージョンに色をつける
http://hie.s64.xrea.com/xyzzy/mylib/rv-region.htmlよりrv-region.lをダウンロードして、site-lispに配置し、siteinit.lに以下を追加
;; リージョンに色をつける
(require "rv-region")
(global-set-key #\C-@ 'rv-set-mark-command)

  • Emacs風のキーバインド
以下の設定を「emacskey.l」等のファイル名に設定し、siteinit.lか.xyzzyに
(load-library "emacskey")を追記

; key bind
(global-set-key #\C-/ 'undo)
(global-set-key #\M-v 'previous-page)
(global-set-key #\M-% 'replace-string)
(global-set-key #\C-M-% 'replace-regexp)
;(global-set-key #\M-% 'query-replace)
;(global-set-key #\C-M-% 'query-replace-regexp)
(global-set-key #\C-M-\\ 'indent-region)
(global-set-key '(#\C-x #\h) 'mark-page)
(global-set-key '(#\C-x #\u) 'undo)
(global-set-key '(#\C-x #\r #\d) 'delete-rectangle)
(global-set-key '(#\C-x #\r #\k) 'kill-rectangle)
(global-set-key '(#\C-x #\r #\o) 'open-rectangle)
(global-set-key '(#\C-x #\r #\t) 'string-rectangle)
(global-set-key '(#\C-x #\r #\y) 'yank-rectangle)
(global-set-key '(#\C-x #\r #\w) 'copy-rectangle)
(global-set-key #\Home 'beginning-of-buffer)
(global-set-key #\End 'end-of-buffer)
(global-set-key #\C-_ 'undo)
(global-set-key #\C-- 'negative-argument)
(global-set-key #\C-\\ 'toggle-ime)
(dolist (c '(#\C-0 #\C-1 #\C-2 #\C-3 #\C-4 #\C-5 #\C-6 #\C-7 #\C-8 #\C-9))
  (global-set-key c 'digit-argument))
(global-set-key '(#\C-x #\n #\n) 'narrow-to-region)
(global-set-key '(#\C-x #\n #\w) 'widen)
(global-set-key #\M-: 'eval-expression)
(substitute-key-definition 'next-virtual-line 'next-line)
(substitute-key-definition 'previous-virtual-line 'previous-line)

; インクリメンタルサーチ (C-s, C-r)
(require "isearch")

; dynamic abbreviation
(require "dabbrev")
(global-set-key #\M-/ 'dabbrev-expand)

; write-file
; バッファーの名前や割り付けられているファイル名も新しく指定
; されたファイルに変える
(define-key ctl-x-map #\C-w 'emacs-write-file)

; C-x C-v
; 廃棄するバッファのファイル名がミニバッファに表示
(setq *find-other-file-requires-file-name* t)

; sort-lines
(defun sort-lines (start end)
  (interactive "*r")
  (filter-region "sort" start end))

; ウィンドウを左右に分割
(define-key ctl-x-map #\3 'split-window-vertically)

; ispell-word
(defun ispell-word()
  (interactive "*")
  (let ((end (progn
               (skip-chars-forward "A-Za-z")
               (point)))
        (beg (progn
               (skip-chars-backward "A-Za-z")
               (point))))
    (ispell-region beg end)))
 (global-set-key #\M-$ 'ispell-word)

; frame
(global-set-key '(#\C-x #\5 #\o) 'other-pseudo-frame)
(global-set-key '(#\C-x #\5 #\0) 'delete-pseudo-frame)
(global-set-key '(#\C-x #\5 #\2) 'new-pseudo-frame)

; 文字コードの変更
(global-set-key '(#\C-x #\RET #\f) 'change-fileio-encoding)


  • カーソルが行頭にある場合は、行自体を削除する
以下をsiteinit.lか.xyzzyに追記する。
(defun my-kill-line (&optional arg)
  (interactive "*p")
  (cond ((bolp)
         (let ((point (point))
               (lines (cond ((or (null arg)
                                 (<= arg 1))
                             0)
                            (t
                             (- arg 1)))))
           (kill-region point
                        (progn
                          (forward-line lines)
                          (goto-eol)
                          (forward-char)
                          (point)))))
        (t
         (kill-line arg))))
(define-key *global-keymap* #\C-k 'my-kill-line)