Terminal için nasıl ⌘ ← ve ⌘ → ev / son kombo yapmak için çalışırım?


21

Neden fn- - (veya başkaları) Terminal'de bir ev / son yaparlar ama - her yerde çalışırlar?

Dolayısıyla, sadece soru Terminali almak yapmak nasıl olduğunu temizlemek olmaya Command+ ve ev ve sonu için?

Yanıtlar:


21

Olabildiğince uygun bir şekilde Terminal, istediğiniz işlevselliği kolayca sağlayamaz.

Bunun nedeni, Terminal içinde çalışan programların imleci satırın başına / sonuna götürmek için farklı kurallara sahip olmalarıdır, örneğin:

  • bash(ve diğer kabukları) kullanın CtrlAveCtrlE
  • vikullanır 0ve $/Shift4

Diğer programlar diğer tuşları kullanabilir. İmleci satırın başına / sonuna yerleştirmek için evrensel bir tuş kombinasyonu yoktur.

Elbette, Terminal birçok ortak program için bir tuş kombinasyonları listesi tutabilir, neyin çalıştığını kontrol edebilir ve sizin için doğru anahtarları gönderebilir ya da İmleç'i Kabuğun İçinde Başına Taşımak like gibi bir menü öğesi sağlayabilir ve ardından gönderebilir. CtrlAkamera ARKASI. Fakat sanırım Apple mühendisleri, CLI'ye girmeye başlarsanız , kendi kendine özgü ifadelerini bildiğinizi düşünüyorlardı.

Bir yan not olarak, Terminal beklediğiniz gibi davranır Optionve Optiondavranır bashve imleci önceki / sonraki kelimenin başına götürür. Bunun nedeni, bu tuş kombinasyonlarının haritalandırılması Escbve Escb( man bashdaha fazla bilgi için "Hareket için Komutlar" bölümüne bakın ). In vi, örneğin, sadece ikincisi (tür) (bu cevabın sonunda ben nasıl configure göstereceğiz çalışır viile çalışmalarına Optionve Option).

Ancak Automator sayesinde, AppleScript ve bas takma adları alabilirsiniz ve üzerinde çalışabilirsiniz bash(ve muhtemelen diğer kabukları) ve vi.

İlk adım haritalamak ve ve CtrlAyapmaktır CtrlE. İkinci adımda, nasıl vionurlandırılacağınızı CtrlAve CtrlE(bunun sonucunda ve viile uyumlu hale geleceğini ) nasıl yapılandıracağınızı göstereceğim .

Harita ve hiç CtrlAveCtrlE

  1. Terminal'de Tercihler ...> Ayarlar> [aktif profiliniz]> Klavye bölümüne gidin. görüntü tanımını buraya girin

  2. Basın +, değiştirici olarak "Sola imleç", "Control-Shift" ve "Metin Gönder:" eylemi seçin. Ardından tuşuna basın CtrlA( \001metin alanında görünecektir) ve ile onaylayın OK: görüntü tanımını buraya girin

    (Bu cevabın önceki bir sürümünde "Shift" i değiştirici olarak kullandım. Derhal shiftbırakmazsanız, önceki Terminal sekmesini gösteren bu ayarın çakıştığını fark ettim . bunu düzeltir.)

  3. Şimdi "İmleç Sağ" için bir tuş kombinasyonu ekleyin, ancak düğmesine basın CtrlE( \005metin alanında görünecektir). İle onaylayın OK.

  4. Automator'ı açın (örneğin, spaceSpotlight'ı açmak ve Automator yazmak için basın ), Dosya> Yeni'yi seçin ve şunu seçin Service:

    görüntü tanımını buraya girin

  5. Run AppleScriptSağ bölmeye sürükleyin : görüntü tanımını buraya girin

  6. Aşağıdaki betiği yazın:

    on run {input, parameters}
        tell application "System Events"
            tell application process "Terminal"
                key code 123 using {shift down, control down}
            end tell
        end tell
    end run

    ve farklı kaydet Move Cursor to Beginning of Line:

    görüntü tanımını buraya girin

  7. Bu komut dosyasıyla 4. ve 6. adımları tekrarlayın:

    on run {input, parameters}
        tell application "System Events"
            tell application process "Terminal"
                key code 124 using {shift down, control down}
            end tell
        end tell
    end run

    ve farklı kaydet Move Cursor to End of Line:

    görüntü tanımını buraya girin

  8. Terminal> Servisler şimdi şöyle görünüyor:

    görüntü tanımını buraya girin

Onurlandırmak viiçin yapılandırın CtrlAveCtrlE

  1. .bashrcFavori editörünle aç ve şu satırı ekle:

    alias vi='vim -c "map <C-A> 0" -c "map <C-E> $" -c "map <Esc>b B" -c "map <Esc>f E"'

    İlk iki mapkomutları anlatmak vimyorumlamak ControlEve ControlAolarak $ve 0sırasıyla satırın başına veya sonuna imleci hangi.

    Son iki mapkomut vim, imleci optionve tuşlarına beklediğiniz gibi bir seferde bir kelime hareket ettirmenizi söyler Option.

Uyarılar

Sen basın an arasında kısa bir gecikme olduğunu göreceksiniz ya ve imleç aslında hamle an.

Yalnızca CtrlA/ onur duyan programlar için işe yarayacağını aklınızda bulundurun, bu CtrlEnedenle Terminal'de kullandığınız her programın kendine özgü tuş kombinasyonlarını öğrenmek isteyebilirsiniz.

(MacOS Sierra 10.12.4'te test edilmiştir)


3
Ayrıntılı cevap için teşekkürler, Apple'ın bir sonraki yeniden tasarımına bir ev / son düğmesi eklemesi için bir dilekçe var mı :-)
Jackie

Yardım edebildiğime sevindim.
Jaume,

Vay .. bütün bu hilkat garibesi bir kısayol almak için
levesque 20.03 de

Bu iyi bir cevaptır, ancak viuçbirimden tamamen farklı bir uygulama olan tüm yabancı bilgilerin dışlanmasıyla iyileştirilebilir .
axiopisty

1
Bu harika bir numara. Ayrıca "Home" ve "End": "tuş kodu 115" ve "tuş kodu 119" "için tuş kodlarını göndererek AppleScript'i çalıştırmayı
başardım

2

Tabii ki mümkün.

Öncelikle, yapmaları gerektiği gibi davranmasını sağlamak için HOME / END tuşlarını içeren bir Windows klavyeniz varsa, "DoubleCommand" ücretsiz aracını kullanabilirsiniz (satırın başında / sonunda).

İkincisi, özellikle terminal için tercihlere gidin, Klavye, sola dönük bir ok gibi görünen simgeyi / anahtarı düzenleyin, "metin gönder" i seçin ve ctrl + a yazın. Bitti!

Bitiş düğmesi için aynı.

PC klavyeniz yoksa, aynı şeyi diğer tuş kombinasyonları ile de yapabilirsiniz.

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.