Tạo iTerm để dịch 'meta-key' theo cách tương tự như trong các HĐH khác


179

Trong bash shell với ràng buộc khóa emacs, bạn có thể sử dụng tổ hợp phím như Mf, Mb để di chuyển một từ tiến hoặc lùi trên dấu nhắc shell tương ứng. Thông thường, khóa meta được ánh xạ tới phím Alt trên Windows và Linux. Tuy nhiên, trong iTerm, tôi không thể tìm cách ánh xạ khóa meta này sang phím Tùy chọn hoặc phím lệnh trên MacBook Pro của mình.

Có vẻ như trong OS X, khóa meta được mặc định ánh xạ thành khóa ESC. Vì vậy, bạn có thể sử dụng ESC-f, ESC-b trên iTerm. Tuy nhiên, khóa ESC rõ ràng là không thực tế để sử dụng. Ngoài ra, iTerm không có tùy chọn cho phép bạn sửa đổi ánh xạ cho khóa meta (Dấu trang> Cấu hình> Cấu hình bàn phím> Toàn cầu> Khóa tùy chọn là ...), cài đặt này dường như không hoạt động.

Do đó, nếu có ai biết giải pháp cho vấn đề này là gì, xin vui lòng cho tôi biết.

Tôi đã nâng cấp lên bản phát hành mới nhất, 0.9.6.1012 và hành vi này vẫn còn tồn tại.

Chỉnh sửa: Một số làm rõ cho câu hỏi của tôi. Ràng buộc khóa mà tôi đang nói đến là cho bash shell, không phải trong emacs. Nó chỉ xảy ra rằng, theo mặc định, bash shell cũng sử dụng cùng ràng buộc khóa như emacs.


Sau khi gặp rắc rối với vấn đề này một thời gian và không thể tìm ra giải pháp. Tôi đã từ bỏ và chuyển sang Terminal ngay bây giờ.
ejel

2
đừng quên rằng iterm2 đã tồn tại và mọi thứ đều ổn trong đó =)
holms

Câu trả lời:


207

Cmd+., Profiles, KeysVà chọn Left option Key acts as: +Esc.

Hoạt động cho tôi trong emacs, mặc dù tôi không chắc liệu nó sẽ có bất kỳ tác dụng không mong muốn nào khác không.


Tôi đã thử Option Key như ... với tất cả các lựa chọn nhưng không có lựa chọn nào phù hợp với tôi trong bash shell. Nó chỉ hiển thị "?" mỗi lần tôi nhấn tổ hợp phím meta.
tinh

2
Có vẻ như ngôn ngữ đầu vào của bạn phải là US để tùy chọn + ESC hoạt động. + ESC không hoạt động với tôi khi tôi chọn phương thức nhập tiếng Nhật / Romaji, nhưng nó bắt đầu hoạt động khi tôi chuyển ngôn ngữ nhập sang Hoa Kỳ
Dominic Cooney

2
Tùy chọn, Hồ sơ, Khóa và chọn Tùy chọn bên trái Khóa hoạt động như: + Esc. Sau đó, bạn sẽ có cả phím tùy chọn bên trái VÀ phím Esc làm khóa meta. Đó là những gì đã xảy ra trong trường hợp của tôi.
cgl

Với iTerm 2, đây dường như là lựa chọn được khuyến nghị.
tinh

4
Đối với bàn phím ngoài của tôi, tôi phải đặt cả hai phím tùy chọn bên trái và bên phải để sử dụng Esc+, mặc dù tôi đang sử dụng phím tùy chọn bên trái, nó vẫn sẽ in các ký tự lạ. Điều này có thể xảy ra vì tôi sử dụng bàn phím Modifiers tùy chọn trong Cài đặt bàn phím máy Mac để thay đổi các phím.
grego

130

Chuyển đến Dấu trang> Quản lý hồ sơ . Sau đó chọn Cấu hình bàn phím> Toàn cầu và chọn Khóa tùy chọn làm Meta . Điều này làm việc cho tôi trong phiên bản 0.9.6.1201.


2
Tôi đã phải thay đổi mục xterm (OS X) chứ không phải toàn cầu, nhưng hiện tại nó đang hoạt động.
Jason Axelson

Tôi không biết tại sao trên máy của mình, cài đặt bị hỏng vào ngày 0.9.6.1201 và một số bản dựng khác tôi đã thử. Tuy nhiên, nó hoạt động với bản dựng 0.9.6 mới nhất và 0.10. Vì vậy, nó không phải là một vấn đề bây giờ.
ejel

11
trong iTerm2, điều này chỉ hoạt động sau khi tôi xác định lại các Phím tắt hồ sơ cho alt+ ->alt+ <-để gửi chuỗi thoát tương ứng + f/ b.
amirnissim

Tôi đã phải mở một phiên lặp mới để nó khởi động
Skurpi

@SridharRatnakumar Hoạt động cho iTerm nữa
Krzysztof Wende

31

Trong thanh Menu Iterm2 => Tùy chọn => Cấu hình chọn tab phím và chọn

phím tùy chọn bên trái đóng vai trò là + Esc

nhập mô tả hình ảnh ở đây

làm việc cho tôi cũng như trong irssi.


Tuyệt vời, điều này cũng hoạt động trong sự kết hợp của iTerm2 + tmux
TheJavaGuy-Ivan Milosavljević

8

