在elpy(Emacs Python插件)中导航选项卡时的Shift选择

在elpy(Emacs Python插件)中导航选项卡时的Shift选择,python,emacs,Python,Emacs,我最近在Emacs 24下建立了elpy,除了一个我还没有弄清楚的功能外,其他功能都很好: 我的设置非常接近默认设置,启用了cua模式和瞬态标记模式,这意味着除了编辑Python文件外,我可以在任何地方使用CTRL+Shift+高亮显示单词 编辑Python文件时,CTRL+被映射到elpy nav-[forward | backward]-indent(在缩进级别之间跳跃),但与按Shift键高亮显示我的选择不兼容 我知道这听起来像是一件很小的事情,但它让我发疯:) 谢谢。看起来有太多“固执己

我最近在Emacs 24下建立了elpy,除了一个我还没有弄清楚的功能外,其他功能都很好:

我的设置非常接近默认设置,启用了cua模式和瞬态标记模式,这意味着除了编辑Python文件外,我可以在任何地方使用CTRL+Shift+高亮显示单词

编辑Python文件时,CTRL+被映射到elpy nav-[forward | backward]-indent(在缩进级别之间跳跃),但与按Shift键高亮显示我的选择不兼容

我知道这听起来像是一件很小的事情,但它让我发疯:)


谢谢。

看起来有太多“固执己见”的绑定在争夺几个“热键”。 我减少了一些绑定以避免覆盖我最喜欢的绑定(ctr/alt箭头)

使用“great”使用软件包

我避免了elpycua模式之间的键绑定冲突

我丢失了一些elpy默认值:

