.dotbot@4ec846cdad | ||
bash | ||
tmux | ||
utils | ||
vim | ||
zsh | ||
.gitmodules | ||
.install.conf.yaml | ||
install.sh | ||
README.md |
____ __ _____ __
/ __ \____ / /_/ __(_) /__ _____
/ / / / __ \/ __/ /_/ / / _ \/ ___/
/ /_/ / /_/ / /_/ __/ / / __(__ )
/_____/\____/\__/_/ /_/_/\___/____/
Intro
My personal dot files, that I use to quickly configure a Linux environment on desktop and server instances. Dotbot is being used to create symlinks in all the right places.
Tested and used on Ubuntu, Arch Linux and Manjaro.
Setup
To setup, just clone the repo, cd into it, and run the install script.
git clone git@github.com:Lissy93/dotfiles.git
cd dotfiles
./install.sh
Configuring
Configuration is specified in .install.conf.yaml
and managed with Dotbot.
The bootstrap configurations are idempotent (and so the installer can be run multiple times without causing any problems).
To only install certain parts of the config, pass the --only
flag to the install.sh script, similarly --except
can be used to exclude certain directives.
Dependencies
These dot files make use of the following packages, and hence they are required
- zsh - Interactive Shell
- vim - Fast, solid customizable text editor
- tmux - Detachable terminal multiplexer
- ranger - CLI-based file manager with VI bindings
- git - Version control system
They can be easily installed/ updated with your package manger, e.g:
- Ubuntu Server:
sudo apt install -y zsh vim tmux ranger git
- Arch Linux:
sudo pacman -S zsh vim tmux ranger git
Depending on your setup, the following utils may also be required: make
, ctags
, fzf
and python3-pip
Documentation
The following section briefly explains the configuration and plug-ins for the main components (Tmux, Vim and Zsh)
Tmux
Fairly standard Tmux configuration, strongly based off Tmux-sensible. Configuration is defined in .tmux.conf
Tmux plugins are managed using TMP and defined in .tmux.conf
. To install them from GitHub, run prefix
+ I from within Tmux, and they will be cloned int ~/.tmux/plugins/
.
Plugins
- Tmux-sensible:
tmux-plugins/tmux-sensible
- General, sensible Tmux config - Tmux-continuum:
tmux-plugins/tmux-continuum
- Continuously saves and environment with automatic restore - Tmux-yank:
tmux-plugins/tmux-yank
- Allows access to system clipboard - Tmux-prefix-highlight:
tmux-plugins/tmux-prefix-highlight
- Highlight Tmux prefix key when pressed - Tmux-online-status:
tmux-plugins/tmux-online-status
- Displays network status - Tmux-open:
tmux-plugins/tmux-open
- Bindings for quick opening selected path/ url - Tmux-mem-cpu-load:
thewtex/tmux-mem-cpu-load
- Shows system resources
Vim
The entry point for the Vim config is the vimrc
, but the main editor settings are defined in vim/editor.vim
Plugins
Vim plugins are managed using Plug defined in vim/plugins.vim
.
To install them from GitHub, run :PlugInstall
(see options) from within Vim.
Layout & Navigation:
- Airline:
vim-airline/vim-airline
- A very nice status line at the bottom of each window, displaying useful info - Nerd-tree:
preservim/nerdtree
- Alter files in larger projects more easily, with a nice tree-view pain - Matchup:
andymass/vim-matchup
- Better % naviagtion, to highlight and jump between open and closing blocks - TagBar:
preservim/tagbar
- Provides an overview of the structure of a long file, shows tags ordered by scope - Gutentags:
ludovicchabant/vim-gutentags
- Manages tag files - Fzf:
junegunn/fzf
andjunegunn/fzf.vim
- Command-line fuzzy finder and corresponding vim bindings - Deoplete.nvim:
Shougo/deoplete.nvim
- Extensible and asynchronous auto completion framework - Smoothie:
psliwka/vim-smoothie
- Smooth scrolling, supporting^D
,^U
,^F
and^B
- DevIcons:
ryanoasis/vim-devicons
- Adds file-type icons to Nerd-tree and other plugins
Operations:
- Nerd-Commenter:
preservim/nerdcommenter
- For auto-commenting code blocks - Ale:
dense-analysis/ale
- Checks syntax asynchronously, with lint support - Surround:
tpope/vim-surround
- Easily surround selected text with brackets, quotes, tags etc - IncSearch:
haya14busa/incsearch.vim
- Efficient incremental searching within files - Vim-Visual-Multi:
mg979/vim-visual-multi
- Allows for inserting/ deleting in multiple places simultaneously - Visual-Increment:
triglav/vim-visual-increment
- Create an increasing sequence of numbers/ letters withCtrl
+A
/X
- Vim-Test:
janko/vim-test
- A wrapper for running tests on different granularities - Syntastic:
vim-syntastic/syntastic
- Syntax checking that warns in the gutter when there's an issue
Git:
- Git-Gutter:
airblade/vim-gitgutter
- Shows git diff markers in the gutter column - Vim-fugitive:
tpope/vim-fugitive
- A git wrapper for git that lets you call a git command using:Git
- Committia:
rhysd/committia.vim
- Shows a diff, status and edit window for git commits - Vim-Git:
tpope/vim-git
- Runtime files for git in vim, for git, gitcommit, gitconfig, gitrebase, and gitsendemail
File-Type Plugins:
- Vim-JavaScript:
pangloss/vim-javascript
(JavaScript) - Syntax highlighting and improved indentation for JS files - Yats:
HerringtonDarkholme/yats.vim
(TypeScript) - Syntax highlighting and snippets for TypeScript files - Vim-jsx-pretty:
MaxMEllon/vim-jsx-pretty
(React) - Highlighting and indentation for React .tsx and .jsx files - Vim-CSS-Color:
ap/vim-css-color
(CSS/ SASS) - Previews colors as text highlight, where hex codes are present - Mustache and Handlebars:
mustache/vim-mustache-handlebars
(Mustache/ Handlebars) - Auto handles braces - Vim-Go:
fatih/vim-go
(GoLang) - Go support, with syntax highlighting, quick execute, imports, formatting etc - Indentpython:
vim-scripts/indentpython.vim
(Python) - Correct indentation for Python files - Semshi:
numirias/semshi
(Python) - Advanced syntax highlighting for Python files - SimpylFold:
tmhedberg/SimpylFold
(Python) - Code-folding for Python - Vimtex:
lervag/vimtex
(LaTex) - Completion of citations, labels, commands and glossary entries - Dockerfile.vim:
ekalinin/Dockerfile.vim
(Docker) - Syntax highlighting and snippets for Dockerfiles - Vim-Json:
elzr/vim-json
(JSON) - Syntax highlighting, warnings, and quote concealing foe .json files - Requirements:
raimon49/requirements.txt.vim
(Requirements) - Syntax highlighting for the requirements file format - Vim-Markdown:
gabrielelana/vim-markdown
(Markdown) - Syntax highlighting, auto format, easy tables and more - Zinit:
zinit-zsh/zinit-vim-syntax
(ZSH) - syntax definition for Zinit commands in any file of type zsh - Nginx:
chr4/nginx.vim
(Nginx) - Integer matching, hichlight syntax and IPv4/ IPv6, mark insecure protocols and more
Themes: