~/.Dotfiles hacker1db Modified dot files!
git clone https://github.com/hacker1db/Dotfiles.git ~/.dotfiles cd ~/.dotfiles ./install.sh
install.sh will start by initializing the submodules used by this repository. Then, it will install all symbolic links into your home directory. Every file with a
.symlink extension will be symlinked to the home directory with a
. in front of it. As an example,
vimrc.symlink will be symlinked in the home directory as
~/.vimrc. Then, this script will create a
~/.vim-tmp directory in your home directory, as this is where vim is configured to place its temporary files. Additionally, all files in the
$DOTFILES/config directory will be symlinked to the
~/.config/ directory for applications that follow the XDG base directory specification, such as neovim.
Next, the isntall script will perform a check to see if it is running on an OSX machine. If so, it will install Homebrew if it is not currently installed and will install the homebrew packages listed in
brew.sh. Then, it will run
osx.sh and change some OSX configurations. This file is pretty well documented and so it is advised that you read through and comment out any changes you do not want. Next, the script will call
install/nvm.sh to install Node.js (stable) using nvm.
ZSH is configured in the
zshrc.symlink file, which will be symlinked to the home directory. The following occurs in this file:
- set the
- Recursively search the
$DOTFILES/zshdirectory for files ending in .zsh and source them
- Add the
$DOTFILES/bindirectories to the path
Vim and Neovim Setup
Neovim is a fork and drop-in replacement for vim. in most cases, you would not notice a difference between the two, other than Neovim allows plugins to run asynchronously so that they do not freeze the editor, which is the main reason I have switched over to it. Vim and Neovim both use Vimscript and most plugins will work in both (all of the plugins I use do work in both Vim and Neovim). For this reason, they share the same configuration files in this setup. Neovim uses the XDG base directory specification which means it won’t look for a
.vimrc in your home directory. Instead, its configuration looks like the following:
|Main Configuratin File||
Vim is likely already installed on your system. If using a Mac, MacVim will be installed from Homebrew. Neovim will also be installed from Homebrew by default on a Mac. For other systems, you may need to install Neovim manually. See their web site for more information.
link.sh will symlink the XDG configuration directory into your home directory and will then create symlinks for
.vim over to the Neovim configuration so that Vim and Neovim will both be configured in the same way from the same files. The benefit of this configuration is that you only have to maintain a single vim configuration for both, so that if Neovim (which is still alpha software) has issues, you can very seamlessly transition back to vim with no big impact to your productivity.
EDITOR shell variable is set to
nvim, defaulting to Neovim for editor tasks, such as git commit messages. Additionally, I have aliased
aliases.zsh You can remove this if you would rather not alias the
vim command to
vim and neovim should just work once the correct plugins are installed. To install the plugins, you will need to open Neovim in the following way:
```bash Run the following in a terminal to install neovim and vim plugins nvim +PlugInstall