【问题标题】:Shift-selection when navigating tabs in elpy (Emacs Python plugin)在 elpy(Emacs Python 插件)中导航选项卡时的 Shift 选择
【发布时间】:2015-05-15 19:39:19
【问题描述】:

我最近在 Emacs 24 下设置了 elpy,一切都很好,除了一个我无法弄清楚的功能:

我的设置非常接近默认设置,启用了 cua-mode 和 transient-mark-mode - 这意味着除了编辑 Python 文件时,我可以使用 CTRL+Shift+ 突出显示单词。

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

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

谢谢。

【问题讨论】:

    标签: python emacs


    【解决方案1】:

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

    使用“伟大” 使用包

    我避免了 elpycua-mode 之间的键绑定冲突

    我丢失了一些 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))
    

    见:

    【讨论】:

    • 我必须在选择活动活动时避免与cua“copy”冲突。跨度>
    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多