This repository contains my personal dotfiles configuration for macOS, featuring thoroughly tailored setups for NeoVim and Zsh with performance in mind.
Neovim (Kitty) | Zsh + tmux (Alacritty) |
---|---|
![]() |
![]() |
$ curl -L dotfiles.creasty.com/provision | bash
bin/
: Custom executable scripts and commands (Added to systemPATH
)config/*
: XDG-compliant configuration fileshome/*
: Home directory dotfilesnvim/
: Neovim configurationsshell/
: Shell environment configurationsbash/*
: Bash-specific configurationszsh/*
: Zsh-specific configurations
docs/
: Setup documentation and resourcesprovisioning/
: Ansible playbooks and tasks
nvim | zsh | |
---|---|---|
Startup time | ~60ms | ~72ms |
Config size | 2,900 sloc | 700 sloc |
Original plugins | 10 plugins | 1,100 sloc of bin |
Third-party plugins | 36 plugins | 2 plugins + 5 hooks |
Original plugins:
- mold.vim
- opfmt
- auto_save.vim
- better_tagfunc.vim
- blockwise_visual_insert.vim
- emacs_cursor.vim
- file.vim
- next_file.vim
- project_dir.vim
- restore_buffer.vim
Third-party plugins (excerpt):
$ hyperfine --warmup 3 --prepare 'sleep 0.1' 'nvim --headless -c quit'
$ cloc --exclude-dir=dein,template nvim
$ rg '^repo\b.+\bcreasty/' nvim/dein/*.toml
$ rg --no-heading '^\[\[plugins' nvim/dein/*.toml | wc -l
Profiling:
$ nvim --headless --startuptime /dev/stdout -c quit
Third-party plugins/hooks:
$ hyperfine --warmup 3 --prepare 'sleep 0.1' 'zsh -i -c exit'
$ cloc --exclude-dir=plugins,bash --lang-no-ext=zsh shell
$ cloc bin
$ ls shell/zsh/plugins | wc -l
Profiling:
$ ZSH_PROF_ENABLED=1 zsh -i -c exit
Yuki Iwanaga / @creasty