This is my personal dotfile repository which is under active development. I am still trying to figure out the best software/plugins to use, so things may change over time. The main criterias for my dot files is to be minimalistic (and therefore lightweight) while providing the necessary functionality. The current configuration was made and works for an old and slow PC under Lubuntu-14.04.
The latest stable version is accessible through releases; the master branch is a development branch. The configuration files include settings for:
- LXTerminal (also works for Cygwin terminal): color sceme, command line format, etc.
oh-my-zshprezto zsh- tmux - terminal multiplier
- vim (customized for C++ and Qt development mainly)
Made to work under Lubuntu-14.04, and later tuned to be used with Cygwin.
These are solely examples, the end version might look slightly different.
* Inside modified git repository
* Editing with vim inside tmux session
- Was made to work under Lubuntu-14.04
- Is being tuned to work with Cygwin
- Note: the Cygwin must be run as Administrtor when installing (for symbolic links creation)
- Is being tested to run with MinGW, Windows 7
- Note: before doing
git clone ...
, make sure the git global setting is put togit config --global core.autocrlf input
in order to avoid end-of-line^M
error - MinGW does not support
zsh
andchsh
so it will have a very limited functionality
- Note: before doing
Most of the packages are present on Linux (Lubuntu) by default. For the Cygwin, make sure your Cygwin installation include:
git
zsh
chsh
vim
tmux
mc
- might be needed some other packages such as
python-dev
,cmake
, etc. Most of them are already pre-built with Linux, but not necessary with Cygwin.
To perform the download, run from terminal:
$ git clone https://github.com/vicrucann/dotfiles.git
$ cd dotfiles
$ git submodule update --init --recursive
The installation command for Cygwin (Cygwin must be run under administrator rights):
$ ./install.sh
For Linux:
$ chmod +x install.sh
$ bash install.sh
$ bash install-tmux.sh
$ bash install-sounds.sh
$ bash test_sound.sh
Note 1: If you install on clean terminal, you can say yes to all of the installation steps. One of the main reasons of those steps is so that to not re-install a package if you already have it, for example, when you try to upgrade the configuration, there is no need to re-install Prezto.
Note 2: During the installation you might see error messages related to vim, especially if you do clean install. You can ignore them since they occur because you do not have the necessary vim config files (E185: Cannot find color scheme 'solarized') yet.
Assuming your installation is complete, re-run your shell and enjoy its new functionality.
If you do not wish to know the installation step details, skip this section, it only provides a textual description if you want to know what are the installation steps.
- Prezto installation from official github source
- Removal of previous symbolic links from
$HOME
such as.vimrc
,.zshrc
,.tmux.conf
etc. Feel free to check fileinstall.sh
for the full list. - Symbolic link creation. The
install.sh
checks for the terminal type (cygwin
vs.linux
) and uses corresponding command to create the symbolic link. - Any vim setting removal: files at
$HOME
directory, as well as from.vim
directory - Vundle installation from official github source
- vim plugin installation using Vundle
- Changing the shell from bash to zsh
One of the most common problems when trying to run install.sh
- line encoding is read wrongly by Cygwin (e.g. it treats the file encoding as dos
, while it is supposed to be unix
). One of the ways to change to the correct file encoding is:
- Open the
install.sh
in vim -vim install.sh
- In Vim, assign the correct file encoding to the file -
:w ++ff=unix
- Now close the file -
:q
and try to runinstall.sh
again
To update the configuration files, first pull changes from the git repository. Assuming you are inside the dotfiles
folder in your shell, run the following command:
~ dotfiles $ git pull
This will fetch all the recent changes.
After that you can run install.sh
as it was mentioned in Installation step above. This time you can answer differently on each installation step question:
- No to install Prezto (optional)
- Yes to remove previous links (necessary)
- No to remove previous vim settings (optional)
- Yes to plugin installation if any new plugins were added to the config settings
Info on customizing environment variables, git settings, etc. will be here.
- Plugin management: Vundle
- Color scheme: Solarized
- File viewer: NERDTree - maybe will be replaced by CtrlP
- Status bar: vim-airline
- Working with codes:
- Code comments - NERDCommenter
- Syntax check - syntastic
- Enhanced C++ highlights - vim-cpp-enhanced-highlight
- Not installed, but planned to chose from to improve functionality:
- Switch between source and header file - a.vim
- Snippets - snipMate or UltiSnips or c.vim
- Reference search, e.g. variables, classes, functions - cscope
- Go to definition - ctags
- Code completion - YouCompleteMe; or more on C++ code completion
- Class navigation - taglist or Tagbar
- clewn - debug support
- Based on Prezto
- Custom prompt configuration: viruca
- Imitation of Solarized color scheme for background and foreground colors solely
- Replaced some basic key bindings for easier reach, e.g.,
<C>b
is replaced by<C>a
- Based on Solarized scheme to diffirintiate between different file types when using commands such as
ls
- dircolors file for Lubuntu is taken from dircolors-solarized project
- Tmux prefix:
<C>a
. - Vim prefix:
\
(e.g. when using withNERDCommenter
, etc.). - To open vim command tips, open vim and then in normal mode:
\?
. Use<C>w+<up>
and<C>w+<down>
to naviage between the main vim window and the open vim tips window. - Zsh variable:
$dots
is the path for the~/github/dotfiles
.
<C>a |
- split the screen in half vertically
<C>a -
- split the pane in half horizontally
<C>a h
or <C>a j
or <C>a k
or <C>a l
- jump the between the panes
<C>-a <up>\<down>\<left>\<right>
- move between the open panes
<C>a H
or <C>a J
or <C>a K
or <C>a L
- resize the panes
<C>a <tab>
or <C>a <backspace>
- toggle/untoggle and bring focus to sidebar with directory tree
<C>a [
scroll withint the tmux buffer. Esc
- quit the scrolling mode.
<C>a r
- reload the current tmux config
<C>d
- close current window
<C>a c
- open up another window
<C>a n
- go to the next window
$ tmux ls
- in terminal: check what Tmux sessions are running