- All the files are settled in
~/.dotfiles/
- Plugin Management: Effortlessly manage, update and lazy-load plugins with lazy.nvim.
- Session Management: Auto-save and restore working sessions via auto-session.
- Theme: Enjoy a gorgeous, fully-customisable colourscheme with catppuccin.
- Status & Tab Lines: Sleek status line from lualine.nvim and tab management with bufferline.nvim.
- File Explorer: Navigate your project tree with neo-tree.nvim.
- Fuzzy Finding: Lightning-fast file & symbol search using telescope.nvim + telescope-fzf-native and telescope-ui-select.
- Autocompletion & Snippets: Smart completion powered by nvim-cmp (+ cmp-nvim-lsp) and snippets from LuaSnip with friendly-snippets.
- Copilot Integration: Seamless AI coding with copilot.vim.
- Language Server & Tools: LSP features via nvim-lspconfig with automatic installation from mason.nvim + mason-lspconfig.
- Formatting: Keep code pristine with conform.nvim.
- Linting: On-the-fly diagnostics through nvim-lint.
- Git Integration: Stage, preview and browse history using gitsigns.nvim and a full TUI with lazygit.nvim.
- Flutter Development: First-class Flutter workflow via flutter-tools.nvim.
- Markdown & Notes: Live preview with markdown-preview.nvim, rich rendering from render-markdown.nvim and second-brain management using obsidian.nvim.
- UI Enhancements: Modern command-line, pop-ups and notifications courtesy of noice.nvim, dressing.nvim and nui.nvim.
- Editing Productivity: Faster editing with Comment.nvim, better-escape.nvim, nvim-surround, nvim-autopairs, todo-comments.nvim and substitute.nvim.
- Syntax Highlighting: Advanced parsing & rainbow parentheses via nvim-treesitter and rainbow-delimiters.nvim.
- Leetcode: Solve problems directly in Neovim with leetcode.nvim.
- vimtex: Comprehensive LaTeX support using vimtex - see vimtex keymaps notes here -> vimtex-keymaps.
cd ~
git clone git@github.com:rogerfan48/dotfiles.git
mv dotfiles .dotfilescd ~/.dotfiles
# For Ubuntu, before running, make sure uninstall apt-installed neovim to avoid conflicts
sudo apt remove neovim
bash initialization.shIt'll run ./setup_link.sh to create symlinks for all the required config files inside the initialization script. If you want to re-establish the symlinks one day, simply run: bash ~/.dotfiles/setup_link.sh
Remember to restart your terminal after this step, or zsh + source ~/.zshrc.
tmux new -s <session_name>: start a new tmux session- Inside tmux, type
Ctrl+Space + Ito install tmux plugins
- Inside tmux, type
nvim: open neovim- It will auto-install plugins via lazy.nvim on first launch
- Inside neovim, run
:Copilot setupto get the GitHub Copilot working
- To see zsh customizations, check out
~/.dotfiles/.zshrc. - To see what plugins are included, check out the
~/.dotfiles/nvim/lua/roger/plugins/folders. - To see custom keymaps, check out
~/.dotfiles/nvim/lua/roger/core/keymaps.lua. - To see custom TMUX keymaps and settings, check out
~/.dotfiles/.tmux.conf. - To see vimtex keymaps introduction, check out
~/.dotfiles/vimtex-keymaps.md. - Copilot Keymaps:
Option + l: Accept WordOption + ;: Accept LineOption + ': Accept Full SuggestionOption + Backspace: Clear Suggestion- you can also see/change keymaps in
~/.dotfiles/nvim/lua/roger/core/keymaps.luaunder "Copilot" section.
- Use
nvimleetin the terminal to useleetcode.nvim
- reference
- Problem: When running a conda environment and opening tmux on macOS, a utility called path_helper is run again. Essentially, the shell is initialized twice which messes up the
${PATH}so that the wrong Python version shows up within tmux. - Solution: If using bash, edit
/etc/profileand add one line. (For zsh, edit/etc/zprofile)if [ -x /usr/libexec/path_helper ]; then PATH="" # <- ADD THIS LINE (right before path_helper call) eval `/usr/libexec/path_helper -s` fi


