dotfiles
dotfiles copied to clipboard
My very personal configuration files for vim, tmux, zsh etc.
My Personal Configuration Files
VIM Configuration
NOTE: I gave up on making config fully compatible with both Vim and Neovim because Neovim took a different path. So now Vim and Neovim configurations are maintained separately and Neovim part will be as much as possible in pure Lua.
Some part of the information below might be outdated. I will try update it soon.
My very personal Vim configuration. Some more details below.
- Compatible with both Vim >=8 and Neovim.
- Some plugins might not support vanilla Vim if not compiled with python3.
- Recommended environment includes iTerm nightly and tmux.
- Plugins managed by vim-plug.
- Basic language support comes from vim-polyglot.
- Mnemonic keyboard shortcuts. E.g. file based actions under
<Leader>fand buffer based shortcuts are under<Leader>b. - Leader key is
space. Local leader is\.
Key bindings List
Notable custom key bindings;
- File based operations (starts with
<leader>f)<leader>ffFind files. Fuzzy search UI populated with ripgrep. It shows project files. You can switch between these withC-jandC-k.<leader>fsSave file in active buffer.<leader>fjFuzzy find junkfiles.<leader>fWRemove trailing whitespace from whole buffer.
- Buffer based operations (starts with
<leader>b)<leader>bbList open buffers and prompt with fuzzy search to jump.<leader>bdDelete current buffer. (runs:bdelete)<leader><tab>Switch to previous buffer. Equivalent to:b#<cr>.
- Search based operations
nmapped tonzzzvto keep matching line in the middle of the screen.<BS>executes:nohlsearch<cr>.
- Other
<leader>Vselects just pasted text.
Check keybindings.vim for all custom keybindings. Filetype based keybindings (for haskell, python etc.) and configurations can be found in corresponding files under nvim/after/ftplugin directory.
Plugins List
Check plugins.vim for all plugins.
Installation
MacOS
-
Install
Neovim(I prefer HEAD).$ brew install neovim --HEAD -
For Neovim it is recommended to use separated virtual python environments for editor's own needs (I use Fish shell and virtualfish). For any shell, these virtual environments must be located under
~/.virtualenvs/.$ vf new --python=python3 neovim3 -
Clone repository to any place you prefer.
$ git clone https://github.com/zekzekus/dotfiles.git -
Create symbolic links.
$ cd $HOME $ cd .config $ ln -s /path/to/dotfiles/nvim . -
Create necessary directories.
$ cd $HOME $ mkdir .nvimtmp -
First run will give errors. Ignore them.
$ nvim -
For each editor execute
:PlugInstallcommand. -
Install necessary OS packages.
$ brew install universal-ctags ripgrep the_silver_searcher fzf $ brew install tavianator/tap/bfs
TMUX Configuration
Mac OS X
-
Install the
tmuxandreattach-to-user-namespacepackages using Homebrew$ brew install tmux $ brew install reattach-to-user-namespace -
Create a symbolic link to
dotfiles/tmux/tmux.confln -s /path/to/repo/dotfiles/tmux/tmux.conf ~/.tmux.conf -
Run tmux
$ tmux
Debian/Ubuntu
-
Install the
xselandtmuxpackagessudo apt-get install xsel tmux -
Create a symbolic link to
dotfiles/tmux/tmux.ubuntu.confln -s /path/to/repo/dotfiles/tmux/tmux.ubuntu.conf ~/.tmux.conf -
Run tmux
$ tmux