Yanıtlar:
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 CtrlAveCtrlEvi
kullanır 0ve $/Shift4Diğ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 Option←ve Option→davranır bash
ve imleci önceki / sonraki kelimenin başına götürür. Bunun nedeni, bu tuş kombinasyonlarının haritalandırılması Escbve Escb( man bash
daha 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 vi
ile çalışmalarına Option←ve 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 vi
onurlandırılacağınızı CtrlAve CtrlE(bunun sonucunda ve vi
ile uyumlu hale geleceğini ) nasıl yapılandıracağınızı göstereceğim .⌘←⌘→
Harita ⌘←ve ⌘→hiç CtrlAveCtrlE
Terminal'de Tercihler ...> Ayarlar> [aktif profiliniz]> Klavye bölümüne gidin.
Basın +, değiştirici olarak "Sola imleç", "Control-Shift" ve "Metin Gönder:" eylemi seçin. Ardından tuşuna basın CtrlA( \001
metin alanında görünecektir) ve ile onaylayın OK:
(Bu cevabın önceki bir sürümünde "Shift" i değiştirici olarak kullandım. Derhal ⌘shift←bırakmazsanız, önceki Terminal sekmesini gösteren bu ayarın çakıştığını fark ettim ⌘. bunu düzeltir.)
Şimdi "İmleç Sağ" için bir tuş kombinasyonu ekleyin, ancak düğmesine basın CtrlE( \005
metin alanında görünecektir). İle onaylayın OK.
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
:
Run AppleScript
Sağ bölmeye sürükleyin :
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
:
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
:
Terminal> Servisler şimdi şöyle görünüyor:
Onurlandırmak vi
için yapılandırın CtrlAveCtrlE
.bashrc
Favori 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 map
komutları anlatmak vim
yorumlamak ControlEve ControlAolarak $ve 0sırasıyla satırın başına veya sonuna imleci hangi.
Son iki map
komut vim
, imleci option←ve 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)
⌘
kısayol almak için
vi
uçbirimden tamamen farklı bir uygulama olan tüm yabancı bilgilerin dışlanmasıyla iyileştirilebilir .
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.