These are my dotfiles, managed by chezmoi.
You can use the convenience script to install the dotfiles on any machine with a single command. Simply run one of the following commands in your terminal:
wget
bash -c "$(wget -qO- https://raw.githubusercontent.com/jfmercer/dotfiles/master/scripts/install_dotfiles.sh)"curl:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/jfmercer/dotfiles/master/scripts/install_dotfiles.sh)"The getting started step used the convenience script to install this dotfiles. There are some extra options that you can use to tweak the installation if you need.
It supports some environment variables:
DOTFILES_REPO_HOST: Defaults tohttps://github.com.DOTFILES_USER: Defaults tojfmercer.DOTFILES_BRANCH: Defaults tomaster.DOTFILES_FORCE_RESET: Unset by default. When the source directory already exists, the installer does a fast-forward-only pull and refuses to run if there are local changes. Set this to1to discard local commits and untracked files instead (git reset --hard+git clean -fdx). Used by CI, which wants a clean slate.
For example, you can use it to clone and install the dotfiles repository at the beta branch with:
DOTFILES_BRANCH=foobar /usr/bin/env bash -c "$(curl -fsSL https://raw.githubusercontent.com/jfmercer/dotfiles/master/scripts/install_dotfiles.sh)"The curl | bash one-liner above executes code fetched over the network before you have read it. Specifically it trusts:
raw.githubusercontent.comto serve an honestscripts/install_dotfiles.sh,get.chezmoi.ioto serve an honest chezmoi installer — the version it installs is pinned ininstall.sh, so a compromised endpoint cannot silently substitute a different chezmoi, but the installer script itself is unpinned,- Homebrew's
install.shfromHEAD(macOS only).
Everything downstream of that is pinned and verified: all .chezmoiexternal.yaml entries carry a checksum.sha256, and the Linux install script verifies rustup's installer checksum, lazygit's release checksum, and the eza signing key's fingerprint before using any of them.
If that residual trust is not acceptable, clone the repo over SSH and run ./install.sh directly instead of piping anything into a shell.
Add DOTFILES_DEBUG=true to get debug output during the installation.
ESCis nowjk. This will save your left pinky from a premature death.F2toggles paste.F3toggles NERDTree.,evedits your vimrc. The mnemonic is 'e'dit 'v'imrc.,svsources your vimrc. The mnemonic is 's'ource 'v'imrc.
Vim here is for quick terminal edits; project work happens in Zed (c / erc).
To quote Tim Pope, it's "a Git wrapper so awesome, it should be illegal."
This handles the surrounding of text objects with parentheses, brackets, quotes, tags, etc.
Use cs, ds, ys, & yss. See the documentation or run :help surround.
A file tree explorer. Basically, the project drawer you may be missing from Textmate and Sublime Text.
This makes commenting much easier. Select something, [count]<leader>cc, done.
Easy Motion makes it much, much easier to move the cursor around the screen. See @Lokaltog's introduction for details. The short version: hit <Leader><Leader> followed by a motion key (say, <Leader><Leader>w) and then watch the magic happen.
A beautiful and very useful vim status line. For this to work properly, you may have to install Powerline-ready fonts, four of which may be found here.
Adds the monokai color scheme.
Provides insert mode auto-completion for quotes, parentheses, brackets, etc.
Apparently, {{- strips leading whitespace, -}} strips trailing whitespace, and both {{ and }} do neither.
I have borrowed heavily from the following:
- Zach Holman - I borrow his topical organization scheme
- Mathias Bynens - mainly for his legendary .macos script
- Felipe Santos - chezmoi inspiration
- Mike Kasberg - chezmoi inspiration
- Tom Payne - chezmoi inspiration