liên kết tiền tố tmux với khóa cmd OS X (hoặc bất kỳ ràng buộc nào khác)


21

Tôi đã quen với iTerm2 (hoặc Terminal.app cho trường hợp này) trên OS X. Nhưng tôi muốn chuyển sang sử dụng tmux (hoặc màn hình, nhưng vấn đề tương tự với cả hai ứng dụng).

Vì vậy, ý tưởng của tôi là có một tab iTerm duy nhất với phiên tmux được mở bằng nhiều tab. Để thực hiện quá trình chuyển đổi, tôi có một tính năng cơ bản tôi cần định cấu hình trên tmux: chuyển đổi tab 'n' bằng cách sử dụng cmd + n (như Firefox, Chrome, iTerm2, v.v.)

Tuy nhiên tôi không thể tìm thấy cách ánh xạ phím cmd trên bàn phím mac. Lần đầu tiên tôi đã cố gắng thực hiện cmd như một khóa tiền tố, nhưng không thành công. Tôi đã thử cài đặt

set-option -g prefix M-a (hoping for Meta-a)

set-option -g prefix ^a (hoping for ^ to work)

nhưng không có gì hoạt động. Điều này có thể không? Tôi thực sự không cần phải liên kết tiền tố với cmd, nhưng tôi muốn có thể thay đổi các tab tmux bằng cmd + n.

Cảm ơn bạn


các yếu tố karabiner có một ràng buộc cụ thể cho tmux pqrs.org/osx/karabiner/complex_modutions/#modifier-keys
Fabrizio Bertoglio

Câu trả lời:


8

Bạn muốn gọi một chuỗi các lần nhấn phím (đầu tiên Ctrl-b, sau đó n từ 0 đến 9).

Đặt cược tốt nhất của bạn là sử dụng một tiện ích phím tắt như Butler hoặc Bàn phím Maestro để làm điều này cho bạn.


Sử dụng quản gia :

Chọn + »Mục thông minh» Tổ hợp phím , định cấu hình phím nóng Cmd-1 . Nhấn Ctrl-B, sau đó 1cho tổ hợp phím . Cấu hình nó chỉ hợp lệ trong Terminal (hoặc iTerm). Nó sẽ cảnh báo bạn rằng các ứng dụng khác có thể không thích nó, nhưng bạn đã biết điều đó rồi.


Sử dụng bàn phím Maestro :

Tạo một nhóm mới ở bên trái chỉ có sẵn trong Terminal (hoặc iTerm).

Thêm một mục mới, được kích hoạt bởi Hot Key Trigger ( Cmd-1) và thêm hai tổ hợp phím vào hành động của nó: Ctrl-B1.


Bạn cũng có thể muốn xem qua chủ đề này - Commandmặc dù không sử dụng và không hoạt động đối với tôi khi sử dụng Terminal.


Từ tài liệu tmux :

Phím bind để ra lệnh. Các khóa có thể được chỉ định có tiền tố với 'C-' hoặc 'ˆ' cho các phím ctrl hoặc 'M-' cho các phím alt (meta). Cờ −r biểu thị phím này có thể lặp lại, xem tùy chọn thời gian lặp lại.

Họ không hỗ trợ khóa bổ trợ thứ ba.


omg thật là một hack tuyệt vời! nó cũng hoạt động sử dụng Bàn phím Maestro vì Butler có vẻ quá mức cần thiết. Cảm ơn bạn!
rubenfonseca

Bàn phím Maestro hoạt động tuyệt vời cho việc này
Sam Selikoff

19

Trong iTerm2, bạn có thể ánh xạ các phím tắt đến mã hex được gửi vào thiết bị đầu cuối. Tùy chọn Goto iTerm2 -> Phím. Trong Phím tắt toàn cầu, nhấp vào + và thêm loại phím tắt mong muốn của bạn như cmd + 1, sẽ được ghi lại. Sau đó chọn "Gửi mã Hex". Trong hộp xuất hiện, nhập mã hex mà bạn muốn gửi đến tmux được phân tách bằng dấu cách. Ctrl-B là 0x02, vì vậy đối với "Ctrl-B 1", nhập "0x02 0x31". Xem ở đây để biết thêm mã hex: http://www.nthelp.com/ascii.htm

Tôi đã ánh xạ Cmd với h, j, k, l để di chuyển giữa các bảng tmux và Cmd với% và "để tạo các phần tách. Có lẽ tôi sẽ làm gì đó tương tự để di chuyển giữa các phần tách vim bằng một phím điều khiển.


