Coder Social home page Coder Social logo

abhimanyuaryan / dotfiles Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nicknisi/dotfiles

0.0 0.0 0.0 1.17 MB

vim, zsh, git, homebrew, nvm, nginx, neovim - my whole world

License: MIT License

AppleScript 1.61% Shell 19.08% Ruby 0.74% Vim Script 76.95% Nginx 1.61%

dotfiles's Introduction

Dotfiles

Welcome to my world. This is a collection of vim, tmux, and zsh configurations. Interested in a video walkthrough of the dotfiles? Check out my talk, vim + tmux.

Contents

Initial Setup and Installation

If on OSX, you will need to install the XCode CLI tools before continuing. To do so, open a terminal and type

xcode-select --install

Then, clone the dotfiles repository to your computer. This can be placed anywhere, and symbolic links will be created to reference it from your home directory.

git clone https://github.com/nicknisi/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 installosx.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 Setup

ZSH is configured in the zshrc.symlink file, which will be symlinked to the home directory. The following occurs in this file:

  • set the EDITOR to nvim
  • Load any ~/.terminfo setup
  • Set the CODE_DIR variable, pointing to the location where the code projects exist for exclusive autocompletion with the c command
  • Recursively search the $DOTFILES/zsh directory for files ending in .zsh and source them
  • source a ~/.localrc if it exists so that additional configurations can be made that won't be kept track of in this dotfiles repo. This is good for things like API keys, etc.
  • Add the ~/bin and $DOTFILES/bin directories to the path
  • Setup NVM, RVM, and hub if they exist
  • Set the base16 colorscheme to use for both the terminal (iTerm2) and vim/neovim by exporting the $THEME and $BACKGROUND environment variables
  • And more...

Prompt

The prompt is meant to be simple while still providing a lot of information to the user, particularly about the status of the git project, if the PWD is a git project. This prompt sets precmd, PROMPT and RPROMPT.

The precmd shows the current working directory in it and the RPROMPT shows the git and suspended jobs info.

Prompt Git Info

The git info shown on the RPROMPT displays the current branch name, and whether it is clean or dirty.

Additionally, there are ⇣ and ⇡ arrows that indicate whether a commit has happened and needs to be pushed (⇡), and whether commits have happened on the remote branch that need to be pulled (⇣).

Suspended Jobs

The prompt will also display a ✱ character in the RPROMPT indicating that there is a suspended job that exists in the background. This is helpful in keeping track of putting vim in the background by pressing CTRL-Z.

Vim and Neovim Setup

vim and neovim should just work once the correct plugins are installed. To install the plugins, you will need to open vim/neovim in the following way:

for vim

vim +PlugInstall

for neovim

nvim +PlugInstall

Fonts

I am currently using Hack as my default font, which does include Powerline support, so you don't need an additional patched font. In addition to this, I do have nerd-fonts installed and configured to be used for non-ascii characters. If you would prefer not to do this, then simply remove the Plug 'ryanoasis/vim-devicons' plugin from vim/nvim. Then, I configure the fonts in this way in iTerm2:


  • zsh configuration
  • vim configuration
  • tmux configuration
  • git configuration
  • osx configuration
  • Node.js setup (nvm)
  • Homebrew

Install

  1. git clone https://github.com/nicknisi/dotfiles.git ~/.dotfiles
  2. cd ~/.dotfiles
  3. ./install.sh

ZSH Plugins

By default, the .zshrc file will source any file within .dotfiles/zsh that have the .zsh extension.

Vim Plugins

Vim plugins are managed with vim-plug. To install, run vim +PlugInstall.

dotfiles's People

Contributors

nicknisi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.