Every day I am using vim, and I feel like I can learn new things every day. So please don't wonder or judge why this repo has many commits.
- homebrew (pkgs manager)
- nvim (code editor)
- tmux (term multiplexer)
- ghostty and wezterm for terminal emulator
- aerospace is a window manager for macos (i3 like)
- zshell
- GNU stow is a symlink management tool
Note: Some tools I also recommend: lazydocker, bat, fzf, autocompletion, ... (can be installed with brew)
- You need a package manager, if you are using macos, homebrew is a good one.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"brew install nvim
brew install tmux
brew install --cask ghostty
brew install --cask wezterm
brew install stow
brew install zshWith stow you can create symlink from a directory to a target directory.
So ideally, all settings shoul be in a directory, for example ~/dotfiles
cd
mkdir dotfilesAfter that, create dir tree structure for each tool with same structure as in its docs.
For instance, with nvim, you should place your configs in ~/.config/nvim
-> Create dir structure like this in dotfiles
cd ~/dotfiles
mkdir -p nvim/.config/nvimDo the same steps with the other tools. Then run this to create symlinks
stow nvim
stow zsh
stow aerospace
stow tmux
stow wezterm
stow ghosttyfor more information about gnustow: link
- You need Iterm/Wezeterm,...(not default macos terminal) because this terminal can not represent right theme
- Nerd font for view icon, text, folder, ... link
- Need to install delve for debugging:
brew install delve - Need ripgrep for telescope live grep
brew install ripgrep- Need wget to help mason to download zip,... from internet
brew install wgetUse the Makefile in others/ for easy management:
cd ~/dotfiles/others
# Create/update Brewfile and lock file
make brew-lock
# Install packages from lock file (on new system)
make brew-install
# Check if installed packages match lock file
make brew-check
# Remove packages not in Brewfile
make brew-clean
# Show all available commands
make helpLinux
- skip un-supported packs
brew bundle check --file=Brewfile
sed -i '/cask /d' Brewfile- I use lazy to manage plugins, you can use packer
- To sync or update plugins
:Lazy sync
:Lazy update-
I think it's better if we keep our settings at a simple level, don't set many things that you rarely use or you can achieve this purpose by some simple commands.
-
Check log lsp:
nvim ~/.local/state/nvim/lsp.logor
:LspLog
- Vim help is so helpful. Use it as much as you can example
:help Mason
-
Local models: use ollama ollama
-
Code suggestion: use super Maven supermaven
-
My nvim - llms integration settings are in: llms
-
symlink for docker.sock (use test container or act)
sudo ln -s ~/.colima/default/docker.sock /var/run/docker.sock