Skip to content

sfowlr/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

My Dotfiles

These are the dotfiles I use on a regular basis on development machines. They get slowly tweaked over time to fit my needs as I work with new software or on new types of hosts. They get used on MacOS and Linux mostly - I can't speak for how they work on Windows, but in my limited Windows Subsystem for Linux testing, I've noticed strange behavior with vim colorschemes.

What's Included

.bash_aliases

Custom shell aliases for everyday use:

  • gg — Pretty-printed git log with graph, all branches, and decoration in a single oneline format.
  • ls — Overrides the default ls to always follow symbolic links (ls -L).

.vimrc

A full-featured Vim configuration covering editor behavior, plugin management, and visual customization:

General Settings

  • Line numbers, syntax highlighting, and filetype-based indentation enabled.
  • Dark background with the Gruvbox colorscheme.
  • jj mapped to <Esc> in insert mode for faster mode switching.
  • Cursor line highlighting, mouse support, and fast terminal rendering (ttyfast).
  • Search highlighting with double-Esc to clear.

Tab Management

  • <F9> toggles between hard tabs (width 8) and soft tabs (width 4).
  • Soft tabs are the default (set on VimEnter).
  • Mixed indentation is highlighted in red to catch formatting issues.

Convenience Mappings

  • <F7> — Reformat the entire file.
  • w!! — Save a file with sudo when you forgot to open Vim as root.
  • ReadWrite command — Remount the filesystem as read-write (useful on read-only embedded systems).

Plugin Management (Vundle)

Vundle is auto-installed on first launch if Git is available. The following plugins are configured:

Plugin Purpose
Vundle.vim Plugin manager (manages itself)
vim-gitgutter Show git diff markers in the sign column
vim-fugitive Git integration within Vim
NERDTree File system explorer sidebar
gruvbox Retro color scheme
vim-airline Enhanced status/tabline with Powerline fonts

Conditional plugins (loaded only on multi-core machines):

Plugin Purpose
vim-minimap Sublime-style code minimap
ctrlp.vim Fuzzy file finder
vim-ros ROS (Robot Operating System) support (requires Python 2 and catkin)

Performance Tuning

The config detects the number of CPU cores at startup and adapts accordingly:

  • On single-core machines: lazy redraw is enabled, airline caching is turned on, and heavier plugins (minimap, ctrlp) are skipped.
  • On multi-core machines: NERDTree and Minimap open automatically on startup (except in vimdiff mode).

Other Highlights

  • Trailing whitespace is highlighted in red.
  • vim-airline tabline is enabled with buffer numbers shown and hard/soft tab mode displayed in the status bar.
  • A workaround for a Vim memory leak (versions 702+) clears match highlights when leaving a buffer.

.gitignore

Contains a single wildcard (*) entry. Because the dotfiles are installed by cloning directly into ~, this prevents Git from tracking every file in the home directory — only explicitly added files are version-controlled.

Installation

WARNING: This method may overwrite any pre-existing dotfiles in your home directory that conflict with ones in this repository. Make sure you back them up or rename them (e.g., append .bak) before proceeding.

cd ~
git init
git remote add origin https://github.com/sfowlr/dotfiles.git
git pull origin master

This clones the dotfiles directly into your home directory — no symlinks or install scripts needed.

Post-Install

  • Open Vim. On first launch, Vundle will automatically install itself and all configured plugins.

  • Source the aliases in your shell profile by adding the following to your .bashrc or .bash_profile:

    if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
    fi

Requirements

  • Git — required for installation and for Vundle plugin management.
  • Vim — the .vimrc targets Vim (not Neovim), though most settings are compatible.
  • Powerline fonts (optional) — needed for proper vim-airline glyph rendering. Install from powerline/fonts.

Platform Notes

  • macOS / Linux: Fully supported.
  • Windows (WSL): Works with caveats — some Vim colorschemes may render incorrectly.

About

My personal .vimrc file

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors