brain initiation
This commit is contained in:
59
20240130122737-elpy.org
Normal file
59
20240130122737-elpy.org
Normal file
@@ -0,0 +1,59 @@
|
||||
:PROPERTIES:
|
||||
:ID: 33d3052d-e679-415d-98fa-56e210555539
|
||||
:END:
|
||||
#+title: elpy
|
||||
|
||||
Elpy is an [[id:5f1df0e1-384f-4685-ae1e-fec2431b04e5][emacs]] [[id:b7c4f849-d1b1-4837-8634-82f6976a1473][package]] to bring powerful [[id:ba15b77e-e9a2-4a21-b63f-b9b350ec811a][python]] editing to Emacs. It combines and configures a number of other packages, both written in Emacs Lisp as well as Python. Elpy is fully documented at [[https://elpy.readthedocs.io/en/latest/index.html][Readthedocs]]
|
||||
|
||||
* Installation
|
||||
Elpy is available on [[id:79bae242-a2b4-4753-9960-1f929c8c6300][melpa]], the most straightforward way to install it is to use use-package:
|
||||
#+begin_src lisp
|
||||
(use-package elpy
|
||||
:ensure t
|
||||
:init
|
||||
(elpy-enable))
|
||||
#+end_src
|
||||
|
||||
* Quickstart
|
||||
Once installed, Elpy will automatically provide code completion, syntax error highlighting and code hinting (in the modeline) for python files. Elpy offers a lot of features, but the following keybindings should be enough to get started:
|
||||
** ~C-c C-C~
|
||||
evaluates the current python script (or region if something is selected) in an interactive python shell. The python shell is automatically displayed aside of your script.
|
||||
** ~C-Ret~
|
||||
evaluates the current statement (current line plus the following nested lines).
|
||||
** ~C-c C-z~
|
||||
switches between your script and the interactive shell.
|
||||
** ~C-c C-d~
|
||||
displays documentation for the thing under cursor. The documentation will pop in a different buffer, that can be closed with ~q~.
|
||||
|
||||
* Emacs implementation
|
||||
#+begin_src lisp
|
||||
(use-package elpy
|
||||
:ensure t
|
||||
:hook ((elpy-mode . flycheck-mode)
|
||||
(elpy-mode . (lambda ()
|
||||
(set (make-local-variable 'company-backends)
|
||||
'((elpy-company-backend :with company-yasnippet))))))
|
||||
:init
|
||||
(elpy-enable)
|
||||
:config
|
||||
(setq elpy-modules (delq 'elpy-module-flymake elpy-modules))
|
||||
(setq elpy-shell-echo-output nil)
|
||||
(setq elpy-shell-echo-input nil)
|
||||
(setq elpy-rpc-python-command "python3")
|
||||
(setq elpy-rpc-timeout 2))
|
||||
|
||||
(when (require 'flycheck nil t)
|
||||
(setq elpy-modules (delq 'elpy-module-flymake elpy-modules))
|
||||
(define-key elpy-mode-map (kbd "C-c p") 'flycheck-previous-error)
|
||||
(define-key elpy-mode-map (kbd "C-c n") 'flycheck-next-error)
|
||||
(add-hook 'elpy-mode-hook 'flycheck-mode))
|
||||
#+end_src
|
||||
|
||||
In addition to that there is an entry in thea visual fill function for elpy:
|
||||
#+begin_src lisp
|
||||
(use-package visual-fill-column
|
||||
:hook ((org-mode . diz/org-mode-visual-fill)
|
||||
(matlab-mode . diz/org-mode-visual-fill)
|
||||
(elpy-mode . diz/pyth-mode-visual-fill) # <- This line
|
||||
(python-mode . diz/pyth-mode-visual-fill))) # <- and this one
|
||||
#+end_src
|
||||
Reference in New Issue
Block a user