Với tmux trên OSX, làm cách nào tôi có thể thực hiện lệnh + k rõ ràng duyên dáng hơn?


20

Khi tôi sử dụng thiết bị đầu cuối trong OSX, tôi thường xuyên sử dụng + Kđể xóa bộ đệm màn hình và cuộn lại. Đó là sâu trong bộ nhớ cơ.

Tôi đã bắt đầu mày mò với tmux, và một điều hấp dẫn là + Klau toàn bộ màn hình, panes và tất cả. Những gì tôi muốn là nó chỉ ảnh hưởng đến khung tập trung.

Tôi có thể bằng cách nào đó cấu hình hành vi này?

Câu trả lời:


21

Cấu hình iTerm2 để gửi lệnh rõ ràng

Tùy chọn -> Phím -> + (thêm lối tắt toàn cầu mới)

  • Phím tắt: ⌘ + k
  • Hành động: Gửi văn bản
  • giá trị:

rõ ràng

Hoặc định cấu hình iTerm2 để ánh xạ hiệu quả ⌘ + k sang ctrl + l

  • Phím tắt: ⌘ + k
  • Hành động: Gửi mã Hex
  • giá trị:

0x0c

Bằng cách này, bạn sẽ không thấy đèn flash văn bản và lệnh rõ ràng sẽ không làm ô nhiễm lịch sử của bạn.


2
Giải pháp đơn giản và thanh lịch. Cám ơn bạn tôi.
Rafael

Giải pháp đẹp! Bạn đã làm cho trải nghiệm tmux của tôi thú vị hơn nhiều. Cảm ơn bạn :)
Matt Darby

Chỉ cần một cảnh báo, điều này sẽ flash văn bản đến thiết bị đầu cuối
Jay

1
Điều này thật tuyệt, nhưng nó phụ thuộc vào clearlệnh và do đó sẽ không hoạt động trong khi bên trong bảng điều khiển irb hoặc rails.
Robert

17

Bạn có thể sử dụng prefix+ r, sau dấu + K, để vẽ lại cửa sổ tmux.

Nếu bạn có thể phá vỡ thói quen, một ctrl+ bình thường lhoạt động bình thường trên mỗi khung.


3
ctrl + l không giống với cmd + k vì bạn vẫn có thể cuộn lên và xem lịch sử cũ với ctrl + l. Nếu bạn đang theo dõi một bản ghi chẳng hạn, nó sẽ nhanh chóng lấp đầy cuộn của bạn trở lại cmd + k là vô giá vì bạn biết chính xác khi nào bạn rời đi. ctrl + l sẽ không làm điều này cho bạn.
Bjorn

@BjornTipling + K là một tính năng của trình giả lập thiết bị đầu cuối và sẽ không hoạt động bên trong tmux ... liên kết này được thiết kế để xóa stdout tĩnh, không phải là tmux và các chương trình khác như vim / emacs / weechat / mutt, đang được hiển thị.
demure

1
+1 để phá vỡ thói quen, tôi không thể ngừng thực hiện nó cho đến hôm nay. Điều tốt nhất là gõ clearthay vì tôi đoán
zanona

3

Bạn có thể thêm các dòng sau vào .tmux.conf:

# clear the current pane
bind -n C-k send-keys C-l \; clear-history

Sau đó tải lại cấu hình tmux của bạn. Bây giờ bạn có thể sử dụng khóa liên kết của mình +k(ví dụ: Ctrl+ b, k) để xóa khung hiện tại.

Tôi không biết cú pháp cho OSX nhưng tôi đoán bạn có thể dễ dàng điều chỉnh dòng này.


Tôi thấy rằng C-lxóa màn hình và clear-historyxóa bộ đệm cuộn lại. Phần này \;làm gì?
Nathan Long

nó chạy cả @NathanLong
Jay

3

bind -n C-k send-keys -R \; send-keys C-l \; clear-history

Có cái này từ đây

Đạo cụ cho anh. Công việc này đối với tôi giống như Cmd+khoạt động trên trình giả lập thiết bị đầu cuối và hoạt động với tôi trên macOS 10.12.5 với iTerm2.


Hoạt động như một bùa mê, ngay cả khi một lệnh như tail -f ...hoặc máy chủ đang chạy!
Derek
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.