(use-package elpy
  :ensure t
  :preface
  (defvar elpy-mode-map
    (let ((map (make-sparse-keymap)))
      ;; Alphabetical order to make it easier to find free C-c C-X
      ;; bindings in the future. Heh.

      ;; (define-key map (kbd "<backspace>") 'python-indent-dedent-line-backspace)
      ;; (define-key map (kbd "<backtab>")   'python-indent-dedent-line)

      ;; (define-key map (kbd "C-M-x")   'python-shell-send-defun)
      ;; (define-key map (kbd "C-c <")   'python-indent-shift-left)
      ;; (define-key map (kbd "C-c >")   'python-indent-shift-right)
      (define-key map (kbd "C-c RET") 'elpy-importmagic-add-import)
      (define-key map (kbd "C-c C-b") 'elpy-nav-expand-to-indentation)
      (define-key map (kbd "C-c C-c") 'elpy-shell-send-region-or-buffer)
      (define-key map (kbd "C-c C-d") 'elpy-doc)
      (define-key map (kbd "C-c C-e") 'elpy-multiedit-python-symbol-at-point)
      (define-key map (kbd "C-c C-f") 'elpy-find-file)
      (define-key map (kbd "C-c C-n") 'elpy-flymake-next-error)
      (define-key map (kbd "C-c C-o") 'elpy-occur-definitions)
      (define-key map (kbd "C-c C-p") 'elpy-flymake-previous-error)
      (define-key map (kbd "C-c C-s") 'elpy-rgrep-symbol)
      (define-key map (kbd "C-c C-t") 'elpy-test)
      (define-key map (kbd "C-c C-v") 'elpy-check)
      (define-key map (kbd "C-c C-z") 'elpy-shell-switch-to-shell)
      (define-key map (kbd "C-c C-r i") 'elpy-importmagic-fixup)
      (define-key map (kbd "C-c C-r p") 'elpy-autopep8-fix-code)
      (define-key map (kbd "C-c C-r r") 'elpy-refactor)

      ;; (define-key map (kbd "<S-return>") 'elpy-open-and-indent-line-below)
      ;; (define-key map (kbd "<C-S-return>") 'elpy-open-and-indent-line-above)

      ;; (define-key map (kbd "<C-return>") 'elpy-shell-send-current-statement)

      ;; (define-key map (kbd "<C-down>") 'elpy-nav-forward-block)
      ;; (define-key map (kbd "<C-up>") 'elpy-nav-backward-block)
      ;; (define-key map (kbd "<C-left>") 'elpy-nav-backward-indent)
      ;; (define-key map (kbd "<C-right>") 'elpy-nav-forward-indent)

      ;; (define-key map (kbd "<M-down>") 'elpy-nav-move-line-or-region-down)
      ;; (define-key map (kbd "<M-up>") 'elpy-nav-move-line-or-region-up)
      ;; (define-key map (kbd "<M-left>") 'elpy-nav-indent-shift-left)
      ;; (define-key map (kbd "<M-right>") 'elpy-nav-indent-shift-right)

      ;; (define-key map (kbd "M-.")     'elpy-goto-definition)
      ;; (define-key map (kbd "M-TAB")   'elpy-company-backend)

      (define-key map (kbd "<S-return>") 'elpy-open-and-indent-line-below)
      (define-key map (kbd "<C-S-return>") 'elpy-open-and-indent-line-above)

      (define-key map (kbd "<C-return>") 'elpy-shell-send-current-statement)

      (define-key map (kbd "<M-right>") 'elpy-nav-forward-block)
      (define-key map (kbd "<M-left>") 'elpy-nav-backward-block)
      ;; (define-key map (kbd "<C-S-left>") 'elpy-nav-backward-indent)
      ;; (define-key map (kbd "<C-S-right>") 'elpy-nav-forward-indent)

      ;; (define-key map (kbd "<M-S-down>") 'elpy-nav-move-line-or-region-down)
      ;; (define-key map (kbd "<M-S-up>") 'elpy-nav-move-line-or-region-up)
      (define-key map (kbd "<M-S-left>") 'elpy-nav-indent-shift-left)
      (define-key map (kbd "<M-S-right>") 'elpy-nav-indent-shift-right)

      (define-key map (kbd "M-.")     'elpy-goto-definition)
      (define-key map [(control menu)]   'elpy-company-backend)

      map)
    "Key map for the Emacs Lisp Python Environment.")
  :config
  (elpy-enable)
  (elpy-use-ipython)
  (defalias 'workon 'pyvenv-workon))

(use-package ein
  :ensure t
  :config
  (defalias 'eip 'ein:notebooklist-open))
(使用软件包elpy
:确保
:前言
(defvar elpy模式映射
(let((映射(生成稀疏键映射)))
按字母顺序排列,以便更容易找到免费的C-C-X
未来的绑定。
;;(定义键映射(kbd“”)“python缩进dedent行退格)
;;(定义键映射(kbd“”)“python缩进行)
;;(定义键映射(kbd“C-M-x”)'python shell发送defun)
;;(定义键映射(kbd“C-C”)'python缩进右移)
(定义键映射(kbd“C-C RET”)“elpy importmagic add import”
(定义键映射(kbd“C-C-b”)“elpy nav展开到缩进)
(定义键映射(kbd“C-C-C”)“elpy shell发送区域或缓冲区)
(定义关键图(kbd“C-C-d”)“elpy文件)
(在点处定义键映射(kbd“C-C-e”)“elpy multiedit python符号)
(定义键映射(kbd“C-C-f”)“elpy查找文件)
(定义键映射(kbd“C-C-n”)‘elpy flymake next error)
(定义键映射(kbd“C-C-o”)的elpy发生定义)
(定义键映射(kbd“C-C-p”)“elpy flymake PREVICE error”)
(定义键映射(kbd“C-C-s”)“elpy rgrep符号)
(定义键映射(kbd“C-C-t”)“elpy测试)
(定义键映射(kbd“C-C-v”)“elpy检查”
(定义键映射(kbd“C-C-z”)“elpy外壳开关到外壳)
(定义键图(kbd“C-C-r i”)“elpy导入逻辑修复程序”)
(定义键映射(kbd“C-C-r p”)'elpy-autopep8-fix-code)
(定义键映射(kbd“C-C-r”)“elpy重构)
;(定义键映射(kbd“”)“打开并缩进下面的行)
;(定义键映射(kbd“”)“打开并缩进上面的行)
;;;(定义键映射(kbd“”)“elpy shell发送当前语句)
;(定义键映射(kbd“”)“elpy导航前向块)
;;;(定义键映射(kbd“”)“elpy导航向后块)
;;;(定义键映射(kbd“”)“elpy导航向后缩进)
;;;(定义键映射(kbd“”)“elpy导航正向缩进)
;;;(定义关键点地图(kbd“”)“elpy导航向下移动线或区域)
;;;(定义关键点地图(kbd“”)“向上移动导航线或区域)
;;;(定义键映射(kbd“”)“elpy导航缩进左移)
;;;(定义键映射(kbd“”)“elpy导航缩进右移)
;;;(定义键映射(kbd“M-”)的elpy goto定义)
;;(定义键映射(kbd“M-TAB”)“elpy公司后端”)
(定义键映射(kbd“”)“打开并缩进下面的行)
(定义键映射(kbd“”)“打开并缩进上面的行)
(定义键映射(kbd“”)“elpy shell发送当前语句)
(定义关键地图(kbd“”)“elpy导航前向块)
(定义键映射(kbd“”)“elpy导航向后块)
;;;(定义键映射(kbd“”)“elpy导航向后缩进)
;;;(定义键映射(kbd“”)“elpy导航正向缩进)
;;;(定义关键点地图(kbd“”)“elpy导航向下移动线或区域)
;;;(定义关键点地图(kbd“”)“向上移动导航线或区域)
(定义键映射(kbd“”)elpy导航缩进左移)
(定义键映射(kbd“”)elpy导航缩进右移)
(定义键映射(kbd“M-”)的elpy goto定义)
(定义键映射[(控制菜单)]“elpy公司后端)
(地图)
“Emacs Lisp Python环境的键映射。”)
:config
(elpy启用)
(埃尔比使用ipython)
(德法利亚斯“工作”皮文夫(工作))
(使用软件包)
:确保
:config
(defalias“eip”ein:记事本列表打开)
见:


Il看起来有太多“固执己见”的绑定在争夺少数几个“热键”。 我减少了一些绑定以避免覆盖我最喜欢的绑定(ctr/alt箭头)

使用“great”使用软件包

我避免了elpycua模式之间的键绑定冲突

我丢失了一些elpy默认值:

(use-package elpy
  :ensure t
  :preface
  (defvar elpy-mode-map
    (let ((map (make-sparse-keymap)))
      ;; Alphabetical order to make it easier to find free C-c C-X
      ;; bindings in the future. Heh.

      ;; (define-key map (kbd "<backspace>") 'python-indent-dedent-line-backspace)
      ;; (define-key map (kbd "<backtab>")   'python-indent-dedent-line)

      ;; (define-key map (kbd "C-M-x")   'python-shell-send-defun)
      ;; (define-key map (kbd "C-c <")   'python-indent-shift-left)
      ;; (define-key map (kbd "C-c >")   'python-indent-shift-right)
      (define-key map (kbd "C-c RET") 'elpy-importmagic-add-import)
      (define-key map (kbd "C-c C-b") 'elpy-nav-expand-to-indentation)
      (define-key map (kbd "C-c C-c") 'elpy-shell-send-region-or-buffer)
      (define-key map (kbd "C-c C-d") 'elpy-doc)
      (define-key map (kbd "C-c C-e") 'elpy-multiedit-python-symbol-at-point)
      (define-key map (kbd "C-c C-f") 'elpy-find-file)
      (define-key map (kbd "C-c C-n") 'elpy-flymake-next-error)
      (define-key map (kbd "C-c C-o") 'elpy-occur-definitions)
      (define-key map (kbd "C-c C-p") 'elpy-flymake-previous-error)
      (define-key map (kbd "C-c C-s") 'elpy-rgrep-symbol)
      (define-key map (kbd "C-c C-t") 'elpy-test)
      (define-key map (kbd "C-c C-v") 'elpy-check)
      (define-key map (kbd "C-c C-z") 'elpy-shell-switch-to-shell)
      (define-key map (kbd "C-c C-r i") 'elpy-importmagic-fixup)
      (define-key map (kbd "C-c C-r p") 'elpy-autopep8-fix-code)
      (define-key map (kbd "C-c C-r r") 'elpy-refactor)

      ;; (define-key map (kbd "<S-return>") 'elpy-open-and-indent-line-below)
      ;; (define-key map (kbd "<C-S-return>") 'elpy-open-and-indent-line-above)

      ;; (define-key map (kbd "<C-return>") 'elpy-shell-send-current-statement)

      ;; (define-key map (kbd "<C-down>") 'elpy-nav-forward-block)
      ;; (define-key map (kbd "<C-up>") 'elpy-nav-backward-block)
      ;; (define-key map (kbd "<C-left>") 'elpy-nav-backward-indent)
      ;; (define-key map (kbd "<C-right>") 'elpy-nav-forward-indent)

      ;; (define-key map (kbd "<M-down>") 'elpy-nav-move-line-or-region-down)
      ;; (define-key map (kbd "<M-up>") 'elpy-nav-move-line-or-region-up)
      ;; (define-key map (kbd "<M-left>") 'elpy-nav-indent-shift-left)
      ;; (define-key map (kbd "<M-right>") 'elpy-nav-indent-shift-right)

      ;; (define-key map (kbd "M-.")     'elpy-goto-definition)
      ;; (define-key map (kbd "M-TAB")   'elpy-company-backend)

      (define-key map (kbd "<S-return>") 'elpy-open-and-indent-line-below)
      (define-key map (kbd "<C-S-return>") 'elpy-open-and-indent-line-above)

      (define-key map (kbd "<C-return>") 'elpy-shell-send-current-statement)

      (define-key map (kbd "<M-right>") 'elpy-nav-forward-block)
      (define-key map (kbd "<M-left>") 'elpy-nav-backward-block)
      ;; (define-key map (kbd "<C-S-left>") 'elpy-nav-backward-indent)
      ;; (define-key map (kbd "<C-S-right>") 'elpy-nav-forward-indent)

      ;; (define-key map (kbd "<M-S-down>") 'elpy-nav-move-line-or-region-down)
      ;; (define-key map (kbd "<M-S-up>") 'elpy-nav-move-line-or-region-up)
      (define-key map (kbd "<M-S-left>") 'elpy-nav-indent-shift-left)
      (define-key map (kbd "<M-S-right>") 'elpy-nav-indent-shift-right)

      (define-key map (kbd "M-.")     'elpy-goto-definition)
      (define-key map [(control menu)]   'elpy-company-backend)

      map)
    "Key map for the Emacs Lisp Python Environment.")
  :config
  (elpy-enable)
  (elpy-use-ipython)
  (defalias 'workon 'pyvenv-workon))

(use-package ein
  :ensure t
  :config
  (defalias 'eip 'ein:notebooklist-open))
(使用软件包elpy
:确保
:前言
(defvar elpy模式映射
(let((映射(生成稀疏键映射)))
按字母顺序排列,以便更容易找到免费的C-C-X
未来的绑定。
;;(定义键映射(kbd“”)“python缩进dedent行退格)
;;(定义键映射(kbd“”)“python缩进行)
;;(定义键映射(kbd“C-M-x”)'python shell发送defun)
;;(定义键映射(kbd“C-C”)'python缩进右移)
(定义键映射(kbd“C-C RET”)“elpy importmagic add import”
(定义键映射(kbd“C-C-b”)“elpy nav展开到缩进)
(定义键映射(kbd“C-C-C”)“elpy shell发送区域或缓冲区)
(定义关键图(kbd“C-C-d”)“elpy文件)
(在点处定义键映射(kbd“C-C-e”)“elpy multiedit python符号)
(定义键映射(kbd“C-C-f”)“elpy查找文件)
(定义键映射(kbd“C-C-n”)‘elpy flymake next error)
(定义键映射(kbd“C-C-o”)的elpy发生定义)
(定义键映射(kbd“C-C-p”)“elpy flymake PREVICE error”)
(定义键映射(kbd“C-C-s”)“elpy rgrep