Trong Terminal tôi không thể gõ chữ thường e


14

Nếu tôi mở một cửa sổ Terminal và tôi gõ chữ "e" (không có dấu ngoặc kép) thì nó sẽ phát ra tiếng bíp và sẽ không gõ chữ cái đó. Mỗi chữ cái khác chỉ hoạt động tốt trong Terminal. Uppercase E cũng hoạt động. Chỉ là chữ thường e không có.

Trong mọi ứng dụng khác trên máy tính chữ thường của tôi, e hoạt động không có vấn đề, vì vậy đó không phải là vấn đề bàn phím.

Điều này bắt đầu đôi khi trong tuần trước. Tôi sử dụng Terminal rất nhiều trong công việc của mình và chưa bao giờ đây là vấn đề. Tôi đã khởi động lại (không sửa). Tôi đã thiết lập lại thiết bị đầu cuối (không sửa chữa).

Vì tôi không biết ngày chính xác khi điều này bắt đầu, tôi không chắc liệu tôi có thực hiện bất kỳ thay đổi hoặc cài đặt phần mềm nào không. Tôi đang cố gắng để loại bỏ bất cứ điều gì tôi đã cài đặt gần đây.

FYI Tôi đã thử sử dụng iTerm2 của bên thứ 3 và nó cũng làm điều tương tự.

CSONG - nếu tôi dán thứ gì đó với e thấp hơn, nó cũng làm điều tương tự - sẽ không lấy nó. Nó phải là một số vấn đề cấu hình bash terminal tôi sẽ nghĩ.

Trong thực tế, tôi đã sao chép ý nghĩa sau đây và sau đó tôi dán nó trong Terminal. Cái gì xuất hiện? sns và bạn có thể nghe thấy hai tiếng bíp.

Ngoài ra - trong trường hợp không rõ ràng - điều này xảy ra với bàn phím tích hợp trên MBP cũng như bàn phím ngoài. Dựa vào đó và vấn đề dán, tôi không nghĩ đây là vấn đề bàn phím vật lý theo bất kỳ cách nào.

Thông số kỹ thuật: MacBook Pro 2015, cập nhật đầy đủ OS X


1
Liệu hành vi có tồn tại nếu bạn đi đến một shell khác, như csh hoặc tcsh?
Kent

2
Điều đó thật kỳ lạ ... hãy thử mở applescriptbằng cách tìm kiếm nó dưới ánh đèn sân khấu, và gõ vào delay 10sau đó nhấn return và viết tell application "System Events" to keystroke "e"chính xác như đã viết. Khi chơi được nhấn, nó sẽ đợi 10 giây và sau đó nhấn e. Đi đến thiết bị đầu cuối trước khi hết thời gian và kiểm tra nó. Nếu điều đó không làm việc, hơn là bạn có một vấn đề nội bộ nghiêm trọng với máy tính của bạn.
ALX

1
Điều gì xảy ra nếu bạn cat filnam.txtcó tệp filnam.txtchứa một số văn bản ASCII e?
techraf


Đây chỉ là trong vỏ hoặc trong bất kỳ chương trình chạy trong Terminal?
Agentroadkill

Câu trả lời:


7

