0%

Linux下prezto和tmux配置

记录下prezto和tmux的安装配置,tmux基于2.8版本

prezto

安装
1
2
3
4
5
6
7
8
$zsh

$git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

$setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 新增tmux模块
$sed -i "s/ 'prompt'/ 'prompt' \\\\\n 'tmux'\n/g" /root/.zpreztorc

# 开机启动tmux,remote为远程登陆时才启动tmux
$sed -i "s/# zstyle ':prezto:module:tmux:auto-start' remote 'yes'/zstyle ':prezto:module:tmux:auto-start' remote 'yes'/g" /root/.zpreztorc

# 命令行使用vi模式
$sed -i "s/zstyle ':prezto:module:editor' key-bindings 'emacs'/zstyle ':prezto:module:editor' key-bindings 'vi'/g" /root/.zpreztorc

# prezto下ctrl+r生效

$vim ~/.zpreztorc

zstyle ':prezto:load' pmodule \
'environment' \
'terminal' \
'editor' \
'history' \
'directory' \
'spectrum' \
'utility' \
'completion' \
'prompt' \
'history-substring-search' \ #增加history-substring-search
'tmux'
# .zshrc中新增一行
$vim ~/.zshrc
bindkey "^R" history-incremental-search-backward

tmux

配置

prezto中设置过启动tmux,这里只需要配置下就可以了。

1
2
# 安装xclip支持复制到系统剪贴板
apt install xclip

打开~/.tmux.conf写入以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#set -g prefix C-b  # Some people like set leader key to Crtl_a, but I don't like it!
#unbind C-b

# Split windows
bind \ split-window -h
bind - split-window -v

set-window-option -g mode-keys vi
set -g status-keys vi
bind-key -T copy-mode-vi 'v' send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'

set -g base-index 1 # window index from 1, not zero
set -s escape-time 0

bind r source-file ~/.tmux.conf \; display "Reloaded!"
bind-key / command-prompt "split-window -h 'exec man %%'"

set-option -g allow-rename off # prevent system from renaming our window


set -g default-terminal "screen-256color"

set -g status-justify left
set -g status-interval 1
set -g status-position top
set -g status-bg colour234
set -g status-fg colour137
set -g status-attr dim
set -g status-left ''
# status右边显示当前时间
set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m #[fg=colour233,bg=colour245,bold] %H:%M:%S '
set -g status-right-length 50
set -g status-left-length 20

# 设置windows菜单颜色 Prefix+w
setw -g clock-mode-colour colour135
setw -g mode-attr bold
setw -g mode-fg colour15
setw -g mode-bg colour238

# pane border
set -g pane-border-bg colour235
set -g pane-border-fg colour238
set -g pane-active-border-bg colour236
set -g pane-active-border-fg colour15


# 设置status面板当前windows颜色
setw -g window-status-current-fg colour81
setw -g window-status-current-bg colour238
setw -g window-status-current-attr bold
setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F '

# 设置status非活跃windows颜色
setw -g window-status-fg colour138
setw -g window-status-bg colour235
setw -g window-status-attr none
setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F '

setw -g window-status-bell-attr bold
setw -g window-status-bell-fg colour255
setw -g window-status-bell-bg colour1

# 设置message字体颜色
set -g message-attr bold
#set -g message-fg colour232
set -g message-fg colour15
set -g message-bg colour236

# 解决xshell下tmux的分屏resize问题
bind -r ^k resizep -U 10 # upward (prefix Ctrl+k)
bind -r ^j resizep -D 10 # downward (prefix Ctrl+j)
bind -r ^h resizep -L 10 # to the left (prefix Ctrl+h)
bind -r ^l resizep -R 10 # to the right (prefix Ctrl+l)