首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shift-在elpy中导航选项卡时的选择(Emacs插件)

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

Stack Overflow用户
提问于 2015-05-15 19:39:19
回答 1查看 354关注 0票数 0

最近,我在Emacs 24下设置了elpy,除了一个我无法理解的特性外,其他功能都很好:

我的设置非常接近默认设置,启用了cua模式和临时标记模式,这意味着除了编辑CTRL+Shift+文件之外,任何地方我都可以用突出显示单词。

在编辑Python文件时,CTRL+被映射到elpy-nav前向向后缩进(在缩进级别之间跳跃),但不兼容按Shift键来突出显示我的选择。

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

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-23 18:14:28

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

使用“伟大”的使用包

我避免了elpycua模式之间的密钥绑定冲突。

我失去了一些矮小的默认设置:

代码语言:javascript
复制
(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))

请参见:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30267508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档