Tôi cũng không thể làm cho phím Alt hoạt động nhưng có một cách giải quyết khiến nó ít nhất có chức năng điều hướng từ thông qua các phím con trỏ:

Chuyển sang từ tiếp theo hoặc từ trước trong iTerm bằng Alt / Option + Phím mũi tên trái hoặc phải


2
Đối với backward-delete-word(-DEL) gửi mã hex 0x17, để nhảy đến đầu nhập (⌘- ←) gửi 0x01và để nhảy đến cuối (⌘- →) gửi 0x05.
Lenar Hoyt

5

Tôi sử dụng iTerm2 và đối với tôi, câu trả lời này chỉ giải quyết được một phần vấn đề của tôi:

Cmd+ ,=> Cấu hình => Phím và chọn Tùy chọn bên trái Khóa đóng vai trò là: + Esc .

nhập mô tả hình ảnh ở đây

Ngoài ra, tôi phải truy cập Cmd+ ,=> Profiles => Phím và trong danh sách Ánh xạ khóa tìm cả hai Tổ hợp phím : nhập mô tả hình ảnh ở đâynhập mô tả hình ảnh ở đây, nhấp đúp vào chúng và thay đổi phím tắt của chúng thành sau:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

* Đảm bảo chọn hành động Gửi chuỗi thoát .


Điều này thực sự hữu ích. Rất cảm ơn bạn!
LeOn - Han Li

4

Đi tất cả sự phục sinh zombie ở đây, nhưng vì lợi ích của hậu thế -

Bài này khiến nó hoạt động như bạn mong muốn đối với tôi, đối với Mb và Mf, trong khi vẫn giữ 'Khóa tùy chọn là Meta' để bạn không hy sinh công cụ sửa đổi (cá nhân tôi có ánh xạ vim bằng meta, cá nhân).

Tóm lại, trong Hồ sơ Bàn phím Toàn cầu của bạn, hãy thêm hai ánh xạ mới với cài đặt:

  1. Khóa dưới dạng mã hex, giá trị 62 cho b, 66 cho f ( man ascii)
  2. Công cụ sửa đổi là tùy chọn
  3. Hành động như gửi chuỗi thoát, giá trị b hoặc f

Điều duy nhất tôi vẫn nhớ từ Terminal.app là Opt-Backspacexóa bằng từ. Có những cách giải quyết khác cho điều đó, nhưng tôi chỉ đang cố gắng rèn luyện bản thân để sử dụng Ctrl-w.


Có thể là một tính năng mới kể từ câu trả lời này, nhưng bạn có thể ánh xạ Phím tắt toàn cầu để gửi Ctrl-wkhi Opt-Backspaceđược nhấn.
Steve Buzonas

4

Nó dễ dàng hơn trong iTerm2. Đi đến tùy chọn-> đánh dấu-> bàn phím và chọn Tùy chọn gửi + ESC. Trong iTerm2, bạn có thể định cấu hình các phím tùy chọn bên trái và bên phải một cách riêng biệt, vì vậy hãy nhớ thay đổi cả hai nếu đó là điều bạn muốn. Liên kết cho iTerm2: http://sites.google.com/site/iterm2home/


2

Chuyển đến Dấu trang> Quản lý hồ sơ. Sau đó chọn Cấu hình bàn phím> Toàn cầu và chọn Phím tùy chọn là + ESC.

Hoạt động trong iTerm Build 0.9.5.0611 & Build 0.9.6.20090415


Hừm. Cài đặt dường như bị hỏng trên máy của tôi với hai phiên bản này. Tuy nhiên, 0.9.6.20090928 và 0.10 mới nhất hoạt động như mong đợi.
ejel

2

Tôi cũng tìm thấy một số giải pháp trên stackoverflow, chỉ cần vào cấu hình bàn phím và trong phím Tùy chọn "Toàn cầu" thay đổi là "+ ESC

nó hoạt động hoàn hảo với tôi =) btw một số bản vá iterm tồn tại cũng xem tại đây: http://www.emacswiki.org/emacs/EmacsForMacOS


0

Hãy thử "xuất LANG = C". Tôi không phải là chuyên gia về emacs, nhưng tôi thấy điều này cho phép các emacs trên OS X nhận ra phím Tùy chọn là khóa Meta trong iTerm,


0

Tôi không biết về iTerm, nhưng bạn có thể làm điều này trong Terminal. Hướng dẫn có thể được tìm thấy ở đây:

Emacs trên các ràng buộc phím Mac OS X Leopard


Cảm ơn bạn. Tôi biết rằng tôi có thể làm điều đó trong Terminal. Tôi chỉ muốn đạt được kết quả tương tự trong iTerm. Nhân tiện, những gì tôi đang tìm kiếm là ràng buộc khóa trong bash shell, không phải trong emacs. Nó chỉ xảy ra rằng bash shell cũng sử dụng ràng buộc khóa emacs.
tinh

0

Đây là những gì làm việc cho tôi: Dấu trang> Quản lý hồ sơ> Cấu hình bàn phím> Toàn cầu / xterm> Phím tùy chọn là + Esc. Với điều này, tôi có thể sử dụng Tùy chọn + Enter in Midnight Commander và tên tệp / thư mục hiện được chọn sẽ hiển thị trong chuỗi lệnh. Phím tùy chọn vì Meta không hoạt động với tôi. Bản dựng iTerm của tôi là 0.10.

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.