Hãy gỡ lỗi nó.

  1. Thay đổi vỏ và thử lại. (Tín dụng cho @Kent) Trong thiết bị đầu cuối:
    • $(which zsh)
  2. Nhận xét tất cả các dòng trong .bash_profile, .bashrcv.v. và mở tab / cửa sổ đầu cuối mới. Nếu điều này giải quyết được vấn đề, một cái gì đó được tải vào môi trường shell đang tiêu thụ bức thư evì những lý do mà khoa học có thể không bao giờ có thể giải thích được.
  3. Hãy thử nhập catmột tệp có chứa chữ cái eđể xem liệu nó có hiển thị hay không: (Tín dụng cho @techraf)
    • Mở trình soạn thảo văn bản (không phải thiết bị đầu cuối)
    • Nhập một số văn bản với một vài egiây và lưu tệp ( foo.txt?)
    • Trong thiết bị đầu cuối, cattập tin:
      • cd /path/to/folder; cat foo.txt
    • Nếu es kết xuất thì thiết bị đầu cuối có thể xử lý nó, nếu không, thì điều này là siêu lạ.
  4. Hãy thử applescript. (Tín dụng cho @ALX)

    • Mở trình soạn thảo Applescript
    • Tạo tệp Applescript với các nội dung sau:

      delay 10
      tell application "System Events" to keystroke "e"
    • Thực hiện tệp tập lệnh và sau đó nhanh chóng điều hướng đến cửa sổ đầu cuối. Trong vài giây, nó hầu như sẽ nhấn ephím và hy vọng sẽ hiển thị trong thiết bị đầu cuối của bạn. Điều này sẽ chỉ ra rằng có thể có sự cố trình điều khiển đầu vào / thiết bị (mặc dù tôi không biết đó có thể là gì)

Tôi sẽ không nói dối, tôi hoàn toàn bị cuốn hút bởi vấn đề này và không thể chờ đợi để tìm hiểu nguyên nhân là gì. Nó không phải là phần cứng bởi vì nó hoạt động trong các ứng dụng khác, điều đó có nghĩa là phần mềm và tôi không thể tưởng tượng ai sẽ nuốt lá thư ebằng mã.


1
Tốt hơn nên thử shell C, ví dụ như tcsh vì nó sẽ không (không thể) đọc các tệp khởi động bash hoặc thậm chí chỉ bắt đầu một trình thông dịch, ví dụ python trên perl và nhập vào đó
user151019

1
Vâng, tôi thực sự bị FASCINATED bởi vấn đề này
Manchineel

"Tôi không thể tưởng tượng ai sẽ nuốt e thư với mã" anh chàng này có thể biết điều gì đó ... upload.wikimedia.org/wikipedia/en/5/5e/Cisforcookie.jpg
Allan

4

Tôi chỉ tìm thấy chủ đề này sau khi chạy vào cùng một vấn đề.

.inputrc

Tôi đã có 2 dòng .inputrc, được thêm vào trong một khoảnh khắc thiếu hiểu biết bất cẩn, bắt đầu bằng es (đó là cấu hình bash hợp lệ, nhưng không phải là cấu hình readline hợp lệ). Chúng dường như đã được hiểu là bí danh keybinding cho tùy chỉnh đường đọc.

Loại bỏ các dòng từ .inputrc, tôi đã xác nhận, giải quyết vấn đề của tôi.

Cảm ơn @ user208052 để nhắc nhở liên quan để kiểm tra .inputrc.

Cấu hình Readline của shell

Lệnh shell bindcho phép xem và sửa đổi cấu hình Readline. (Xem help bind. helpmancho các lệnh shell-nội).

Xem bind -p(có thể dẫn đến ít hơn |lesshoặc chuyển hướng đến một tệp > binds.txt). Nó "liệt kê các chức năng và các ràng buộc trong một hình thức có thể được sử dụng lại làm đầu vào" .

Nó có các mục giống như "c": self-insertcho mọi ký tự trong phạm vi ASCII, do đó, cấu hình được vặn có thể thay thế self-insertbằng một số chức năng Đọc khác.

Nó có một số đá quý; xem nó chỉ dạy tôi rằng C-=( \e=) in các hoàn thành có thể, trong cấu hình mặc định của tôi. Nó dường như hiển thị cấu hình hiện tại hoàn chỉnh của Readline cho trình bao của bạn ... khá hữu ích và mạnh mẽ. Tốt cho khám phá.

Kết thúc để kết thúc bài kiểm tra

  1. e làm
  2. chèn dòng sai vào .inputrc, mở vỏ mới

    et completion-map-case on
    set completion-ignore-case on
  3. e rõ ràng là không có

  4. bind -p( | grep -i '"E"') cho thấy
    • "E": self-insert,
    • nhưng không "e": self-insert
    • trong khi "A": self-insert"a": self-insertcó mặt

