Tải lại cấu hình tmux không khóa liên kết (khóa liên kết được tích lũy)


33

Tôi đã thử nghiệm với các cài đặt liên kết phím tmux khác nhau và tôi nhận thấy những điều sau:

Nếu tôi tải lại cấu hình tmux của mình (từ bên trong tmux), các tổ hợp phím tôi đã tải một lần sẽ vẫn được tải. Cách duy nhất (tôi biết) để dọn dẹp điều này là thoát khỏi tất cả các phiên tmux và khởi động lại. Vì vậy, có vẻ như tmux nhớ tất cả các keybindings được tải trước đó và sẽ chỉ loại bỏ chúng khi bắt đầu mới hoặc bằng cách ràng buộc rõ ràng với chúng.

Để tạo lại điều này:

  • mở một thiết bị đầu cuối (A)
  • bắt đầu tmux
  • kiểm tra xem phím bấm có hiển thị đồng hồ không (bấm PREFIX C-t)
  • nhấn PREFIX ?để xem keybinding trong danh sách
  • chỉnh sửa ~/.tmux.conf
  • thêm một liên kết phím ( bind C-t display "Keybinding C-t")
  • tải lại cấu hình tmux ( PREFIX : source-file ~/.tmux.conf)
  • kiểm tra xem keybinding có hoạt động không (bấm PREFIX C-t)
  • nhấn PREFIX ?để xem keybinding mới trong danh sách
  • chỉnh sửa ~/.tmux.conflại
  • loại bỏ các liên kết phím (vì vậy loại bỏ bind C-t display "Keybinding C-t")
  • tải lại cấu hình tmux ( PREFIX : source-file ~/.tmux.conf)
  • kiểm tra xem keybinding có hoạt động không (bấm PREFIX C-t), nó vẫn hiển thị "Keybinding Ct"
  • nhấn PREFIX ?để thấy rằng keybinding mới vẫn còn trong danh sách
  • thoát tmux
  • nhập tmux
  • kiểm tra xem phím bấm gốc có hoạt động trở lại không (bấm PREFIX C-t), bây giờ nó sẽ hiển thị lại đồng hồ
  • nhấn PREFIX ?để thấy rằng keybinding mới đã bị xóa khỏi danh sách

Câu hỏi của tôi: có cách nào để hướng dẫn tmux "quên" tất cả các cấu hình được tải và sau đó tải .tmux.confkhông?

Câu trả lời:


19

Theo tmux(1)trang người đàn ông, unbind-key -alà những gì bạn đang tìm kiếm.

Lưu ý rằng tmuxchạy một máy chủ sẽ chỉ thoát khi tất cả các phiên được đóng và các ràng buộc khóa là trên mỗi máy chủ. Do đó một khi bạn tạo ra một ràng buộc, nó sẽ tồn tại trên tất cả các tách rời của máy khách.

Điều đó nói rằng, đặt unbind-key -aở trên cùng của tệp cấu hình của bạn và trên cấu hình tải lại, nó sẽ làm những gì bạn muốn - hủy liên kết mọi thứ và bắt đầu ràng buộc từ đầu. Hoặc - nếu sửa đổi của bạn nhỏ hơn - chỉ hủy liên kết những gì bạn muốn thay đổi.


Có và tôi đã nói rằng trong câu hỏi của tôi đã. Nhưng thay vì "đặt lại" tất cả các khóa có thể bị ràng buộc theo cách thủ công, tôi muốn tmux khởi động lại bằng "bản rõ" và sau đó tải lại tệp cấu hình.
Niels Bom

@NielsBom kiểm tra câu trả lời được cập nhật xin vui lòng
peterph

Bạn đã đúng, unbind-key -aloại bỏ tất cả các keybindings. Tôi sẽ đánh dấu câu trả lời của bạn là chính xác, nhưng vì lợi ích của những người xem khác, tôi cũng sẽ thêm "hack" mà tôi đã áp dụng để khắc phục sự cố unbind-key -a.
Niels Bom

Xem câu trả lời của tôi cho giải pháp của tôi.
Niels Bom

16

