2017-03-16 16 views
5

Tôi đã sử dụng tmux trong iTerm2 trong một thời gian nhưng hiện tại tôi chưa sử dụng tích hợp tmux đi kèm với iTerm2.Iterm2 với tích hợp tmux không sử dụng keybindings từ .tmux.conf

Tôi bắt đầu xem xét việc sử dụng tích hợp tmux vì nó cho phép bạn sử dụng tích hợp vỏ bên trong tmux.

Vấn đề tôi gặp phải là sau khi tôi thực hiện tmux -CC không ràng buộc khóa nào bên trong tác vụ .tmux.conf ... Tôi thậm chí không thể nhận được bất kỳ giá trị mặc định nào hoạt động. Tôi thực sự muốn sử dụng tích hợp tmux nhưng không thể trừ khi tôi có thể nhận được các ràng buộc chính trong .tmux.conf của tôi để làm việc.

Một số kết buộc không hoạt động;

  • Rebound phím prefix để C-s
  • bind-key \ split-window -v -c '#{pane_current_path}'
  • bind-key - split-window -h -c '#{pane_current_path}'

Đây chỉ là một vài ví dụ nhưng về cơ bản không có gì dường như được làm việc ...

.tmux My .conf là

# improve colors 
set-option -g default-terminal "screen-256color" 

# set base Prefix key to ctrl-s 
unbind C-b 
set -g prefix C-s 
bind-key -r C-s send-prefix 

# reload the source config 
bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded" 

# Smart pane switching with awareness of Vim splits. 
# See: https://github.com/christoomey/vim-tmux-navigator 
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ 
    | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" 
bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" 
bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" 
bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" 
bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" 
bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" 

set-option -g status-keys "emacs" 

#change colour of status bar 
set-option -g status-bg '#666666' 
set-option -g status-fg '#aaaaaa' 

# set window split 
bind-key - split-window -v -c '#{pane_current_path}' 
bind-key \ split-window -h -c '#{pane_current_path}' 

# set text in status bar 
set -g status-interval 1 
set -g status-justify centre # center align window list 
set -g status-left-length 50 
set -g status-right-length 140 
set -g status-left '#[fg=green]#H #[fg=black]• #[fg=green,bright]#(uname -r | cut -c 1-6)#[default]' 
set -g status-right '#[fg=green,bg=default,bright]#(tmux-mem-cpu-load -i 1) #[fg=red,dim,bg=default]#(battery -at) #[fg=white,bg=default]%a%l:%M:%S %p#[default] #[fg=blue]%Y-%m-%d' 

# Fine adjustment (1 or 2 cursor cells per bump) 
bind -n S-Left resize-pane -L 2 
bind -n S-Right resize-pane -R 2 
bind -n S-Down resize-pane -D 1 
bind -n S-Up resize-pane -U 1 

# new window opens in same directory 
bind c new-window -c "#{pane_current_path}" 

# set window numbering to start from 1 
set -g base-index 1 
set -g renumber-windows on 

# allow to take a pane and put it into new window 
bind-key b break-pane -d 

# allows ctrl-j to open tree of tmux sessions 
bind-key C-j choose-tree 

# 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" 

# 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" 

# History 
set -g history-limit 10000 

# Mouse mode 
set-option -g mouse on 

# Rename Tab 
set-option -g set-titles on 

# Terminal notifier doesnt work with tmux 
set -g default-command "which reattach-to-user-namespace > /dev/null && reattach-to-user-namespace -l $SHELL || $SHELL -l" 

set-option -sg escape-time 10 
+0

Bản sao có thể có của [iTerm 2 không tôn trọng các ràng buộc khóa được khai báo trong .tmux.conf] (https://stackoverflow.com/questions/26063195/iterm-2-not-honoring-key-bindings-declared-in-tmux -conf) –

Trả lời

1

Sao chép câu trả lời của tôi tại https://stackoverflow.com/a/47171067/4200039 qua:

Có người báo cáo một lỗi tương tự tại iTerm2 Tmux Integration Default Keybindings not working trong năm 2015. Câu trả lời từ các nhà phát triển George Nachman gợi ý rằng keybindings không được hỗ trợ:

Một trong những mục tiêu chính của Tích hợp tmux là bạn sử dụng các phím gõ của iTerm2, không phải của tmux. Nếu có một quy trình làm việc cụ thể mà bạn không thể thực hiện nguyên bản, hãy cho tôi biết - có rất nhiều quyền lực trong khả năng để sửa lại các khóa trong iTerm2 .

Điều này phải được gắn cờ là bản sao của iTerm 2 not honoring key bindings declared in .tmux.conf nhưng tôi không thể gắn cờ cho đến khi nó có câu trả lời được chấp nhận hoặc được bình chọn.

Các vấn đề liên quan