about summary refs log tree commit diff
path: root/configs
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2016-11-30T18·52-0500
committerWilliam Carroll <wpcarro@gmail.com>2016-11-30T18·52-0500
commit1ea6dc7f9038b5d854f39a44714c86cfad9b2fd9 (patch)
treececee4dbdf993585ff3d48a144722363357c83e5 /configs
parentef1b80c4baa28ff4e4f1f5d7f4a4e57601999cea (diff)
Replaces tmux.conf with new settings
Diffstat (limited to 'configs')
-rw-r--r--configs/.tmux.conf111
-rw-r--r--configs/.vimrc3
2 files changed, 100 insertions, 14 deletions
diff --git a/configs/.tmux.conf b/configs/.tmux.conf
index 9b2c3d96db65..05c0d6515755 100644
--- a/configs/.tmux.conf
+++ b/configs/.tmux.conf
@@ -1,23 +1,106 @@
-unbind C-b
-set -g prefix C-a
-bind C-a send-prefix
+# COLORS!
+set -g default-terminal "screen-256color"
 
+#copy-paste fixes: http://evertpot.com/osx-tmux-vim-copy-paste-clipboard/
+# Copy-paste integration
+set-option -g default-command "reattach-to-user-namespace -l zsh"
 
-bind-key -r -T prefix k select-pane -U
-bind-key -r -T prefix j select-pane -D
-bind-key -r -T prefix h select-pane -L
-bind-key -r -T prefix l select-pane -R
+# Use vim keybindings in copy mode
+setw -g mode-keys vi
 
+# Setup 'v' to begin selection as in Vim
+bind-key -t vi-copy v begin-selection
+bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
 
-bind-key -r -T prefix C-k resize-p -U 2
-bind-key -r -T prefix C-j resize-p -D 2
-bind-key -r -T prefix C-h resize-p -L 2
-bind-key -r -T prefix C-l resize-p -R 2
+# Update default binding of `Enter` to also use copy-pipe
+unbind -t vi-copy Enter
+bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
 
+# Bind ']' to use pbpaste
+bind ] run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"
 
-bind % split-window -c "#{pane_current_path}"
-bind '"' split-window -h -c "#{pane_current_path}"
+# fix for slow ESC issues
+set -s escape-time 0
+
+# start window indicies at 1
+set -g base-index 1
+
+# window naming nonsense
+set-window-option -g automatic-rename on
+set-window-option -g allow-rename off
+
+# new windows carry over current working directory
+bind c new-window -c '#{pane_current_path}'
+
+# mouse mode
+set-option -g mouse on
+
+# Make tmux work like vi
+set-window-option -g mode-keys vi
+bind h select-pane -L
+bind j select-pane -D
+bind k select-pane -U
+bind l select-pane -R
+
+# Easier window swaps
+bind -n C-left swap-window -t -1
+bind -n C-right swap-window -t +1
+
+# Easier window moves
+bind -n m-left previous-window
+bind -n m-right next-window
+
+# window resizing
+bind -n S-Up resize-pane -U 5
+bind -n S-Down resize-pane -D 5
+bind -n S-Left resize-pane -L 10
+bind -n S-Right resize-pane -R 10
+
+# Option + number to jump to window
+bind -n m-0 select-window -t 0
+bind -n m-1 select-window -t 1
+bind -n m-2 select-window -t 2
+bind -n m-3 select-window -t 3
+bind -n m-4 select-window -t 4
+bind -n m-5 select-window -t 5
+bind -n m-6 select-window -t 6
+bind -n m-7 select-window -t 7
+bind -n m-8 select-window -t 8
+bind -n m-9 select-window -t 9
+
+# Option + l to toggle between sessions
+# bind -n m-l switch-client -l
+bind -n m-s choose-session
+
+
+# split window shortcuts, maintaing the working directory
+bind | split-window -h -c '#{pane_current_path}'
+bind \ split-window -h -c '#{pane_current_path}'
+bind - split-window -v -c '#{pane_current_path}'
+bind _ split-window -v -c '#{pane_current_path}'
+
+bind '"' split-window -c "#{pane_current_path}"
+bind % split-window -h -c "#{pane_current_path}"
 bind c new-window -c "#{pane_current_path}"
 
-set -g default-terminal "tmux"
 
+# Smart pane switching with awareness of vim splits
+is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"'
+bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
+bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
+bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
+bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
+bind -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
+
+# source '/usr/local/lib/python2.7/site-packages/powerline/bindings/tmux/powerline.conf'
+
+bind-key h set -g status
+
+set-option -g status on
+set-option -g status-interval 2
+# set-option -g status-utf8 on
+set-option -g status-justify "centre"
+set-option -g status-left-length 60
+set-option -g status-right-length 90
+# set-option -g status-left "#(~/dotfiles/tmux-powerline/powerline.sh left)"
+# set-option -g status-right "#(~/dotfiles/tmux-powerline/powerline.sh right)"
diff --git a/configs/.vimrc b/configs/.vimrc
index 18abd2c60599..36417a4c1d62 100644
--- a/configs/.vimrc
+++ b/configs/.vimrc
@@ -46,6 +46,9 @@ Plugin 'sickill/vim-monokai'
 Plugin 'altercation/vim-colors-solarized'
 Plugin 'mhartington/oceanic-next'
 
+" Tmux tooling
+Plugin 'christoomey/vim-tmux-navigator'
+
 " Executes shell commands and pipes output into new Vim buffer.
 Plugin 'sjl/clam.vim'