Giải pháp đúng (bởi Peter

Vì vậy, @peterph đã đưa ra câu trả lời đúng, đó là câu trả lời unbind-key -asau: (man tmux)

Nếu -a có mặt, tất cả các ràng buộc chính được loại bỏ.

Một giải pháp khả thi

Vấn đề (đối với tôi) là "tất cả" thực sự có nghĩa là tất cả. Bao gồm các keybindings tmux đi kèm . Nếu bạn thực thi unbind-key -alệnh tmux ngay lập tức thì không còn bất kỳ phím tắt nào nữa, do đó bạn thậm chí không thể vào chế độ lệnh hoặc làm bất cứ điều gì về cơ bản.

Cách khắc phục (khá xấu xí) của tôi cho việc này là như sau:

  • tạo một .tmux.reset.confcái mà loại bỏ tất cả các keybindings và sau đó rebinds tất cả những cái mà tmux có theo mặc định
  • nguồn đặt lại ở đầu của bạn .tmux.conf

My .tmux.conf:

# always load the reset file first
source-file ~/.tmux.reset.conf

My .tmux.reset.conf:

# First remove *all* keybindings
unbind-key -a
# Now reinsert all the regular tmux keys
bind-key C-b send-prefix
bind-key C-o rotate-window
bind-key C-z suspend-client
bind-key Space next-layout
bind-key ! break-pane
bind-key " split-window
bind-key # list-buffers
bind-key $ command-prompt -I #S "rename-session '%%'"
bind-key % split-window -h
bind-key & confirm-before -p "kill-window #W? (y/n)" kill-window
bind-key ' command-prompt -p index "select-window -t ':%%'"
bind-key ( switch-client -p
bind-key ) switch-client -n
bind-key , command-prompt -I #W "rename-window '%%'"
bind-key - delete-buffer
bind-key . command-prompt "move-window -t '%%'"
bind-key 0 select-window -t :0
bind-key 1 select-window -t :1
bind-key 2 select-window -t :2
bind-key 3 select-window -t :3
bind-key 4 select-window -t :4
bind-key 5 select-window -t :5
bind-key 6 select-window -t :6
bind-key 7 select-window -t :7
bind-key 8 select-window -t :8
bind-key 9 select-window -t :9
bind-key : command-prompt
bind-key ; last-pane
bind-key = choose-buffer
bind-key ? list-keys
bind-key D choose-client
bind-key L switch-client -l
bind-key [ copy-mode
bind-key ] paste-buffer
bind-key c new-window
bind-key d detach-client
bind-key f command-prompt "find-window '%%'"
bind-key i display-message
bind-key l last-window
bind-key n next-window
bind-key o select-pane -t :.+
bind-key p previous-window
bind-key q display-panes
bind-key r refresh-client
bind-key s choose-session
bind-key t clock-mode
bind-key w choose-window
bind-key x confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind-key { swap-pane -U
bind-key } swap-pane -D
bind-key ~ show-messages
bind-key PPage copy-mode -u
bind-key -r Up select-pane -U
bind-key -r Down select-pane -D
bind-key -r Left select-pane -L
bind-key -r Right select-pane -R
bind-key -r M-1 select-layout even-horizontal
bind-key -r M-2 select-layout even-vertical
bind-key -r M-3 select-layout main-horizontal
bind-key -r M-4 select-layout main-vertical
bind-key -r M-5 select-layout tiled
bind-key -r M-n next-window -a
bind-key -r M-o rotate-window -D
bind-key -r M-p previous-window -a
bind-key -r M-Up resize-pane -U 5
bind-key -r M-Down resize-pane -D 5
bind-key -r M-Left resize-pane -L 5
bind-key -r M-Right resize-pane -R 5
bind-key -r C-Up resize-pane -U
bind-key -r C-Down resize-pane -D
bind-key -r C-Left resize-pane -L
bind-key -r C-Right resize-pane -R

Có vẻ như điều này có thể đã hoạt động với các bàn phím tmux (theo như tôi có thể nói) nhưng bạn không thể thêm các bàn phím mới.


1
Có khả năng là bạn có thể nhanh chóng tạo ra tương đương với mình .tmux.reset.confbằng cách chạy tmux list-keystrong phiên "sạch".
jw013

2
tmux -f /dev/null -L temp start-server \; list-keyssẽ tạo ra các mặc định một cách hiệu quả (mặc dù bạn cần thêm dấu gạch chéo ngược trước dấu chấm phẩy trong ràng buộc của nó).
Chris Johnsen

@ChrisJohnsen Bạn có thể vui lòng giải thích trên máy chủ khởi động trong một câu trả lời riêng không?
Niels Bom

7

Hiện tại không có cách trực tiếp để đặt lại ràng buộc của khóa về mặc định của nó; việc khởi tạo các ràng buộc mặc định (in key_bindings_init()) được thực hiện một lần khi máy chủ tmux khởi động (in server_start()) lần đầu tiên và không có cơ chế để thiết lập lại một khóa.

Đối với kịch bản mong muốn của bạn, nơi bạn muốn hành động tìm nguồn cung cấp tệp cấu hình của mình để thiết lập lại một ràng buộc mặc định đã bị ghi đè trước đó bởi một ràng buộc tùy chỉnh đã bị xóa khỏi tệp cấu hình của bạn, phương thức bạn nghĩ ra là hợp lý (mặc dù không may là dài dòng) : unbind-key -a, sau đó thiết lập lại tất cả các liên kết mặc định của Viking, sau đó thiết lập các ràng buộc tùy chỉnh của bạn (một số trong đó có thể ghi đè lên một ràng buộc mặc định của Viking).

Các ràng buộc hiện tại của máy chủ có thể được trích xuất bằng list-keyslệnh * ; điều này có thể giúp tạo / duy trì .tmux.reset.conftệp đề xuất của bạn , nhưng bạn cần một cách để trích xuất các ràng buộc mặc định , không phải các ràng buộc hiện tại .

* Có một số tình huống mà đầu ra của list-keyshiện không thể sử dụng trực tiếp: ràng buộc cho dấu chấm phẩy cần dấu chấm phẩy của nó được thoát bằng dấu gạch chéo ngược để ngăn nó được hiểu là dấu tách lệnh tmux và bất kỳ ràng buộc nào có sử dụng dấu ngoặc kép trong một dấu ngoặc đơn dấu ngoặc kép (không có ràng buộc mặc định nào giống như thế này) sẽ xuất hiện dưới dạng dấu ngoặc kép bên trong đôi chữ cái .

Để có được các ràng buộc mặc định, bạn cần một máy chủ tạm thời với cấu hình tối thiểu (nghĩa là không có ràng buộc tùy chỉnh) để bạn có thể nắm bắt list-keysđầu ra của nó . Không có giới hạn về số lượng máy chủ tmux bạn có thể chạy, nhưng mỗi máy chủ phải sử dụng một tên đường dẫn ổ cắm khác nhau; các tùy chọn -L-S tmux có thể được sử dụng để chỉ định tên ổ cắm (trong $TMPDIR/tmux-$UIDhoặc tên đường dẫn ổ cắm đầy đủ. Vì vậy, để nói chuyện với (hoặc bắt đầu) một máy chủ mới trên ổ cắm có tên temp, bạn sẽ sử dụng:

tmux -L temp …

Để đảm bảo nó không sử dụng của bạn .tmux.conf, bạn sử dụng -fđể bảo nó đọc /dev/null(một tệp đặc biệt luôn trống):

tmux -f /dev/null -L temp …

Lưu ý : điều này không ngăn cản việc xử lý /etc/tmux.conf, nếu một tệp như vậy tồn tại; đường dẫn đến tập tin cấu hình hệ thống này, hệ thống cứng được mã hóa cứng và không có tùy chọn nào để bỏ qua nó (thiếu bản vá mã).

Thông thường, bạn cần một new-sessionlệnh để thực sự khởi động máy chủ, nhưng chúng tôi không muốn bất kỳ phiên nào, chỉ cần một máy chủ khởi tạo để truy vấn. Các start-serverlệnh không chỉ rằng: bắt đầu một máy chủ mà không tạo ra bất kỳ phiên.

tmux -f /dev/null -L temp start-server …

Bây giờ, chúng ta chỉ cần nối thêm lệnh Truy vấn của bạn ( list-keystrong trường hợp này):

tmux -f /dev/null -L temp start-server \; list-keys

Lưu ý : dấu chấm phẩy cần được thoát hoặc trích dẫn để ngăn shell xử lý nó như một dấu tách lệnh shell vì chúng ta muốn nó là một dấu tách lệnh tmux .

Vì không có phiên nào để duy trì, máy chủ sẽ tự động thoát sau khi chạy xong list-keyslệnh.

Vì vậy, bạn có thể sử dụng một lệnh như thế này để tạo ra số lượng lớn .tmux.reset.confmà không phải lo lắng về việc tạm thời xóa .tmux.conftệp của mình (để cho bạn chỉ nhìn thấy các ràng buộc mặc định) và không phải tắt bất kỳ máy chủ hiện có nào.


Nếu run-shelllệnh được đồng bộ, bạn có thể nhúng một cuộc gọi như thế này vào tệp cấu hình của mình (bắt vào một tệp tạm thời mà sau đó bạn sẽ xử lý source-file) thay vì có một tệp tĩnh (của bạn .tmux.reset.conf). Điều đó sẽ cho phép bạn luôn sử dụng các ràng buộc mặc định từ phiên bản tmux hiện tại của bạn (các ràng buộc mặc định thỉnh thoảng thay đổi). Than ôi, việc hoàn thành run-shelllệnh hiện không đồng bộ với các lệnh tiếp theo (các lệnh xuất hiện sau run-shelllệnh thường sẽ chạy trước khi quá trình sinh ra bởi run-shellđã có cơ hội kết thúc).


6

Đây là một danh sách tất cả các câu trả lời khác thành tập lệnh bash sẽ tự động tạo .tmux.reset.conftừ các ràng buộc khóa mặc định:

#!/bin/bash
tmux -f /dev/null -L temp start-server \; list-keys | \
  sed -r \
  -e "s/bind-key(\s+)([\"#~\$])(\s+)/bind-key\1\'\2\'\3/g" \
  -e "s/bind-key(\s+)([\'])(\s+)/bind-key\1\"\2\"\3/g" \
  -e "s/bind-key(\s+)([;])(\s+)/bind-key\1\\\\\2\3/g" \
  -e "s/command-prompt -I #([SW])/command-prompt -I \"#\1\"/g" \
  > ~/.tmux.reset.conf

Dòng sedlệnh nhúng sẽ đảm nhiệm việc thoát khỏi các phần khác nhau của đầu ra list-keys. Điều này có thể cần một số điều chỉnh cho các chi tiết cụ thể của hệ thống của bạn.

Trong .tmux.conftệp của bạn chỉ cần hủy liên kết tất cả các khóa và nguồn tệp này trước khi xác định các ràng buộc khóa của riêng bạn:

unbind-key -a
source-file ~/.tmux.reset.conf

4

Xin vui lòng tham khảo các câu trả lời khác ở đây, vì họ làm tốt công việc giải thích tình huống. Tôi có ở đây tmux.reset.conf tương thích tmux 1.8 của tôi , mà tôi đã phải thực hiện một vài sửa đổi sau khi sao chép tmux -f /dev/null -L temp start-server \; list-keysđầu ra. Đặc biệt, một số điều đã được trích dẫn.

# First remove *all* keybindings
unbind-key -a
# Now reinsert all the regular tmux keys
bind-key C-b send-prefix
bind-key C-o rotate-window
bind-key C-z suspend-client
bind-key Space next-layout
bind-key ! break-pane
bind-key '"' split-window
bind-key '#' list-buffers
bind-key '$' command-prompt -I "#S" "rename-session '%%'"
bind-key % split-window -h
bind-key & confirm-before -p "kill-window #W? (y/n)" kill-window
bind-key "'" command-prompt -p index "select-window -t ':%%'"
bind-key ( switch-client -p
bind-key ) switch-client -n
bind-key , command-prompt -I "#W" "rename-window '%%'"
bind-key - delete-buffer
bind-key . command-prompt "move-window -t '%%'"
bind-key 0 select-window -t :0
bind-key 1 select-window -t :1
bind-key 2 select-window -t :2
bind-key 3 select-window -t :3
bind-key 4 select-window -t :4
bind-key 5 select-window -t :5
bind-key 6 select-window -t :6
bind-key 7 select-window -t :7
bind-key 8 select-window -t :8
bind-key 9 select-window -t :9
bind-key : command-prompt
bind-key \; last-pane
bind-key = choose-buffer
bind-key ? list-keys
bind-key D choose-client
bind-key L switch-client -l
bind-key [ copy-mode
bind-key ] paste-buffer
bind-key c new-window
bind-key d detach-client
bind-key f command-prompt "find-window '%%'"
bind-key i display-message
bind-key l last-window
bind-key n next-window
bind-key o select-pane -t :.+
bind-key p previous-window
bind-key q display-panes
bind-key r refresh-client
bind-key s choose-tree
bind-key t clock-mode
bind-key w choose-window
bind-key x confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind-key z resize-pane -Z
bind-key { swap-pane -U
bind-key } swap-pane -D
bind-key '~' show-messages
bind-key PPage copy-mode -u
bind-key -r Up select-pane -U
bind-key -r Down select-pane -D
bind-key -r Left select-pane -L
bind-key -r Right select-pane -R
bind-key M-1 select-layout even-horizontal
bind-key M-2 select-layout even-vertical
bind-key M-3 select-layout main-horizontal
bind-key M-4 select-layout main-vertical
bind-key M-5 select-layout tiled
bind-key M-n next-window -a
bind-key M-o rotate-window -D
bind-key M-p previous-window -a
bind-key -r M-Up resize-pane -U 5
bind-key -r M-Down resize-pane -D 5
bind-key -r M-Left resize-pane -L 5
bind-key -r M-Right resize-pane -R 5
bind-key -r C-Up resize-pane -U
bind-key -r C-Down resize-pane -D
bind-key -r C-Left resize-pane -L
bind-key -r C-Right resize-pane -R

4

Tôi đã hỏi ngược dòng họ dường như không muốn sửa nó (trừ khi có ai đó nộp PR).

Đây là lối thoát thủ công của tôi tmux list-keys, có được thông qua một phiên bản máy chủ mới với

tmux -f /dev/null -L temp start-server \; list-keys

(nhờ câu trả lời trước)

## See https://github.com/tmux/tmux/issues/729: How to reset key bindings to default? #729

bind-key    -T prefix C-b              send-prefix
bind-key    -T prefix C-o              rotate-window
bind-key    -T prefix C-z              suspend-client
bind-key    -T prefix Space            next-layout
bind-key    -T prefix !                break-pane
bind-key    -T prefix '"'                split-window
bind-key    -T prefix '#'                list-buffers
bind-key    -T prefix '$'                command-prompt -I '#'S "rename-session '%%'"
bind-key    -T prefix %                split-window -h
bind-key    -T prefix &                confirm-before -p "kill-window #W? (y/n)" kill-window
bind-key    -T prefix "'"                command-prompt -p index "select-window -t ':%%'"
bind-key    -T prefix (                switch-client -p
bind-key    -T prefix )                switch-client -n
bind-key    -T prefix ,                command-prompt -I '#W' "rename-window '%%'"
bind-key    -T prefix -                delete-buffer
bind-key    -T prefix .                command-prompt "move-window -t '%%'"
bind-key    -T prefix 0                select-window -t :=0
bind-key    -T prefix 1                select-window -t :=1
bind-key    -T prefix 2                select-window -t :=2
bind-key    -T prefix 3                select-window -t :=3
bind-key    -T prefix 4                select-window -t :=4
bind-key    -T prefix 5                select-window -t :=5
bind-key    -T prefix 6                select-window -t :=6
bind-key    -T prefix 7                select-window -t :=7
bind-key    -T prefix 8                select-window -t :=8
bind-key    -T prefix 9                select-window -t :=9
bind-key    -T prefix ':'                command-prompt
bind-key    -T prefix \;                last-pane
bind-key    -T prefix =                choose-buffer
bind-key    -T prefix ?                list-keys
bind-key    -T prefix D                choose-client
bind-key    -T prefix L                switch-client -l
bind-key    -T prefix M                select-pane -M
bind-key    -T prefix [                copy-mode
bind-key    -T prefix ]                paste-buffer
bind-key    -T prefix c                new-window
bind-key    -T prefix d                detach-client
bind-key    -T prefix f                command-prompt "find-window '%%'"
bind-key    -T prefix i                display-message
bind-key    -T prefix l                last-window
bind-key    -T prefix m                select-pane -m
bind-key    -T prefix n                next-window
bind-key    -T prefix o                select-pane -t :.+
bind-key    -T prefix p                previous-window
bind-key    -T prefix q                display-panes
bind-key    -T prefix r                refresh-client
bind-key    -T prefix s                choose-tree
bind-key    -T prefix t                clock-mode
bind-key    -T prefix w                choose-window
bind-key    -T prefix x                confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind-key    -T prefix z                resize-pane -Z
bind-key    -T prefix {                swap-pane -U
bind-key    -T prefix }                swap-pane -D
bind-key    -T prefix '~'                show-messages
bind-key    -T prefix PPage            copy-mode -u
bind-key -r -T prefix Up               select-pane -U
bind-key -r -T prefix Down             select-pane -D
bind-key -r -T prefix Left             select-pane -L
bind-key -r -T prefix Right            select-pane -R
bind-key    -T prefix M-1              select-layout even-horizontal
bind-key    -T prefix M-2              select-layout even-vertical
bind-key    -T prefix M-3              select-layout main-horizontal
bind-key    -T prefix M-4              select-layout main-vertical
bind-key    -T prefix M-5              select-layout tiled
bind-key    -T prefix M-n              next-window -a
bind-key    -T prefix M-o              rotate-window -D
bind-key    -T prefix M-p              previous-window -a
bind-key -r -T prefix M-Up             resize-pane -U 5
bind-key -r -T prefix M-Down           resize-pane -D 5
bind-key -r -T prefix M-Left           resize-pane -L 5
bind-key -r -T prefix M-Right          resize-pane -R 5
bind-key -r -T prefix C-Up             resize-pane -U
bind-key -r -T prefix C-Down           resize-pane -D
bind-key -r -T prefix C-Left           resize-pane -L
bind-key -r -T prefix C-Right          resize-pane -R
bind-key    -T root   MouseDown1Pane   select-pane -t = \; send-keys -M
bind-key    -T root   MouseDown1Status select-window -t =
bind-key    -T root   MouseDown3Pane   if-shell -F -t = '#{mouse_any_flag}' "select-pane -t=; send-keys -M" "select-pane -mt="
# Someone also was wondering how to fix here: http://tmux-users.narkive.com/dTFVvLMh/is-it-possible-to-have-a-binding-that-brings-back-mouse-behavior
bind-key    -T root   MouseDrag1Pane   if-shell -F -t = '#{mouse_any_flag}' "if -Ft= '#{pane_in_mode}' 'copy-mode -M' 'send-keys -M' " "copy-mode -M"

bind-key    -T root   MouseDrag1Border resize-pane -M
bind-key    -T root   WheelUpPane      if-shell -F -t = '#{mouse_any_flag}' "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -et=' "
bind-key    -T root   WheelUpStatus    previous-window
bind-key    -T root   WheelDownStatus  next-window

Trên đây là trên github để bạn có thể làm:

curl -L https://raw.githubusercontent.com/timotheecour/dinocode/master/tmux_list_keys_escaped.txt > ~/.tmux.reset.conf
unbind-key -a
source-file ~/.tmux.reset.conf

LƯU Ý: Bằng cách nào đó , câu trả lời của Richard Cook vẫn tạo ra các vấn đề thoát.


Chào mừng đến với unix.SE! Chúng tôi thường cảnh giác với các liên kết đơn giản vì vậy tôi đã dán nó trực tiếp vào đây (nhưng vẫn giữ liên kết để tham khảo). Đó là cách ưa thích quanh đây. Liên kết làm chết (tôi biết, đó là github! Nhưng vẫn có thể nó sẽ chết vào một lúc nào đó). Dù sao đó là một câu trả lời tốt (+1). Có lẽ có thể tốt hơn nếu bạn quản lý để khắc phục vấn đề với mã sed của Richard. Đó là một năm tuổi và tmux có thói quen xấu là không tương thích ngược 100%.
hóa dầu

2

Đây là phiên bản chỉnh sửa của câu trả lời của Richard Cook để khắc phục các sự cố thoát trên tmux 2.1

#!/bin/bash
tmux -f /dev/null -L temp start-server \; list-keys | \
    sed -r \
    -e "s/(bind-key.*\s+)([\"#~\$])(\s+)/\1\'\2\'\3/g" \
    -e "s/(bind-key.*\s+)([\'])(\s+)/\1\"\2\"\3/g" \
    -e "s/(bind-key.*\s+)([;])(\s+)/\1\\\\\2\3/g" \
    -e "s/(command-prompt -I )#([SW])/\1\"#\2\"/g" \
    -e "s/(if-shell -F -t = )#([^ ]+)/\1\"#\2\"/g" \
    > ~/.tmux.reset.conf                              

Thêm các dòng sau vào đầu .tmux.conf

unbind-key -a
source-file ~/.tmux.reset.conf
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.