Terminal I'de küçük harf e yazamıyorum


14

Bir Terminal penceresi açar ve "e" harfini (tabii ki tırnak işaretleri olmadan) yazarsam bip sesi çıkarır ve harfi yazmaz. Diğer tüm mektuplar Terminal'de gayet iyi çalışıyor. Büyük E harfi de çalışır. Sadece küçük e harfi bunu yapmaz.

Bilgisayarımdaki diğer tüm uygulamalarda küçük harf e sorunsuz çalışıyor, bu yüzden bir klavye sorunu değil.

Bu geçen hafta bir saatte başladı. Terminal'i işimde çok kullanıyorum ve bu hiç bir zaman sorun olmadı. Yeniden başlattım (düzeltmedi). Terminali sıfırladım (düzeltmedim).

Bunun başladığı tarihi tam olarak bilmediğim için, herhangi bir değişiklik yapıp yapmadığım veya yazılım yüklediğimden emin değilim. Son zamanlarda yüklediğim her şeyi kaldırmaya çalışıyorum.

FYI 3. taraf iTerm2 kullanmaya çalıştım ve aynı şeyi yapıyor.

AYRICA - daha düşük bir e ile yapıştırırsam, aynı şeyi yapar - almaz. Sanırım bazı terminal bash yapılandırma sorunu olmalı.

Aslında, aşağıdaki duyguyu kopyaladım ve Terminal'e yapıştırdım. Ne görünüyor? sns ve iki bip sesi duyabilirsiniz.

Ayrıca - belirsiz olması durumunda - bu, MBP'deki yerleşik klavye ve harici bir klavye ile olur. Buna ve yapıştırma sorununa dayanarak, bunun herhangi bir şekilde fiziksel bir klavye sorunu olduğunu düşünmüyorum.

Özellikler: 2015 MacBook Pro, tamamen güncel OS X


1
Csh veya tcsh gibi başka bir kabuğa giderseniz davranış devam eder mi?
Kent

2
Bu garip ... applescriptspot ışığında arayarak açmayı deneyin ve delay 10ardından return tuşuna basın ve tell application "System Events" to keystroke "e"tam olarak yazıldığı gibi yazın. Oynatma düğmesine basıldığında, 10 saniye bekleyecek ve daha sonra kendi başına e düğmesine basacaktır. Süre dolmadan terminale gidin ve test edin. Bu işe yaramazsa, bilgisayarınızda ciddi bir iç sorununuz var demektir.
ALX

1
cat filnam.txtAranan dosyada filnam.txtbazı ASCII metinleri varsa, ne olur e?
techraf


Bu yalnızca kabukta mı yoksa Terminal'de çalışan herhangi bir programda mı?
agentroadkill

Yanıtlar:


7

