This repo configures the below components for a nice developer setup. It is currently only tested on macos.
- Alacritty terminal emulator
- Lightweight and configurable
- Vim text editor
- Mostly config and vimscript plugins other than CoC which runs a node process per vim session and fzf which is an external go executable
- CoC for multi language lsp support. This lets us set maps that apply to all languages (
gd
for go to definition,gr
for get references, etc). To onboard a new lang simply add the CoC extension to coc_extensions - vim-go for go commands
,c
,,t
and quickfix parsing - fzf and fzf.vim for fuzzy finding
- vim-vinegar and vim-eunuch for netrw improvements and simple filesystem commands like
:Move
- vim-commentary for slick comment/uncomment command
gc
- vim-fugitive for
:Git
fun - vim-surround for surround commands like
cs"'
"hello" -> 'hello' andysiw"
hello -> "hello" - vim-speeddating for improved increment/decrement
C-S
andC-X
, C-S is configured instead of the default C-A because that is the chosen tmux prefix here - vim-sleuth for auto tab sizing
- vim-unimpaired for various handy binds like
[f
,[x
,[e
,[
etc - vim-repeat to nicely support
.
with vim-surround, vim-speeddating, vim-unimpaired commands - vim-highlightedyank to give a visual indicator for yanked text
- splitjoin.vim for
gS
andgJ
- CoC for multi language lsp support. This lets us set maps that apply to all languages (
- Mostly config and vimscript plugins other than CoC which runs a node process per vim session and fzf which is an external go executable
- Tmux terminal multiplexer
- This is configured to be vim-like in its mappings
- ZSH shell
- typewritten for a nice prompt that we could probably prune down into our own lighter version (with less git information displayed)
- zsh-syntax-highlighting for syntax highlighting as you type
- fzf for
/
history search,**
+^F
file search, and^G
ripgrep search - glow to render markdown, e.g.
glow README.md
- Readline configured in vi mode where
v
opens up your external editor
- Git configs
- Some macOS defaults
- bin/ Anything in bin/ will get added to your $PATH
- topic/install Any file named install is executed when you run
bin/dot
- topic/*.symlink Any file ending in .symlink gets symlinked into your $HOME
- topic/path.zsh: Any file named path.zsh is loaded first via zsh.rc and is expected to setup $PATH or similar, e.g. path.zsh
- topic/*.zsh Any files ending in .zsh get loaded into your zsh environment, e.g. aliases.zsh or env.zsh
- topic/completion.zsh Any file named completion.zsh is loaded last and is expected to setup autocomplete, e.g. completion.zsh
- Clone the repo
git clone https://github.com/ekotlikoff/dotfiles.git $HOME/.dotfiles
~/.dotfiles/bin/dot
Credit to https://github.com/holman/dotfiles for the structure