Prefer defvar-keymap in python.el
It's okay to use defvar-keymap here since the 'compat' package backports it for all versions of Emacs that we support (24.4 or later). * lisp/progmodes/python.el (python-mode-map): Prefer defvar-keymap. (python-menu): Move to toplevel.
This commit is contained in:
parent
84c66625e5
commit
364801fcd6
1 changed files with 104 additions and 106 deletions
|
@ -334,112 +334,110 @@ To customize the Python interpreter for interactive use, modify
|
|||
|
||||
;;; Bindings
|
||||
|
||||
(defvar python-mode-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
;; Movement
|
||||
(define-key map [remap backward-sentence] #'python-nav-backward-block)
|
||||
(define-key map [remap forward-sentence] #'python-nav-forward-block)
|
||||
(define-key map [remap backward-up-list] #'python-nav-backward-up-list)
|
||||
(define-key map [remap up-list] #'python-nav-up-list)
|
||||
(define-key map [remap mark-defun] #'python-mark-defun)
|
||||
(define-key map "\C-c\C-j" #'imenu)
|
||||
;; Indent specific
|
||||
(define-key map "\177" #'python-indent-dedent-line-backspace)
|
||||
(define-key map (kbd "<backtab>") #'python-indent-dedent-line)
|
||||
(define-key map "\C-c<" #'python-indent-shift-left)
|
||||
(define-key map "\C-c>" #'python-indent-shift-right)
|
||||
;; Skeletons
|
||||
(define-key map "\C-c\C-tc" #'python-skeleton-class)
|
||||
(define-key map "\C-c\C-td" #'python-skeleton-def)
|
||||
(define-key map "\C-c\C-tf" #'python-skeleton-for)
|
||||
(define-key map "\C-c\C-ti" #'python-skeleton-if)
|
||||
(define-key map "\C-c\C-tm" #'python-skeleton-import)
|
||||
(define-key map "\C-c\C-tt" #'python-skeleton-try)
|
||||
(define-key map "\C-c\C-tw" #'python-skeleton-while)
|
||||
;; Shell interaction
|
||||
(define-key map "\C-c\C-p" #'run-python)
|
||||
(define-key map "\C-c\C-s" #'python-shell-send-string)
|
||||
(define-key map "\C-c\C-e" #'python-shell-send-statement)
|
||||
(define-key map "\C-c\C-r" #'python-shell-send-region)
|
||||
(define-key map "\C-\M-x" #'python-shell-send-defun)
|
||||
(define-key map "\C-c\C-b" #'python-shell-send-block)
|
||||
(define-key map "\C-c\C-c" #'python-shell-send-buffer)
|
||||
(define-key map "\C-c\C-l" #'python-shell-send-file)
|
||||
(define-key map "\C-c\C-z" #'python-shell-switch-to-shell)
|
||||
;; Some util commands
|
||||
(define-key map "\C-c\C-v" #'python-check)
|
||||
(define-key map "\C-c\C-f" #'python-eldoc-at-point)
|
||||
(define-key map "\C-c\C-d" #'python-describe-at-point)
|
||||
;; Import management
|
||||
(define-key map "\C-c\C-ia" #'python-add-import)
|
||||
(define-key map "\C-c\C-if" #'python-fix-imports)
|
||||
(define-key map "\C-c\C-ir" #'python-remove-import)
|
||||
(define-key map "\C-c\C-is" #'python-sort-imports)
|
||||
;; Utilities
|
||||
(substitute-key-definition #'complete-symbol #'completion-at-point
|
||||
map global-map)
|
||||
(easy-menu-define python-menu map "Python Mode menu"
|
||||
'("Python"
|
||||
:help "Python-specific Features"
|
||||
["Shift region left" python-indent-shift-left :active mark-active
|
||||
:help "Shift region left by a single indentation step"]
|
||||
["Shift region right" python-indent-shift-right :active mark-active
|
||||
:help "Shift region right by a single indentation step"]
|
||||
"-"
|
||||
["Start of def/class" beginning-of-defun
|
||||
:help "Go to start of outermost definition around point"]
|
||||
["End of def/class" end-of-defun
|
||||
:help "Go to end of definition around point"]
|
||||
["Mark def/class" mark-defun
|
||||
:help "Mark outermost definition around point"]
|
||||
["Jump to def/class" imenu
|
||||
:help "Jump to a class or function definition"]
|
||||
"--"
|
||||
("Skeletons")
|
||||
"---"
|
||||
["Start interpreter" run-python
|
||||
:help "Run inferior Python process in a separate buffer"]
|
||||
["Switch to shell" python-shell-switch-to-shell
|
||||
:help "Switch to running inferior Python process"]
|
||||
["Eval string" python-shell-send-string
|
||||
:help "Eval string in inferior Python session"]
|
||||
["Eval block" python-shell-send-block
|
||||
:help "Eval block in inferior Python session"]
|
||||
["Eval buffer" python-shell-send-buffer
|
||||
:help "Eval buffer in inferior Python session"]
|
||||
["Eval statement" python-shell-send-statement
|
||||
:help "Eval statement in inferior Python session"]
|
||||
["Eval region" python-shell-send-region
|
||||
:help "Eval region in inferior Python session"]
|
||||
["Eval defun" python-shell-send-defun
|
||||
:help "Eval defun in inferior Python session"]
|
||||
["Eval file" python-shell-send-file
|
||||
:help "Eval file in inferior Python session"]
|
||||
["Debugger" pdb :help "Run pdb under GUD"]
|
||||
"----"
|
||||
["Check file" python-check
|
||||
:help "Check file for errors"]
|
||||
["Help on symbol" python-eldoc-at-point
|
||||
:help "Get help on symbol at point"]
|
||||
["Complete symbol" completion-at-point
|
||||
:help "Complete symbol before point"]
|
||||
"-----"
|
||||
["Add import" python-add-import
|
||||
:help "Add an import statement to the top of this buffer"]
|
||||
["Remove import" python-remove-import
|
||||
:help "Remove an import statement from the top of this buffer"]
|
||||
["Sort imports" python-sort-imports
|
||||
:help "Sort the import statements at the top of this buffer"]
|
||||
["Fix imports" python-fix-imports
|
||||
:help "Add missing imports and remove unused ones from the current buffer"]
|
||||
"-----"
|
||||
("Toggle..."
|
||||
["Subword Mode" subword-mode
|
||||
:style toggle :selected subword-mode
|
||||
:help "Toggle subword movement and editing mode"])
|
||||
))
|
||||
map)
|
||||
"Keymap for `python-mode'.")
|
||||
(defvar-keymap python-mode-map
|
||||
:doc "Keymap for `python-mode'."
|
||||
;; Movement
|
||||
"<remap> <backward-sentence>" #'python-nav-backward-block
|
||||
"<remap> <forward-sentence>" #'python-nav-forward-block
|
||||
"<remap> <backward-up-list>" #'python-nav-backward-up-list
|
||||
"<remap> <up-list>" #'python-nav-up-list
|
||||
"<remap> <mark-defun>" #'python-mark-defun
|
||||
"C-c C-j" #'imenu
|
||||
;; Indent specific
|
||||
"DEL" #'python-indent-dedent-line-backspace
|
||||
"<backtab>" #'python-indent-dedent-line
|
||||
"C-c <" #'python-indent-shift-left
|
||||
"C-c >" #'python-indent-shift-right
|
||||
;; Skeletons
|
||||
"C-c C-t c" #'python-skeleton-class
|
||||
"C-c C-t d" #'python-skeleton-def
|
||||
"C-c C-t f" #'python-skeleton-for
|
||||
"C-c C-t i" #'python-skeleton-if
|
||||
"C-c C-t m" #'python-skeleton-import
|
||||
"C-c C-t t" #'python-skeleton-try
|
||||
"C-c C-t w" #'python-skeleton-while
|
||||
;; Shell interaction
|
||||
"C-c C-p" #'run-python
|
||||
"C-c C-s" #'python-shell-send-string
|
||||
"C-c C-e" #'python-shell-send-statement
|
||||
"C-c C-r" #'python-shell-send-region
|
||||
"C-M-x" #'python-shell-send-defun
|
||||
"C-c C-b" #'python-shell-send-block
|
||||
"C-c C-c" #'python-shell-send-buffer
|
||||
"C-c C-l" #'python-shell-send-file
|
||||
"C-c C-z" #'python-shell-switch-to-shell
|
||||
;; Some util commands
|
||||
"C-c C-v" #'python-check
|
||||
"C-c C-f" #'python-eldoc-at-point
|
||||
"C-c C-d" #'python-describe-at-point
|
||||
;; Import management
|
||||
"C-c C-i a" #'python-add-import
|
||||
"C-c C-i f" #'python-fix-imports
|
||||
"C-c C-i r" #'python-remove-import
|
||||
"C-c C-i s" #'python-sort-imports
|
||||
;; Utilities
|
||||
"<remap> <complete-symbol>" #'completion-at-point)
|
||||
|
||||
(easy-menu-define python-menu python-mode-map
|
||||
"Menu used for ´python-mode'."
|
||||
'("Python"
|
||||
:help "Python-specific Features"
|
||||
["Shift region left" python-indent-shift-left :active mark-active
|
||||
:help "Shift region left by a single indentation step"]
|
||||
["Shift region right" python-indent-shift-right :active mark-active
|
||||
:help "Shift region right by a single indentation step"]
|
||||
"-----"
|
||||
["Start of def/class" beginning-of-defun
|
||||
:help "Go to start of outermost definition around point"]
|
||||
["End of def/class" end-of-defun
|
||||
:help "Go to end of definition around point"]
|
||||
["Mark def/class" mark-defun
|
||||
:help "Mark outermost definition around point"]
|
||||
["Jump to def/class" imenu
|
||||
:help "Jump to a class or function definition"]
|
||||
"-----"
|
||||
("Skeletons")
|
||||
"-----"
|
||||
["Start interpreter" run-python
|
||||
:help "Run inferior Python process in a separate buffer"]
|
||||
["Switch to shell" python-shell-switch-to-shell
|
||||
:help "Switch to running inferior Python process"]
|
||||
["Eval string" python-shell-send-string
|
||||
:help "Eval string in inferior Python session"]
|
||||
["Eval block" python-shell-send-block
|
||||
:help "Eval block in inferior Python session"]
|
||||
["Eval buffer" python-shell-send-buffer
|
||||
:help "Eval buffer in inferior Python session"]
|
||||
["Eval statement" python-shell-send-statement
|
||||
:help "Eval statement in inferior Python session"]
|
||||
["Eval region" python-shell-send-region
|
||||
:help "Eval region in inferior Python session"]
|
||||
["Eval defun" python-shell-send-defun
|
||||
:help "Eval defun in inferior Python session"]
|
||||
["Eval file" python-shell-send-file
|
||||
:help "Eval file in inferior Python session"]
|
||||
["Debugger" pdb :help "Run pdb under GUD"]
|
||||
"-----"
|
||||
["Check file" python-check
|
||||
:help "Check file for errors"]
|
||||
["Help on symbol" python-eldoc-at-point
|
||||
:help "Get help on symbol at point"]
|
||||
["Complete symbol" completion-at-point
|
||||
:help "Complete symbol before point"]
|
||||
"-----"
|
||||
["Add import" python-add-import
|
||||
:help "Add an import statement to the top of this buffer"]
|
||||
["Remove import" python-remove-import
|
||||
:help "Remove an import statement from the top of this buffer"]
|
||||
["Sort imports" python-sort-imports
|
||||
:help "Sort the import statements at the top of this buffer"]
|
||||
["Fix imports" python-fix-imports
|
||||
:help "Add missing imports and remove unused ones from the current buffer"]
|
||||
"-----"
|
||||
("Toggle..."
|
||||
["Subword Mode" subword-mode
|
||||
:style toggle :selected subword-mode
|
||||
:help "Toggle subword movement and editing mode"])))
|
||||
|
||||
(defvar python-ts-mode-map (copy-keymap python-mode-map)
|
||||
"Keymap for `(copy-keymap python-mode-map)'.")
|
||||
|
|
Loading…
Add table
Reference in a new issue