{"id":13413150,"url":"https://github.com/chrisgrieser/nvim-kickstart-python","last_synced_at":"2025-04-05T06:02:46.020Z","repository":{"id":195591192,"uuid":"693215744","full_name":"chrisgrieser/nvim-kickstart-python","owner":"chrisgrieser","description":"A launch point for your nvim configuration for Python","archived":false,"fork":false,"pushed_at":"2025-03-25T13:02:20.000Z","size":5058,"stargazers_count":146,"open_issues_count":0,"forks_count":9,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-29T05:01:45.620Z","etag":null,"topics":["nvim-config","nvim-configuration","python-ide"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisgrieser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":"https://www.paypal.me/ChrisGrieser","ko_fi":"pseudometa"}},"created_at":"2023-09-18T15:20:07.000Z","updated_at":"2025-03-27T13:57:43.000Z","dependencies_parsed_at":"2024-02-28T06:32:04.775Z","dependency_job_id":"c1622f8a-8099-44bc-9a95-0de087186a0e","html_url":"https://github.com/chrisgrieser/nvim-kickstart-python","commit_stats":{"total_commits":67,"total_committers":4,"mean_commits":16.75,"dds":0.08955223880597019,"last_synced_commit":"8ea7944304dae361a9d4a3e2d42596c076026e18"},"previous_names":["chrisgrieser/nvim-kickstart-python"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisgrieser%2Fnvim-kickstart-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisgrieser%2Fnvim-kickstart-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisgrieser%2Fnvim-kickstart-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisgrieser%2Fnvim-kickstart-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisgrieser","download_url":"https://codeload.github.com/chrisgrieser/nvim-kickstart-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294515,"owners_count":20915340,"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":["nvim-config","nvim-configuration","python-ide"],"created_at":"2024-07-30T20:01:34.164Z","updated_at":"2025-04-05T06:02:46.001Z","avatar_url":"https://github.com/chrisgrieser.png","language":"Lua","readme":"\u003c!-- LTeX: enabled=false --\u003e\n# nvim-kickstart-python\n\u003c!-- LTeX: enabled=true --\u003e\n\nA launch point for your nvim config for python.\n\nSimilar to [kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim), but\nspecifically for python.\n\n\u003c!-- toc --\u003e\n\n- [Motivation](#motivation)\n- [Philosophy \u0026 Features](#philosophy--features)\n- [Recommendation](#recommendation)\n- [Download](#download)\n- [Syntax Highlighting](#syntax-highlighting)\n- [Additional plugins of interest](#additional-plugins-of-interest)\n- [Recommended Citation](#recommended-citation)\n- [Credits](#credits)\n\n\u003c!-- tocstop --\u003e\n\n## Motivation\nWhile there are quite a few great nvim distros and nvim starter configs out\nthere, one thing I somewhat missed was a base config for specific languages. I\nrecently started to learn python and was missing a minimal example what the\nstate-of-the-art nvim setup specifically for python is.\n\nAfter figuring most of it out, I decided to publish this config for others to\nuse. It is intended as a launch point for python devs switching to nvim, or as a\nreference for nvim users who want to start doing python development.\n\n## Philosophy \u0026 Features\n- This is not a nvim distro, this is a *minimal* nvim config specifically for\n  python. It's intended as a starting point for creating your own config.\n- Requirement: nvim 0.10.\n- ~15 plugins, ~350 lines, everything in one single file.\n- Includes detailed comments explaining what the config does.\n- The config can be fully bootstrapped: all plugins and tools are automatically\n  installed on startup.\n- Uses the current state-of-the-art of the nvim plugin ecosystem.\n- Includes some common tooling for python development:\n    + LSP (Completion, Typing): `pyright`\n    + Linting (Diagnostics): `ruff`\n    + Debugger: `debugpy`\n    + Embedded REPL: `ipython` (if not installed, falls back to `python3`)\n- In addition, this config includes editing utilities specifically for python,\n  like for example docstrings creation, selecting virtual environments, or\n  auto-converting f-strings.\n\n## Recommendation\nGo through the [kickstart-python.lua](./kickstart-python.lua), it is commented in\ndetail.\n\nYou can copypaste the config into you current `init.lua` to use it as a starting\npoint for your regular config, or you can copypaste parts of it into your\nexisting config.\n\n## Download\n`kickstart-python` requires at least nvim 0.10.\n\nDownload the [kickstart-python.lua](./kickstart-python.lua) file and run Neovim\nwith it:\n\n```bash\n# download the config\ncurl --remote-name \"https://raw.githubusercontent.com/chrisgrieser/nvim-kickstart-python/main/kickstart-python.lua\"\n\n# start neovim with the config, opening a file `foobar.py`\n# (any existing config you are using remains untouched)\nnvim -u kickstart-python.lua foobar.py\n```\n\nThe config automatically installs all the plugins and tooling needed.\n\u003c!-- vale Google.FirstPerson = NO --\u003e\n\n## Syntax Highlighting\nIs provided by the [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)\nplugin and/or the [semshi](https://github.com/numirias/semshi) plugin. The latter\nrequires `pynvim` (`python3 -m pip install pynvim`) to be installed.\n\nBoth provide better highlighting, Treesitter is considered the more \"modern\"\napproach. Treesitter covers some cases `semshi` does not and vice versa. Have a\n[look at the comparison](./treesitter-or-semshi.md) to decide for yourself which\none to use. The config uses Treesitter as the more modern approach.\n\n## Additional plugins of interest\nThese plugins are not included in the config, but they are worth mentioning, as\nsome people might be interested in them:\n- [nvim-various-textobjs](https://github.com/chrisgrieser/nvim-various-textobjs):\n  various indentation-based text objects\n- [NotebookNavigator](https://github.com/GCBallesteros/NotebookNavigator.nvim):\n  Jupyter Notebook emulation\n- [magma.nvim](https://github.com/dccsillag/magma-nvim): Jupyter Notebook integration\n- [ropify.nvim](https://github.com/niqodea/ropify): `ropify` integration\n- [nvim-conda](https://github.com/kmontocam/nvim-conda): `conda` environment selector\n- [nvim-lspimport](https://github.com/stevanmilic/nvim-lspimport): Automatically\n  resolves imports for `pyright`.\n- [jupytext.nvim](https://github.com/GCBallesteros/jupytext.nvim): Convert\n  Jupyter Notebooks to code and back.\n- [py-requirements.nvim](https://github.com/MeanderingProgrammer/py-requirements.nvim):\n  Helps manage python requirements.\n- [venv-selector](https://github.com/linux-cultist/venv-selector.nvim): switch\n  virtual environments\n- [python-import](https://github.com/kiyoon/python-import.nvim)\n\n## Recommended Citation\nYou can cite this software project as:\n\n```txt\nGrieser, C. (2023). nvim-kickstart-python [Computer software]. \nhttps://github.com/chrisgrieser/nvim-kickstart-python\n```\n\n## Credits\n[kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim) as an example how\nto do this.\n\nIn my day job, I am a sociologist studying the social mechanisms underlying the\ndigital economy. For my PhD project, I investigate the governance of the app\neconomy and how software ecosystems manage the tension between innovation and\ncompatibility. If you are interested in this subject, feel free to get in touch.\n\nI also occasionally blog about vim: [Nano Tips for Vim](https://nanotipsforvim.prose.sh)\n\n- [Website](https://chris-grieser.de/)\n- [Mastodon](https://pkm.social/@pseudometa)\n- [ResearchGate](https://www.researchgate.net/profile/Christopher-Grieser)\n- [LinkedIn](https://www.linkedin.com/in/christopher-grieser-ba693b17a/)\n\n\u003ca href='https://ko-fi.com/Y8Y86SQ91' target='_blank'\u003e \u003cimg height='36'\nstyle='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi1.png?v=3'\nborder='0' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e\n","funding_links":["https://www.paypal.me/ChrisGrieser","https://ko-fi.com/pseudometa","https://ko-fi.com/Y8Y86SQ91'"],"categories":["Preconfigured Configuration","Lua"],"sub_categories":["Competitive Programming","Automation"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisgrieser%2Fnvim-kickstart-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrisgrieser%2Fnvim-kickstart-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisgrieser%2Fnvim-kickstart-python/lists"}