Hata ayıklayalım.

  1. Mermileri değiştirin ve tekrar deneyin. (@Kent'e kredi) Terminalde:
    • $(which zsh)
  2. Tüm satırları .bash_profile, .bashrcvb ve yeni terminali sekme / pencere açmak. Bu sorunu çözerse, kabuk ortamına yüklenen bir şey e, bilimin asla açıklayamayacağı nedenlerden dolayı mektubu tüketiyor .
  3. Deneyin catharfi içeren bir dosyayı ing eo görüntüler bile olmayacağını görmek için: (@techraf Kredi)
    • Bir metin düzenleyici açın (terminal değil)
    • Birkaç es içeren bir metin girin ve dosyayı kaydedin ( foo.txt?)
    • Terminalde catdosya:
      • cd /path/to/folder; cat foo.txt
    • Eğer erender olursa , terminal bunu halledebilir, eğer değilse, bu çok garip.
  4. El yazısını deneyin. (@ALX'e kredi)

    • Applescript düzenleyicisini aç
    • Şu içeriklerle Applescript dosyası oluşturun:

      delay 10
      tell application "System Events" to keystroke "e"
    • Komut dosyası dosyasını yürütün ve hızlı bir şekilde terminal penceresine gidin. Birkaç saniye içinde etuşa neredeyse basacak ve umarım terminalinizde görünecektir . Bu, bir giriş / aygıt sürücüsü sorunu olabileceğini gösterecektir (bunun ne olabileceğine dair hiçbir fikrim yok)

Yalan söylemeyeceğim, bu konudan kesinlikle etkileniyorum ve sebebinin ne olduğunu öğrenmek için sabırsızlanıyorum. Donanım değildir, çünkü diğer uygulamalarda çalışır, bu da yazılım anlamına gelir ve mektubu ekodla kimin yutacağını hayal edemiyorum .


1
Bir C kabuğunu denemek daha iyidir, çünkü bash başlangıç ​​dosyalarını okumaz (hatta yapamaz) veya hatta bir tercüman başlatır, örneğin perl üzerinde python yazın ve buraya yazın
user151019

1
Evet, aslında bu konuyla
FASCINATED

"E harfini kimin kodla yutacağını
Allan

4

Ben sadece aynı konuya çalıştırdıktan sonra bu iş parçacığı bulundu.

.inputrc

Ben 2 hatları vardı .inputrc, dikkatsiz cehalet bir anda eklenmiş ile başlayan eves (geçerli bash yapılandırma, ancak geçerli taleb yapılandırma olan). Okuma çizgisi özelleştirmesi için tuş bağlama takma adları olarak yorumlanmış gibi görünüyorlar.

Hatları kaldırmak, .inputrconayladım, sorunumu çözdüm.

Kontrol etmek için ilgili hatırlatıcı için @ user208052 teşekkürler .inputrc.

Kabuğun Readline yapılandırması

Kabuğun bindkomutu Readline yapılandırmasının görüntülenmesine ve değiştirilmesine izin verir. (Bkz help bind. helpOlan mankabuk iç komutları için).

Görünüm bind -p(belki daha az |lessaktarma veya bir dosyaya yönlendirme > binds.txt). Bu "Liste girdi olarak yeniden kullanılabilir bir biçimde işlev ve bağlamaları [s]" .

"c": self-insertASCII aralığındaki her karakter için olduğu gibi girişleri vardır , bu nedenle vidalı yapılandırma self-insertbaşka bir Readline işleviyle değiştirilebilir.

Bazı mücevherleri var; sadece bana C-=( \e=) varsayılan yapılandırmamda olası tamamlamaları yazdırmayı öğretti . Kabuğunuz için Readline'ın mevcut konfigürasyonunu gösteriyor gibi görünüyor ... oldukça kullanışlı ve güçlü. Keşfetmek için iyi.

Uçtan uca test

  1. e İşler
  2. hatalı çizgi yerleştirin .inputrc, yeni kabuk açın

    et completion-map-case on
    set completion-ignore-case on
  3. e görünüşe göre hayır-op

  4. bind -p( | grep -i '"E"') gösterir
    • "E": self-insert,
    • ama hayır "e": self-insert
    • oysa "A": self-insertve "a": self-insertmevcut.

2

Biraz paslıyım, ancak Terminal'e yapıştırma bir GUI programına yapıştırmadan farklı çalışır: her karakter ayrı bir tuş vuruşu olarak gönderilir, panodan uygulama arabelleğine bir not kopyası olarak değil. Dolayısıyla, "e" yeniden eşlenmişse, macun içinde de yeniden eşlenecektir.

Aşağıdaki konumları kontrol edin:

System Preferences > Keyboard > Shortcuts

~/Library/KeyBindings/KeyBindings.dict

$ defaults read com.apple.Automator NSUserKeyEquivalents


Tam olarak ne olup olmadığını kontrol et?
nohillside

İster eanahtar remapped edilmiştir.
zencraft

1
OP'nin bu tür şeylerde çok deneyimli olmadığını varsayarsak: Tam olarak ne aramalılar? Böyle bir eşlemenin bir örneği yardımcı olabilir.
nohillside

1
Klavye Kısayolları için önemli yeniden uygulamalara bakın: solda bir uygulama listesi ve sağda bir kısayol listesi var. Terminal'in uygulama listesinde olmadığından emin olun. Diğer ikisi boş olmalı; KeyBindings.dict varsa veya defaults komutu bir şey döndürürse, daha fazla analiz için buraya gönderin.
49'da zencraft

1

Deneyebileceğiniz başka bir şey, Terminal'i yeni bir pencere açıldığında bir metin düzenleyicisi (emacs, vi, vb.) Açacak şekilde ayarlamaktır. Örneğin, "Kabuk" için Terminal tercihlerinde, bunun gibi Çalıştır komutuna sahip olabilirsiniz /usr/bin/emacs. eTercih bölmesine giremezseniz , o zamana kadar önerilenlerden daha garip bir şey oluyor ...

Yeni Terminal penceresi açıldığında, emacs olacak başlamalı ve basın deneyebilirsiniz evb ben ne olacağını hiçbir fikrim yok, ama yukarıda @Pierce gibi, ben muhtemelen ne olup bittiğini hiç merak ediyorum.


0

Stty ayarını kontrol edin ve 'e'nin yanlışlıkla geri veya benzeri olarak ayarlanmadığından emin olun. Orada bulundum, bitti. Stty bir şey \ e Yapardı .bash * devre dışı bırakmak / yorum önerisi de muhtemelen ortaya çıkarmak olacaktır.


0

Ben bir yazım hatası olması nedeniyle aynı sorunu vardı /etc/inputrc:

et output-meta on

onun yerine

set output-meta on

0

İşin garibi, MacBook Air'de macOS 10.13.6 çalıştırıyor. Bir kullanıcı iyiydi, bash çalışan yönetici kullanıcı terminali 'a' küçük harfini yazmaz, yapıştırma, vb. Kabul etmez. Zsh çalıştırılması iyi olur. Diğer kullanıcılar, iyi. Sanırım bu daha önce olmuştu ve /Users/admin/.inputrc dosyasını ve .bash_profile dosyasını silerek düzeltti. Onları tekrar ekledim ve işe yarıyor. İşin garibi, bu dosyalarda önemli bir şey yok. .inputrc sadece "set completion-ignore-case On" dur ve .bash_profile dosyasında birkaç komut satırı diğer adı vardır. Dürüst olmak gerekirse, başka bir şey olabilir ama şimdilik çalışıyor.

Bu sorunu silmek ve yeniden eklemek zorunda hatırlıyorum gibi görünüyor. Bu dosyalar sorunu en azından tetikleyebilir veya sıfırlayabilir.


-1

Sadece .inputrc dosyasını silin, kök dizinde. (Bu gizli bir dosya).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.