Đây chắc chắn là câu trả lời tốt nhất cho những người sử dụng iTerm2. Cảm ơn!
newUserNameHere 22/12/14

1
Vì một số lý do, điều này không hoạt động trên bản dựng iTerm2 3.0.2 của tôi
jasonszhao

Nếu điều này không hoạt động thì có thể là do iTerm2 liên kết khóa cmd với tab chuyển đổi theo mặc định. Công cụ sửa đổi của bạn có thể bị xung đột. Tôi đã phải thay đổi phím tab swith thành tùy chọn để làm cho nó hoạt động trên CMD + n
Surfrdan

2

Các phím tắt đặc biệt có thể được thực hiện với Terminal.app. Tôi mới phát hiện ra vào một ngày khác, nhưng điều này có thể đã có thể xảy ra trước sư tử.

Đi vào Tùy chọn> Cài đặt và nhấp vào tab "Bàn phím". Bây giờ bạn cần thêm một phím tắt mới bằng cách nhấp vào biểu tượng dấu cộng bên dưới hộp. Bây giờ bạn muốn đặt một tổ hợp phím "Gửi chuỗi tới shell."

Ví dụ: Giả sử tôi muốn đặt M-LeftArrow được ánh xạ tới prefix-p(cửa sổ trước).

Key: Left Arrow 
Modifier: Option 
Action: send string to shell

Bây giờ chỉ cần nhập prefix-pvào hộp nhập liệu prefixlà bất cứ thứ gì bạn đã đặt cho tmux (Tôi sử dụng cntrl-a để hộp hiển thị \001p). Lưu ý rằng nếu bạn mắc lỗi, các ký tự xóa sẽ được chèn thay vì thực sự xóa các ký tự, vì vậy hãy nhấn nút "Xóa một ký tự" để di chuyển về phía sau, trong trường hợp bạn gây rối.

Những nhân vật đặc biệt tôi đã thiết lập để làm cho cuộc sống dễ dàng hơn:

M-Left  > Previous Window
M-Right > Next Window
M-Up    > Enter scrolling mode
M-Down  > Next Pane

Bạn cũng có thể sửa đổi cntrl-anything và shift-anything, nhưng hãy nhớ rằng những điều này có thể can thiệp vào $ EDITOR của bạn hoặc các chương trình khác, vì vậy hãy cẩn thận về những chức năng đặc biệt nào có thể bị vô dụng.

Ngoài ra, lưu ý rằng tôi không thể tìm ra cách sao chép chức năng này trong iTerm2.


1

Bạn cũng có thể muốn xem xét tích hợp (nhưng rất thử nghiệm) mà iTerm2 cung cấp với tmux: http://code.google.com.vn/p/iterm2/wiki/TmuxIntegration

Bằng cách đó, khi bạn nhấn Cmd-D để chia màn hình, iTerm2 sẽ chia tab cho bạn. Điều này thật tuyệt, vì phần tách là gốc, vì vậy bạn có thể kéo cạnh ở giữa để điều chỉnh lại độ rộng hoặc bạn có thể chọn một ô bằng cách nhấp. Ditto cho các tab / cửa sổ mới (nhưng các phím tắt hơi khác nhau - nếu không, bạn không có cách nào để thêm các tab không phải là tmux).

Và giống như tmux, nếu bạn tháo ra và gắn lại, mọi thứ sẽ được lưu lại cho bạn.

Có hai sự cẩn thận: * đây là một tính năng rất thử nghiệm và rất dễ vỡ đối với tôi. * bạn sẽ phải tự xây dựng tmux (sử dụng kho lưu trữ ở đâu đó trên liên kết ở trên).

-Chris


Tôi biết đã hai năm rồi, nhưng có ý kiến ​​gì nếu việc này vẫn hoạt động không? Tôi đã làm theo các hướng dẫn tại liên kết của bạn, nhưng cmd+Dchia tách các bảng của iTerm2, không phải của tmux.
Sam Selikoff

1
@SamSelikoff Bạn phải bắt đầu với tmux -CC.
jasonszhao

0

Bạn cũng có thể xem bài đăng trên blog này có các giải thích rất chi tiết về tích hợp tmux / iterm: http://tangledhelix.com/blog/2012/04/11/iterm2-keymaps-for-tmux/


2
Các trang web biến mất và được di chuyển tất cả các thời gian. Ít nhất xin vui lòng tóm tắt nội dung của bài đăng trên blog và cung cấp chi tiết về tiêu đề và tác giả của nó để câu trả lời của bạn không trở nên vô dụng nếu liên kết bị phá vỡ.
David Richerby
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.