branch: elpa/xah-fly-keys commit b245505f7133a6e6c739ffc70cf5cf33839dfb99 Author: Xah Lee <x...@xahlee.org> Commit: Xah Lee <x...@xahlee.org>
changed repeat key to backspace, was -, for repeatable commands xah-reformat-to-sentence-lines, xah-cycle-hyphen-lowline-space new var xah-repeat-key if not defined. key space return is now back to execute-extended-command, not execute-extended-command-for-buffer (the buffer one does not allow you to call other commands (e.g. vc-diff, useful in lots programing language modes), make it much less useful, because you need to know which command is or is not for current major mode etc. it [...] --- xah-fly-keys.el | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/xah-fly-keys.el b/xah-fly-keys.el index 0064c9256a..1eccc2bcc0 100644 --- a/xah-fly-keys.el +++ b/xah-fly-keys.el @@ -4,7 +4,7 @@ ;; Author: Xah Lee ( http://xahlee.info/ ) ;; Maintainer: Xah Lee <x...@xahlee.org> -;; Version: 18.2.20221004113716 +;; Version: 18.3.20221020112604 ;; Created: 10 Sep 2013 ;; Package-Requires: ((emacs "24.1")) ;; Keywords: convenience, emulations, vim, ergoemacs @@ -174,6 +174,10 @@ "If nil, no change to any key in isearch (`isearch-forward'). Otherwise, arrow keys are for moving between occurrences, and C-v is paste." :type 'boolean) +(when (not (boundp 'xah-repeat-key)) + (defvar xah-repeat-key nil "A key that some xah command use as a key to repeat the command, pressed right after command call. Value should be the same format that `kbd' returns. e.g. (kbd \"DEL\")") + (if xah-repeat-key nil (setq xah-repeat-key (kbd "DEL")))) + (defun xah-get-bounds-of-block () "Return the boundary (START . END) of current block. Version: 2021-08-12" @@ -1228,7 +1232,7 @@ Version: 2021-07-05 2021-08-13 2022-03-12 2022-05-16" (defun xah-reformat-to-sentence-lines () "Reformat current block or selection into multiple lines by ending period. Move cursor to the beginning of next text block. -After this command is called, press - to repeat it. +After this command is called, press `xah-repeat-key' to repeat it (default to DEL (backspace)). URL `http://xahlee.info/emacs/emacs/elisp_reformat_to_sentence_lines.html' Version: 2020-12-02 2022-03-22" @@ -1250,7 +1254,8 @@ Version: 2020-12-02 2022-03-22" (goto-char (point-max)) (while (eq (char-before) 32) (delete-char -1)))) (re-search-forward "\n+" nil 1) - (set-transient-map (let (($kmap (make-sparse-keymap))) (define-key $kmap (kbd "-") this-command) $kmap))) +(set-transient-map (let (($kmap (make-sparse-keymap))) (define-key $kmap (or xah-repeat-key (kbd "DEL")) this-command) $kmap)) + (set-transient-map (let (($kmap (make-sparse-keymap))) (define-key $kmap (kbd "DEL") this-command) $kmap))) (defun xah-space-to-newline () "Replace space sequence to a newline char in current block or selection. @@ -1543,14 +1548,14 @@ Version: 2016-10-04 2019-11-24 2022-05-16" (defun xah-cycle-hyphen-lowline-space (&optional Begin End) "Cycle hyphen/lowline/space chars in selection or inside quote/bracket or line, in that order. -After this command is called, press - to repeat it. +After this command is called, press `xah-repeat-key' to repeat it (default to DEL (backspace)). The region to work on is by this order: 1. if there is a selection, use that. 2. If cursor is string quote or any type of bracket, and is within current line, work on that region. 3. else, work on current line. URL `http://xahlee.info/emacs/emacs/elisp_change_space-hyphen_underscore.html' -Version: 2019-02-12 2021-08-20 2022-03-22" +Version: 2019-02-12 2021-08-20 2022-03-22 2022-10-20" (interactive) ;; this function sets a property 'state. Possible values are 0 to length of $charArray. (let* ($p1 @@ -1581,7 +1586,7 @@ Version: 2019-02-12 2021-08-20 2022-03-22" (set-mark $p1) (setq deactivate-mark nil)) (put 'xah-cycle-hyphen-lowline-space 'state (% (+ $nowState 1) $n))) - (set-transient-map (let (($kmap (make-sparse-keymap))) (define-key $kmap (kbd "-") this-command) $kmap))) + (set-transient-map (let (($kmap (make-sparse-keymap))) (define-key $kmap (or xah-repeat-key (kbd "DEL")) this-command) $kmap))) (defun xah-copy-file-path (&optional DirPathOnlyQ) "Copy current buffer file path or dired path. @@ -1919,7 +1924,7 @@ The commpand will prompt for a start char, and number of chars to insert. The start char can be any char in Unicode. URL `http://xahlee.info/emacs/emacs/emacs_insert-alphabets.html' -Version: 2019-03-07" +Version: 2013-06-12 2019-03-07" (interactive) (let ( ($startChar (string-to-char (read-string "Start char: " "a"))) @@ -2232,13 +2237,13 @@ Version: 2017-11-01 2022-04-05" Similar to `kill-buffer', with the following addition: • Prompt user to save if the buffer has been modified even if the buffer is not associated with a file. -• If the buffer is editing a source file in an `org-mode' file, prompt the user to save before closing. +• If the buffer is editing a source code file in an `org-mode' file, prompt the user to save before closing. • If the buffer is a file, add the path to the list `xah-recently-closed-buffers'. URL `http://xahlee.info/emacs/emacs/elisp_close_buffer_open_last_closed.html' -Version: 2016-06-19 2021-07-01 2022-03-22 2022-05-13" +Version: 2016-06-19 2022-05-13 2022-10-18" (interactive) - (let (($isOrgMode (string-match "^*Org Src" (buffer-name)))) + (let (($isOrgModeSourceFile (string-match "^*Org Src" (buffer-name)))) (if (active-minibuffer-window) ; if the buffer is minibuffer ;; (string-equal major-mode "minibuffer-inactive-mode") (minibuffer-keyboard-quit) @@ -2254,7 +2259,7 @@ Version: 2016-06-19 2021-07-01 2022-03-22 2022-05-13" (save-buffer) (set-buffer-modified-p nil))) (when (and (buffer-modified-p) - $isOrgMode) + $isOrgModeSourceFile) (if (y-or-n-p (format "Buffer %s modified; Do you want to save? " (buffer-name))) (org-edit-src-save) (set-buffer-modified-p nil))) @@ -3933,9 +3938,10 @@ minor modes loaded later may override bindings in this map.") (global-set-key (kbd "C-v") #'yank) (global-set-key (kbd "C-w") #'xah-close-current-buffer) ;; (global-set-key (kbd "C-x") 'nil) - ;; (global-set-key (kbd "C-y") 'nil) - (global-set-key (kbd "C-z") #'undo) + (when (>= emacs-major-version 28) + (global-set-key (kbd "C-y") #'undo-redo)) + (global-set-key (kbd "C-z") #'undo) ;; ) @@ -4341,13 +4347,13 @@ minor modes loaded later may override bindings in this map.") ("t" . xref-find-definitions) ("n" . xref-pop-marker-stack))) -(when (<= emacs-major-version 28) +(when (< emacs-major-version 28) (defalias 'execute-extended-command-for-buffer #'execute-extended-command)) (xah-fly--define-keys (define-prefix-command 'xah-fly-leader-key-map) '(("SPC" . xah-fly-insert-mode-activate) - ("RET" . execute-extended-command-for-buffer) + ("RET" . execute-extended-command) ("TAB" . xah-fly--tab-key-map) ("." . xah-fly-Lp2p1-key-map) @@ -4638,6 +4644,7 @@ Version: 2022-07-06" (when (buffer-file-name) (save-buffer))) + (defun xah-fly-command-mode-activate () "Activate command mode and run `xah-fly-command-mode-activate-hook' Version: 2017-07-07"