From e603db000981cec51a9e770a9de63bcfcea6d3e0 Mon Sep 17 00:00:00 2001 From: Daniel Naegele Date: Sun, 23 Jun 2013 18:38:55 +0200 Subject: [PATCH] initial --- tmux.conf | 79 ++++++++++++++++++++ vimrc | 211 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 290 insertions(+) create mode 100644 tmux.conf create mode 100644 vimrc diff --git a/tmux.conf b/tmux.conf new file mode 100644 index 0000000..0aa2fab --- /dev/null +++ b/tmux.conf @@ -0,0 +1,79 @@ +# make mouse useful +set -g mode-mouse on +set -g mouse-select-pane on + +# allow resize bigger than the smallest client +set -g aggressive-resize on + +# allow setting overrides of C-Up, ..., C-Right, and other stuff possibly... +set -g terminal-overrides 'xterm*:smcup@:rmcup@' + +# ncurses not polluting scroll history +set -g alternate-screen on + +# command prefix +unbind C-b +set -g prefix C-a +bind a send-prefix +bind-key C-a last-window + +# basic settings +set -g history-limit 30000 +set-option -g default-shell /usr/bin/zsh +set-window-option -g utf8 on +set -g default-terminal "xterm" + +# vi mode +set-window-option -g mode-keys vi +set-option -g status-keys vi +bind-key -t vi-copy 'v' begin-selection +bind-key -t vi-copy 'y' copy-selection + +# escape mode +unbind [ +bind Escape copy-mode +set -s escape-time 50 + +# switch windows +bind -r C-j previous-window +bind -r C-k next-window + +# splitting +unbind % +unbind '"' +bind + split-window -h # horizontal split +bind - split-window -v # vertical split +bind -n C-h run "(tmux display-message -p '#{pane_title}' | grep -iq vim && tmux send-keys C-h) || tmux select-pane -L" +bind -n C-j run "(tmux display-message -p '#{pane_title}' | grep -iq vim && tmux send-keys C-j) || tmux select-pane -D" +bind -n C-k run "(tmux display-message -p '#{pane_title}' | grep -iq vim && tmux send-keys C-k) || tmux select-pane -U" +bind -n C-l run "(tmux display-message -p '#{pane_title}' | grep -iq vim && tmux send-keys C-l) || tmux select-pane -R" +bind -r j resize-pane -D 2 +bind -r k resize-pane -U 2 +bind -r h resize-pane -L 2 +bind -r l resize-pane -R 2 + +# window title +set-option -g set-titles on +set-option -g set-titles-string '[#H]: #W' +set-window-option -g automatic-rename on + +# no visual activity +set -g visual-activity off +set -g visual-bell off + +# status bar +set-option -g status-utf8 on +set-option -g status-justify left +set-option -g status-bg black +set-option -g status-fg cyan +set-option -g status-interval 5 +set-option -g status-left-length 30 +set -g status-right-length 50 +set-option -g status-left '' +set-option -g status-right '#[fg=blue,bold]#H [#[fg=black]#(echo ${SSH_CONNECTION%%%% *})#[fg=blue,bold]]#[fg=green,bold]|#[fg=black,bold]#(uptime | rev | cut -d":" -f1 | rev | sed s/,//g ) #[fg=green,bold]| #[fg=blue,bold]%d.%m.%y %H:%M' +set-window-option -g window-status-current-fg black +set-window-option -g window-status-current-bg green + +# clock +set-window-option -g clock-mode-colour cyan +set-window-option -g clock-mode-style 24 diff --git a/vimrc b/vimrc new file mode 100644 index 0000000..c948388 --- /dev/null +++ b/vimrc @@ -0,0 +1,211 @@ +"#################################################################### +" .vimrc +"#################################################################### + +set nocompatible " vi compatibility off +scriptencoding utf-8 + +"" Vundle +filetype off +set rtp+=~/.vim/bundle/vundle/ +call vundle#rc() + +"" filetype plugin and syntax +syntax on +filetype indent plugin on + +"" system +set enc=utf-8 +set shell=/bin/zsh +set spelllang=de +set backspace=indent,eol,start + +"" single settings +set hidden " change buffers without saving +set mousehide " no mouse +set wildmenu " menu when tab completing commands +set nomodeline " ignore modelines +set nostartofline " don't move the coursor to the beginning of the line +set foldmethod=marker " fold by marker +set scrolloff=11 " minimum lines to the screens end +set autochdir " always be in the right directory +set pastetoggle= " toggle paste + +"" persistent undo and backup +set history=1000 +set undofile +set undodir=~/.backup/ +set backup +set backupdir=~/.backup/ + +"" tabs and stuff +set smartindent +set shiftwidth=4 +set softtabstop=4 +set expandtab " use spaces +set textwidth=79 + +"" search +set smartcase +set hlsearch +set incsearch +set showmatch + +"#################################################################### +" visual style {{{ +"#################################################################### +"" colorscheme +colorscheme desert +set background=dark +set t_Co=256 " force more colors + +"" highlight the current line and column +set cul +hi CursorLine cterm=NONE ctermbg=234 +set cuc +hi CursorColumn cterm=NONE ctermbg=234 + +"" coloring of linenumbers +hi CursorLineNr cterm=bold ctermfg=red +hi LineNr ctermfg=blue + +"" highlight same words +hi flicker cterm=bold ctermbg=234 +au CursorMoved exe 'match flicker /\V\<'.escape(expand(''), '/').'\>/' + +"" statusbar +set cmdheight=2 +set laststatus=2 +set showcmd + +"" linenumbers +set relativenumber +set ruler +autocmd InsertEnter * :setlocal nu +autocmd InsertLeave * :setlocal rnu +"" }}} + +"#################################################################### +" general auto commands {{{ +"#################################################################### +" autoremove trailing whitespace +autocmd BufRead,BufWrite * if ! &bin | silent! %s/\s\+$//ge | endif + +" salt syntax highlighting +au BufRead,BufNewFile *.sls set filetype=sls +"" }}} + +"#################################################################### +" keymaps {{{ +"#################################################################### + +let mapleader = "," + +" jump to visual lines +nnoremap j gj +nnoremap k gk + +" stay in visual after indent +vnoremap < >gv + +" change Y from yy to y$ +map Y y$ + +" remove search hl +nnoremap :nohl + +" NERDtree +nnoremap f :NERDTreeToggle + +" taglist +nnoremap t :TlistToggle + +" toggle conversion of buffers to tabs +let notabs = 1 +nnoremap :let notabs=!notabs:if notabs:tabo:else:tab ball:tabn:endif + +" switch buffers +nnoremap :bn +nnoremap :bp + +" save with sudo +cmap w!! w !sudo tee % +"" }}} + +"#################################################################### +" autoinstall vundle {{{ +" Credit to: https://github.com/erikzaadi +"#################################################################### + +" Setting up Vundle - the vim plugin bundler +let iCanHazVundle=1 +let vundle_readme=expand('~/.vim/bundle/vundle/README.md') +if !filereadable(vundle_readme) + echo "Installing Vundle.." + echo "" + silent !mkdir -p ~/.vim/bundle + silent !git clone https://github.com/gmarik/vundle ~/.vim/bundle/vundle + let iCanHazVundle=0 +endif +set rtp+=~/.vim/bundle/vundle/ +call vundle#rc() +Bundle 'gmarik/vundle' + +if iCanHazVundle == 0 + echo "Installing Bundles, please ignore key map error messages" + echo "" + :BundleInstall +endif +"" }}} + +"#################################################################### +" switch vim splits with the same keys as tmux panes. {{{ +" Credit to https://github.com/aaronjensen +"#################################################################### +if exists('$TMUX') + function! TmuxOrSplitSwitch(wincmd, tmuxdir) + let previous_winnr = winnr() + execute "wincmd " . a:wincmd + if previous_winnr == winnr() + " The sleep and & gives time to get back to vim so tmux's focus tracking + " can kick in and send us our ^[[O + execute "silent !sh -c 'sleep 0.01; tmux select-pane -" . a:tmuxdir . "' &" + redraw! + endif + endfunction + let previous_title = substitute(system("tmux display-message -p '#{pane_title}'"), '\n', '', '') + let &t_ti = "\]2;vim\\\" . &t_ti + let &t_te = "\]2;". previous_title . "\\\" . &t_te + nnoremap :call TmuxOrSplitSwitch('h', 'L') + nnoremap :call TmuxOrSplitSwitch('j', 'D') + nnoremap :call TmuxOrSplitSwitch('k', 'U') + nnoremap :call TmuxOrSplitSwitch('l', 'R') +else + map h + map j + map k + map l +endif +"" }}} + +"#################################################################### +" bundles and their options {{{ +"#################################################################### +Bundle 'tpope/vim-fugitive' +Bundle 'Lokaltog/vim-easymotion' +Bundle 'kien/ctrlp.vim' +Bundle 'scrooloose/nerdtree' +let NERDTreeShowBookmarks=1 +let NERDTreeIgnore=['\.pyc', '\~$', '\.swo$', '\.swp$', '\.git', '\.hg', '\.svn', '\.bzr'] +let NERDTreeChDirMode=0 +let NERDTreeQuitOnOpen=1 +let NERDTreeMouseMode=2 +let NERDTreeShowHidden=1 +let NERDTreeKeepTreeInNewTab=1 +Bundle 'scrooloose/nerdcommenter' +Bundle 'vim-scripts/taglist.vim' +let Tlist_Use_Right_Window=1 +let Tlist_GainFocus_On_ToggleOpen = 1 +Bundle 'saltstack/salt-vim' +"" }}}