2

Tôi hơi khó tính, nhưng việc dán trong Terminal hoạt động khác với dán trong chương trình GUI: mỗi ký tự được gửi dưới dạng một tổ hợp phím riêng biệt, không phải là một bản ghi nhớ từ bảng ghi tạm đến bộ đệm ứng dụng. Vì vậy, nếu "e" đã được ánh xạ lại, nó cũng sẽ được ánh xạ lại trong dán.

Kiểm tra các địa điểm sau:

System Preferences > Keyboard > Shortcuts

~/Library/KeyBindings/KeyBindings.dict

$ defaults read com.apple.Automator NSUserKeyEquivalents


Kiểm tra chính xác những gì?
nohillside

Cho dù echìa khóa đã được ánh xạ lại.
zencraft

1
Giả sử rằng OP không quá kinh nghiệm trong những điều như vậy: chính xác họ nên tìm kiếm gì? Một ví dụ về ánh xạ như vậy có thể hữu ích.
nohillside

1
Đối với Phím tắt, hãy tìm các bản sửa lỗi chính: có danh sách ứng dụng ở bên trái và danh sách phím tắt ở bên phải. Đảm bảo rằng Terminal không có trong danh sách ứng dụng. Hai cái còn lại nên trống rỗng; nếu KeyBindings.dict tồn tại hoặc lệnh mặc định trả về một cái gì đó, hãy đăng nó ở đây để phân tích thêm.
zencraft

1

Một cái gì đó khác mà bạn có thể thử, là đặt Terminal để mở trình soạn thảo văn bản (emacs, vi, v.v.) khi một cửa sổ mới được mở. Ví dụ: trong tùy chọn Terminal cho "Shell", bạn có thể có lệnh Run như /usr/bin/emacs. Nếu bạn không thể nhập evào khung tùy chọn, thì thứ gì đó thậm chí còn lạ hơn những gì được đề xuất cho đến nay đang diễn ra ...

Khi cửa sổ Terminal mới được mở, emacs sẽ bắt đầu và bạn có thể thử nhấn, ev.v. Tôi không biết điều gì sẽ xảy ra, nhưng giống như @Pierce ở trên, tôi tò mò về những gì có thể xảy ra.


0

Kiểm tra cài đặt stty và đảm bảo 'e' không vô tình được đặt làm backspace hoặc tương tự. Đã từng trải qua rồi. Stty gì đó \ e Sẽ làm điều đó Khuyến nghị vô hiệu hóa / nhận xét .bash * cũng có thể sẽ phát hiện ra nó.


0

Tôi gặp vấn đề tương tự do lỗi đánh máy /etc/inputrc:

et output-meta on

thay vì

set output-meta on

0

Điều kỳ lạ là tôi vừa có phiên bản này chạy macOS 10.13.6 trên MacBook Air. Một người dùng vẫn ổn, thiết bị đầu cuối người dùng quản trị đang chạy bash sẽ không chấp nhận chữ cái viết thường 'a'- không gõ, không dán, v.v. Chạy zsh thì sẽ ổn thôi. Những người dùng khác, tốt thôi. Tôi nghĩ điều này đã xảy ra trước đây và đã sửa nó bằng cách xóa tệp /Users/admin/.inputrc và .bash_profile. Tôi đã thêm lại chúng và nó hoạt động. Điều kỳ lạ là không có gì quan trọng trong các tập tin này. .inputrc chỉ là "thiết lập hoàn thành-bỏ qua trường hợp" và có một vài bí danh dòng lệnh trong .bash_profile. Thành thật mà nói một cái gì đó khác có thể lên nhưng làm việc cho bây giờ.

Tôi dường như nhớ phải xóa và thêm lại các tập tin này về vấn đề này. Chà, những tập tin này có thể kích hoạt hoặc thiết lập lại vấn đề ít nhất.


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.