Configuration to setup my dev env (mostly Neovim and bash).
I am an open-source enthusiast and Python developer who primarily uses Linux for both personal and professional work. If your workflow aligns with this profile, you might find this repo useful. To learn more about me, visit my website.
This setup is specifically tailored for Asahi Fedora Remix on Apple Silicon hardware and Ubuntu, but can be adapted for other Linux distributions.
- Configuration: Fully written in Lua.
- Fast Plugin Management: Uses
lazy.nvimfor asynchronous plugin loading. - UI: Comes with
lunaperchecolorscheme,lualine.nvimfor the statusbar, andneo-tree.nvimas a file explorer. - Python Development:
- LSP: Full-featured language server support via
pyrightfor diagnostics, code completion, and navigation. - Formatting: Automatic formatting on save using
ruff_format. - Linting: High-performance linting with
ruff.
- LSP: Full-featured language server support via
- Markdown:
- Live Preview: In-browser preview using
markdown-preview.nvim. - Syntax Highlighting: Accurate highlighting with
nvim-treesitter.
- Live Preview: In-browser preview using
- Productivity:
- Fuzzy Finding:
telescope.nvimfor finding files, text, and more. - Git Integration: Seamless git workflows with
vim-fugitive. - Distraction-Free Writing:
goyo.vimfor a clean writing interface.
- Fuzzy Finding:
- Starship Prompt: Fast, customizable cross-shell prompt (https://starship.rs).
- Bash Aliases: A curated collection of
.bash_aliasesfor enhanced productivity. - Git Config: Sane default
.gitconfigfor a smoother Git workflow.
-
📥 Clone the repository:
git clone https://github.com/shon/dotfiles.git cd dotfiles -
🚀 Run the setup script: This script will install all necessary packages (Neovim, git, etc.) and create the required symlinks.
sh ./init.sh
-
🚀 Launch Neovim: The first time you start Neovim,
lazy.nvimwill automatically install all the plugins.nvim
That's it! Your modern development environment is ready.
This codebase has been significantly modernized, but here are a few more suggestions for improvement:
- Shell and Terminal:
- Dotfiles Management:
- Neovim Customization:
- The current Neovim setup is powerful, but you can customize it further. Explore adding plugins for things like:
- Database integration (
vim-database). - REST client (
rest.nvim). - More advanced debugging with
nvim-dap.
- Database integration (
- The current Neovim setup is powerful, but you can customize it further. Explore adding plugins for things like: