Mac OS X Terminali: “seçeneği geriye doğru silmek” için harita seçeneği + sil


232

Tercihler -> Ayarlar -> Klavye'den eşleştirmeyi denedim, ancak "tuş" birleşik giriş kutusunda yalnızca "ileri silme" var ancak "silme" yok. Diğer yandan klavyemde sadece "sil" ve "ileri silme" yok!

Tercihler dışında bunu yapmanın başka bir yolu var mı?


"Kelimeyi geriye doğru sil" ile geri tuşu mu demek istediniz? Silme tuşu olan herhangi bir Apple klavyesinin farkında değilim.
Sören Kuklau

"Kelimeyi geriye doğru sil" ile tam olarak bunu söylüyorum - imleçten geriye doğru tüm kelimeyi silmek için. :) Son Macbook'un "sil" etiketli bir anahtarı var, ancak geri tuşu gibi davranıyor.
ibz

aynı sorunla karşı karşıyayım. klavyenin geriye doğru silinmesi vardır, ancak Terminal.app içinde ciltleme olarak kullanılamaz.
knoopx

Benim için sorunuz milyonlarca upvote'u hak ediyor. Bana çok yardımcı oldu. Daha önce Ubuntu'ydum. Bu, Mac OS'de de hayatımı kolaylaştırdı. Teşekkürler.
doptimusprime

Yanıtlar:


424

Seçenek anahtarını meta anahtar olarak etkinleştir

  1. Git Terminal> Preferences> Profiles>Keyboard
  2. Kontrol edin Use option key as meta key.

görüntü

23 Ekim 2018'de yakalanan macOS High Sierra 10.13.6'da.

Seçenek anahtarını meta anahtar olarak değiştirmek için pencerenin resmi

notlar

Birçok uygulama (bash ve tcsh dahil) Meta-Delete komutunu "geriye silme sözcüğü" olarak kabul eder.


32
Terminal tercihleri> ayarlar> klavye altında, hemen altta.
Jon

16
Bu neden varsayılan değil ?!
Ross Hambrick

8
Yosemite'de, bu ayar şimdi Tercihler -> Profiller -> Klavye altındadır. Her profil için değiştirmeniz / ayarlamanız gerektiği anlaşılıyor.
palimpsestor

6
ABD dışındaki klavyelerde, belirli karakterleri almak için genellikle seçenek tuşuna ihtiyaç duyulur (örn. '|' Borusu kabukta oldukça önemlidir). Bu durumda diğer cevaplarda belirtilen <Esc> b ve <Esc> f muhtemelen en iyi çözümdür?
Touko

8
Ne yazık ki, bu, özel semboller almak için seçenek tuşunu kullanması gereken yabancı klavyeli programcılar için karşı üretkendir {, çünkü seçenek tuşu meta anahtarı olarak kullanıldığında bu çalışmaz.
Magne

74

OS X'in terminali, readline desteği içeren bash'yi çalıştırır. Glomek'in tavsiyelerine uyun ve terminale meta anahtar (veya başka bir kullanım Esc) olarak kullanmasını söyleyin ve sonra bir sürü kullanışlı seçeneğiniz var: Ctrl+ wönceki kelimeyi siler (Meta + silindiği gibi), ancak Meta + f ve Meta + b ile kelimeler arasında ileri ve geri, Ctrl+ ave Ctrl+ esatır başına ve sonuna, Ctrl+ kimleçten satır sonuna kadar silme (öldürme) ve daha fazlası.

Küçük bir referans tablosu için http://www.bigsmoke.us/readline/shortcuts adresine bakın .


3
Bu nasıl "kullanışlı"? Sistemin geri kalanı deletekelimeleri silmek için niteleyicilerle birlikte kullanılır.
idrougge

"Satırı sil" i de mümkün mü?
wenbert

1
Readline harika, ama bu OP'ye yardımcı olmuyor. Ctrl + w bir sözcüğü değil (noktalama işaretiyle + boşlukla ayrılmış) bir WORD (boşlukla ayrılmış) siler. İmleç sonundayken cat .git/refs/heads, Ctrl-w sonuçlanır cat. Meta + sonuçlarını silcat .git/refs/
idbrii

@nadafigment, 'a' ve 'e' ne anlama geliyor?
Pacerier

63

Geri dönen bir kelimeyi silme:

Ctr-W.


2
iyi bu okuduktan sonra "ileri kelime silmek" ctrl + k (deneme yanılma yoluyla) olduğunu öğrendim. şimdi tüm bu neden bu kadar az belge var merak ediyorum.
victor n.

8
Ctr-k önden siler, sadece bir kelime değil, değil mi?
Shai

bu benim mac üzerinde çalışır. Ubuntu linux üzerinde de çalışıyor mu?
user391339

1
Ctrl + w bir sözcüğü değil (noktalama işaretiyle + boşlukla ayrılmış) bir WORD (boşlukla ayrılmış) siler. İmleç sonundayken cat .git/refs/heads, Ctrl-w sonuçlanır cat. Meta + sonuçlarını silcat .git/refs/
idbrii

24

Varsayılan olarak, meta geri tuşu çoğu kabukta geriye doğru bir kelime çeker. Escape tuşuna ve sonra geri tuşuna basarsanız, bu hemen hemen her yerde çalışır.


3
Fantastik, ekstra kurulum gerektirmez. Bir kelimeyi ileri veya geri atlamak için de farkettim <Esc> bve <Esc> fçalışıyorum.
joeytwiddle

1
<ALT> + OK daha fazlasını seviyorum. ESC, b veya f tuşlarına sürekli tıklama yapılmasına izin vermez.
Vitali Pom

1
Hareket etmek için <ALT> + OK tuşlarını kullanıyorum, ancak benzer şekilde silmenin bir yolu olmadığını görüyorum. Yukarıda belirtilen CTRL + W yaklaşımı, kelime olmayan karakterlerde <ALT> + OK ile aynı şekilde durmaz, bu nedenle boşluk olana kadar her şeyi siler. <ALT> + OK ile benzer bir sınır algılaması kullanarak silmenin herhangi bir yolu takdir edilecektir
Rene Wooller

18

⌃W(control + W) meta + delete ile aynı şey değildir (meta anahtar olarak kullanım seçeneğini işaretlemediyseniz ESC + delete) meta + delete, boşluk ayırıcı olarak düşünülecek / _sözcük sınırlayıcısı ^Wolarak kabul edilir.

örn. ESC + Bakcspace'i kullanma (imleç sonunda)

rm /dira/dirb/file1

verir

rm /dira/dirb/

aynı anda ^ W verir

rm

Bu nedenle, terminal profilini değiştirirken ^ W yerine \ 033 \ 177 kullanmak daha iyidir. Bu şekilde gerçekten esc'in ne yaptığına eşleme yaparsınız ve boşluk sınırlayıcıya dayalı kelimeyi silmek için ^ W'ye sahip olursunuz.

Bunun nasıl yapıldığına dair bir resim yayınlamak isterdim ama yeni başlayanlar olarak yapamam.

terminal profilini nasıl değiştireceğinizi görmek için bouke yorumuna bakın.


5
Bunu yapmak isteyenler için iterm2, ⌥⌫onaltılı kodlar göndermek için Tercihler> Anahtarlar> Anahtar Eşleme'yi ekleyebilirsiniz 0x1B 0x7F. 🍻
qix

\033\177"Bir kelimenin bir bölümünü silmek" için ne istediğinizi nasıl öğrendiniz ?
adyabatik

aslında Terminal Tercihi iletişim kutusunda istediğiniz tuş sırasına basmanız yeterlidir. Tercihler → Profiller → Klavye sekmesi → + düğmesi daha sonra değiştirici "seçenek" i seçin ve "⌫ sil" tuşuna basın, ardından metin alanını seçin ve kaçış tuşuna basın, ardından ⌫ tuşuna basın ve işlemi tamamlayın. Esc + ⌫ ⌥⌫ ile aynı şeyi yapar
Stephane Gasparini

14

Terminal profilinizde, ⌥⌫ (seçenek + silme) ⌃W (kontrol + W) öğesine bağlanabilir, böylece diğer uygulamalara benzer şekilde çalışır.

Terminal Profili Klavye ayarları


stty'nin çalışması için ^ w ile werase (varsayılan davranış) eşlemesi gerekir. Eşlemelerin nasıl ayarlandığını görmek için komut satırında stty -a kullanın.
natersoz

4

Komut Düzenleme Kısayolları

Ctrl + a - komut satırının başına git

Ctrl + e - komut satırının sonuna git

Ctrl + k - imleçten komut satırının sonuna kadar sil

Ctrl + u - imleçten komut satırının başına kadar sil

Ctrl + w - sözcüğün başlangıcına kadar imleçten silin (yani bir kelimeyi geriye doğru silmek)

Ctrl + y - imleçten sonra silme kısayollarından biri (yukarıdaki gibi) kullanılarak kesilmiş sözcük veya metni yapıştırın

Ctrl + xx - komut satırının başlangıcı ile geçerli imleç konumu arasında geçiş (ve tekrar geri)

Alt + b - bir kelime geri git (veya imlecin üzerinde bulunduğu kelimenin başına git)

Alt + f - bir kelime ileri git (veya imlecin üzerinde bulunduğu kelimenin sonuna git)

Alt + d - imleçten başlayarak sözcüğün sonuna kadar sil (imleç sözcüğün başındaysa tam kelime)

Alt + c - imleçten başlayarak sözcüğün sonuna kadar büyük yaz (imleç sözcüğün başındaysa tam kelime)

Alt + u - imleçten kelimenin sonuna kadar büyük harf yap

Alt + l - imleçten kelimenin sonuna kadar küçük harf yap

Alt + t - geçerli kelimeyi öncekiyle değiştir

Ctrl + f - bir karakter ileri git

Ctrl + b - bir karakter geri git

Ctrl + d - imlecin altındaki karakteri sil

Ctrl + h - imleçten önceki karakteri sil

Ctrl + t - imlecin altındaki karakteri öncekiyle değiştir

Komut Geri Çağırma Kısayolları

Ctrl + r - geçmişi geriye doğru ara

Ctrl + g - geçmiş arama modundan kaç

Ctrl + p - geçmişte önceki komut (yani komut geçmişinde geriye doğru gitme)

Ctrl + n - tarihteki bir sonraki komut (yani komut geçmişinde ileriye doğru yürü) Alt +. - önceki komutun son sözcüğünü kullan

Komut Kontrol Kısayolları

Ctrl + l - ekranı temizle

Ctrl + s - ekrana çıkışı durdurur (uzun süre çalışan ayrıntılı komut için)

Ctrl + q - ekrana çıkışa izin ver (önceden yukarıdaki komut kullanılarak durdurulmuşsa)

Ctrl + c - komutu sonlandır

Ctrl + z - komutu askıya al / durdur

Bash Bang (!) Komutları Bash ayrıca bazı kullanışlı özelliklere sahiptir! bash komutları ile bazı korkak şeyler yapmanıza izin vermek için.

!! - son komutu çalıştır! Blah - 'blah' ile başlayan en son komutu çalıştır (örneğin! Ls)

! blah: p -! blah'ın çalışacağı komutu yazdırın (ayrıca komut geçmişindeki en son komut olarak ekler)

! $ - önceki komutun son sözcüğü (Alt + ile aynı).

! $: p -! $ 'ın yerine geçeceği kelimeyi yazdırın

! * - son kelime hariç önceki komut (örneğin, '_find somefile.txt /' yazarsanız,! * Size '_find somefile.txt' verir)

! : p - ne yazdır! onun yerine geçer


2

İle Natural Text Editing> Keys - Önceden ayarlanmış Profili etkinleştirilmiş. Sadece kelimeyi kaldırabilirsiniz

  • İle geriye alt + delete
  • İle yönlendir fn + alt + delete
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.