# Why this PyDevBox is developed I love to use vscode. Lately I love nvim editor as well. The initial configuration for neovim was a steep learning curve. Thanks to kickstart.nvim which helped me at last. Now I have put Neovim and my configuration in dockerfile so that this environment can be used as devbox. # Python Devbox with kickstart.nvim ### Python Devbox Prepare your python development environment in container. This devbox contains neovim with kickstarter.nvim config I have added python debug support and neotree as extra ``` # Build your devbox image docker build -t devbox -f devbox.Dockerfile . # To run the container in background docker run -td --name mydevbox -v $(pwd):/workspaces devbox # -v $(pwd) is used to create volume inside container . IF you run from the folder where your source code is available then your container will have source code in it. You can use this as development box # To enter into devbox docker exec -it mydevbox /bin/bash # You can do debug using standard keys used in vscode F5 - to start debug F9 - to toggle debug breakpointer F10 - step over F11 - step into shift + F11 - step out F7 - to toggle the DapUI. Using this last debug session result can be seen # Below are some more options frequently used Space + gd = Go to definition Space + gr = Find references Space + rn - Rename a variable - Equal to F2 in vscode Space + ds - Display symbols (functions/variable etc) Space + sf - Search files( Fuzzy finder) equal to Ctrl+p in vscode Space + sw - Search words in file (Equal to Ctrl+shift+f in vscode) zR - Expand all fold zM - Collapse all folds (we can also use mouse as ufo plugin is installed) ``` ### To install locally ``` git clone https://github.com/SamPosh/PyDevbox ~/.config/nvim --depth 1 && nvim ``` ### To uninstall ``` rm -rf ~/.config/nvim rm -rf ~/.local/share/nvim rm -rf ~/.cache/nvim ``` This repo is forked from Kickstarter.nvim For nvim configuration refer : https://github.com/nvim-lua/kickstart.nvim ## Features 1) It is inside container. So this devbox can act like devcontainer (vscode) 2) Code block can be collapsed/expanded like vscode 3) Debugging can be done for python/Pytest. Also added sample configuration for profiler as well. ## Debuypy inside venv problem is resolved The reason why this Pydevbox is created to solve the problem of installing debugpy inside virtual env. I tried other NEOVIM distro but always stuck at the point where i have to use debugpy. But thankfully with the kickstarter.nvim inside container doesn't need debugpy to be installed inside venv ## Screenshots #### screen with terminal and filetree image #### start debug image #### Debug image ##### Notes: ``` I am using Termius terminal emulator. Using Fira code font ``` ## Few VSCode bindings are done ``` Debugger key binding are like vscode` Ctrl+b will toggle neotree(which is file explorer) Ctrl+j will toggle terminal (using toggleterm) ``` ### Python debug configuration Debug configuration is available in this file https://github.com/SamPosh/PyDevbox/blob/master/lua/kickstart/plugins/dap/handler/python.lua If you want to add additional configuration then you can add it here ### Minor problem need to be resolved yet Paste into nvim works fine. But copy from neovim to outside doesn't work. I could not figure out any solution till now. So for copying contents i am using alternate solution like cat it and copy it from terminal. This is a minor problem