{"id":13500390,"url":"https://github.com/gabrielelanaro/emacs-for-python","last_synced_at":"2025-03-29T05:33:59.142Z","repository":{"id":931364,"uuid":"701945","full_name":"gabrielelanaro/emacs-for-python","owner":"gabrielelanaro","description":"Collection of emacs extensions specifically collected for python development, with workflow guidelines!","archived":false,"fork":false,"pushed_at":"2016-04-28T09:57:56.000Z","size":9770,"stargazers_count":810,"open_issues_count":24,"forks_count":151,"subscribers_count":65,"default_branch":"master","last_synced_at":"2024-10-31T18:38:54.262Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://gabrielelanaro.github.com/emacs-for-python","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabrielelanaro.png","metadata":{"files":{"readme":"README.org","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-06-03T19:47:31.000Z","updated_at":"2024-05-17T19:48:29.000Z","dependencies_parsed_at":"2022-07-05T22:01:27.832Z","dependency_job_id":null,"html_url":"https://github.com/gabrielelanaro/emacs-for-python","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielelanaro%2Femacs-for-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielelanaro%2Femacs-for-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielelanaro%2Femacs-for-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielelanaro%2Femacs-for-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabrielelanaro","download_url":"https://codeload.github.com/gabrielelanaro/emacs-for-python/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246145013,"owners_count":20730494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T22:00:58.371Z","updated_at":"2025-03-29T05:33:54.131Z","avatar_url":"https://github.com/gabrielelanaro.png","language":"Emacs Lisp","readme":"* Welcome to the best collection of emacs extensions ever\nI'm collecting and customizing the perfect environment for python\ndevelopment, using the most beautiful emacs customization to obtain a\nreally modern and exciting (yet stable) way to edit text files.\n\nIn the package are included also a lot of other packages and\nconfigurations, it's an upstart for clean emacs installations, these\nconfiguration however are very similar to emacs-starter-kit and I\nsuggest you to give it a try, emacs-for-python is designed to work\nwith it (instruction below).\n\nTo get in contact or ask for help you have many possibilities:\n\ngithub issue tracker: [[https://github.com/gabrielelanaro/emacs-for-python/issues]]\n\ngoogle+ page: [[https://plus.google.com/108723367526390492977/]]\n\nemail me: [[mailto:gabriele.lanaro@gmail.com]]\n\n** Features \nThe package is split into various files, in this way it's very easy\nto include what you really need.\n\n*** Python Related\n\n    - Ropemacs (Custom) : A refactoring library\n    - Auto Completion with rope (Custom) : Tested to work well with Rope\n    - Flymake + pyflakes (Custom): Highlight errors on the fly, improved\n      from the standard version\n    - Virtualenv : Original, In-development tool for using virtualenv in\n      emacs.\n    - Custom Yasnippet Snippets\n    - Cython Mode: a mode for highlighting cython files\n    - latest python.el (fgallina/python.el)\n    - nosetests integration (nose.el)\n\n*** Editing Packages\n    \n    - Open Next Line: C-o will open a line under the cursor (very\n      similar to vim o)\n    - Auto Completion: Wonderful package for auto complete anything in\n      emacs\n    - Yasnippet: Snippets on steroids\n    - Parentheses pairing (Custom): Bug-free parentheses pairing using\n      skeletons.\n    - smart-operator: Automatically adds spaces around arithmetic operators.\n\n*** Configurations\n\n    - ido activation\n    - ibuffer instead of buffer menu\n    - eshell configuration\n\n*** Keybindings\n\n    - Copy-Cut-Paste from clipboard with Super-C Super-X Super-V    \n    - Calc Mode remapping to M-c\n    - M-Tab remapped to C-Tab to avoid collisions with the desktop\n      manager\n    - nose keybindings\n\n** Installation\n\nPut the emacs-for-python directory in .emacs.d directory (or any\nother), the add this line in your .emacs, it will enable all the\nfeatures of emacs-for-python package (editing configuration,\nkeybindings, python stuff etc...)\n\n: (load-file \"/path/to/emacs-for-python/epy-init.el\")\n\nYou may want to enable only some of the features provided by\nemacs-for-python, in this case just enable some of them:\n\n: (add-to-list 'load-path \"path/to/emacs-for-python/\") ;; tell where to load the various files\n: (require 'epy-setup)      ;; It will setup other loads, it is required!\n: (require 'epy-python)     ;; If you want the python facilities [optional]\n: (require 'epy-completion) ;; If you want the autocompletion settings [optional]\n: (require 'epy-editing)    ;; For configurations related to editing [optional]\n: (require 'epy-bindings)   ;; For my suggested keybindings [optional]\n: (require 'epy-nose)       ;; For nose integration\n\nFor further information and usage suggestions check:\n\n- [[https://github.com/gabrielelanaro/emacs-for-python/wiki]]\n- [[http://wiki.github.com/gabrielelanaro/emacs-for-python/workflow]]\n\nThere is another nice tutorial on how to install emacs-for-python\nhere:\n[[http://maddemcode.com/python/emacs-and-python-the-definitive-answer/]] \n\n*** Configuring the _flymake_ checker\nNew in version 0.3:\nI changed the way you configure your checkers, now there is no\npredefined checker and you have to configure it by your own.\n\nThe good news is that it is extremely simple to configure your own\ncommand, for example to configure the pyflakes checker install it and\nput in your customization file (.emacs):\n\n: (epy-setup-checker \"pyflakes %f\")\n\nObviously you can substitute the ``\"pyflakes %f\"`` with whatever you\nwant, you just have to keep in mind that ``%f`` will be substituted\nwith the file which is being checked.\n\n*** Adding the django snippets\nThe django snippets comes as an option, you can load them using:\n\n: (epy-django-snippets)\n\nAs a command using M-x or putting it in your .emacs.\n*** ipython integration \nIpython can be integrated with python-mode. Clicking on the\nPython-\u003eStart interpreter menu entry will spawn an ipython shell\ninstead of a python one. To enable the feature put this line in your .emacs:\n\n: (epy-setup-ipython)\n\n*** line highlighting\nYou may want to enable this feature with the color you prefer, to do\nso, drop one of the following lines in your .emacs\n: (global-hl-line-mode t) ;; To enable\n: (set-face-background 'hl-line \"black\") ;; change with the color that you like\n:                                        ;; for a list of colors: http://raebear.net/comp/emacscolors.html\n*** Highlight Indentation\nInteresting way to have a visual clue on how the code is indented:\n\n[[https://github.com/gabrielelanaro/emacs-for-python/raw/master/doc/highlight_line_ind.png]]\n\n: (require 'highlight-indentation)\n: (add-hook 'python-mode-hook 'highlight-indentation)\n\n\n*** disabling the auto-pairing of parenthesis\nTo disable the auto-pairing, drop the following line:\n: (setq skeleton-pair nil) \n\n*** Nosetests keybindings\nFirst of all, install nosetests. Then open a python file in your project and:\n``C-c a``: run all test\n``C-c m``: run tests in the module\n``C-c .``: run test under cursor\n\n``C-c p a``, ``C-c p m``, ``C-c p .``: same as above but drop in pdb when there's an error (Very useful!)\n*** Disabling ropemacs\nJust add the line to your .emacs\n: (setq epy-enable-ropemacs nil)\n\n** Installation with emacs-starter-kit\n\nI've built up a little fork of emacs starter kit that is greatly\nintegrated with emacs-for-python, it seems the best solution to me!\n\nThe repo is at this address: [[http://github.com/gabrielelanaro/emacs-starter-kit]]\n\nRemember that customization to emacs-starter-kit are done to a\ncustom.el file, and so you can substitute your distribution of\nemacs-starter-kit and you have to copy just your customization file.\n\n** License\n\nThis is mostly a distribution with some little tweaks, with respect of\nthe licenses, my tweaks are distributed according to the term of the\nGNU GPL license, described in the file COPYING.\n\nGenerally each file has its own license and copyright notice (most, if\nnot all of packages are GPL), the license of rope (GPL) is in\nrope-dist/COPYING.\n","funding_links":[],"categories":["Emacs Lisp","Editors and IDE's for Python programming"],"sub_categories":["Paid"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielelanaro%2Femacs-for-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrielelanaro%2Femacs-for-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielelanaro%2Femacs-for-python/lists"}