Mac OS X'in “Option-Arrow” u Windows “Ctrl-Arrow” gibi çalışmasını sağlayın


20

Metin belgelerinde gezinmek için Windows'ta " Ctrl- " komutuna güveniyorum .

Bu kullanışlı tuş birleşimi beni hızlıca bir sonraki kelimenin başlangıcına götürecek . Örneğin, aşağıdaki sıra Ctrl- tuşuna art arda basıldıktan sonra imleç konumuna ne olacağını gösterir ("^" imleci temsil eder):

^The quick brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick brown fox ^jumped over the lazy dog
...

Ve bunun yerine basmaya başlarsam , imleci belgedeki tam olarak aynı noktalara hareket ettirir, sadece diğer yöne gider (bu ideal çünkü imlecin konumu tahmin edilebilir, bu da benim düzenleme):

The quick brown fox ^jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
^The quick brown fox jumped over the lazy dog
...

Mac OS X benzer bir klavye kısayoluna sahiptir ( Option- - " Ctrl" ile " Option" eşleştirdim, böylece alıştığım şekilde aynı işlevselliği elde edebilirim).

Ancak, " Option- Arrow" burada gösterildiği gibi sağ ok tuşunu kullanırken beni geçerli sözcüğün sonuna getiriyor :

^The quick brown fox jumped over the lazy dog
The^ quick brown fox jumped over the lazy dog
The quick^ brown fox jumped over the lazy dog
The quick brown^ fox jumped over the lazy dog
The quick brown fox^ jumped over the lazy dog
...

Ve daha da kötüsü, diğer yöne gitmek sizi ileri gitmekle aynı noktaya getirmez, sizi son kelimenin başlangıcına getirir:

The quick brown fox^ jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
^The quick brown fox jumped over the lazy dog
...

Windows ve Mac arasında sık sık geçiş yapmam gerektiğinden bu benim için son derece sinir bozucu ve çok nadiren geçerli kelimenin sonuna gitmek istiyorum (" Shift" tuşunu basılı tutmadıkça neden bunu isteyeyim ki ?) ). Her zaman bir sonraki kelimenin başına atlamak istiyorum.

Mac sürümünün aynı şekilde çalışmasını sağlamak için bazı uzunluklara gitmeye hazırım (yazılım satın al, bu klavye kısayollarına bağlı özel bir Applescript komutu yaz), bu yüzden öneri arıyorum.

Bunu benim için değiştirecek mevcut araçlar var mı?

"Düzeltmeyi" nasıl önerirsiniz?

Teşekkürler

DÜZENLE

Automator'da "Hizmet" yapabildim ve şu AppleScript'i kullandım:

on run {input, parameters}

    tell application "System Events" to key code 124 using {option down}
    tell application "System Events" to key code 124

end run

Sonra , Sistem Tercihleri'ndeki "Klavye" ayarlarını kullanarak bu Hizmeti " Command- " tuşlarına bağladım .

Ancak, bunun çalışması için parmağımı Commandanahtardan çıkarmak zorundayım .. bu sorta anlamsız yapar. Ayrıca yavaş ve uygulamada görünmüyor (Xcode) çalışmak için en çok ihtiyacım var.

Yanıtlar:


22

Açıkladığınız ⌃ Controlgibi + ok tuşlarını nasıl çalıştırabileceğiniz aşağıda açıklanmıştır. Aşağıdaki özellik listesini içine kopyalayın ~/Library/KeyBindings/DefaultKeyBinding.dict(zaten yoksa dizini oluşturabilirsiniz):

{
    "^\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "^$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");
}

Bu ⌃ Control, bir sonraki sözcüğün başına gitmek için + ok ayarlayacaktır (OS X'in normal gezinmesini üç kez kullanarak: geçerli sözcüğün sonuna, sonraki sözcüğün sonuna, ardından sonraki sözcüğün başına). Ayrıca ⇧ Shift, çalışırken metin seçebilmeniz için birlikte çalışan bir sürüm de ekledim .

Dikkat: Bu sadece Kakao uygulamalarında çalışacaktır, ancak normal ⌥ Option+ ok navigasyonunun da işe yaradığını düşünüyorum. Ayrıca, uygulamalarınızı yeniden başlattığınızdan emin olun!


Whoot! Tam da umduğum gibi ... teşekkür ederim! Deneyeyim, sonra cevabı işaretleyeceğim.
Steve

Çok teşekkürler! Bir cazibe gibi çalıştı. FYI "Key Bindings" vs "KeyBindings" ... "KeyBindings" i kullandım ve işe yaradı. Bir fark yaratıp yaratmadığından emin değilim. Çok kötü Xcode, bunları kendi, daha az güçlü Anahtar Bağlamaları ile geçersiz kılar.
Steve

Hata! Evet, KeyBindings demek istedim! Xcode'lar çok güzel çünkü camelCase alt sözcüklerinde gezinebilirsiniz.
jtbandes

Ben camelCase nav seviyorum. İdeal olarak, Visual Studio'nun Xcode'daki davranışını istiyorum ... oh iyi.
Steve

En azından Xcode'ları özelleştirebilirsiniz. Tercihleri ​​tuş bağlantılarını değiştirme sekmesi vardır.
jtbandes

5

Deneyebileceğiniz şeyler. İhtiyacınız olan işlevi yerine getirip getirmediklerini görmek için bunları test etmedim.

Mac OS X için DoubleCommand adlı tuş komutlarını yeniden eşlemek için ücretsiz, açık kaynaklı bir yardımcı program vardır . Bir çekirdek uzantısıdır, bu yüzden çok düşük bir seviyede çalışır.

DoubleCommand kullanıcılarının check-out yapmanızı tavsiye ettiği başka bir ücretsiz program KeyRemap4MacBook'tur . Bunlardan birini veya diğerini kullanmanız gerekir; ikisi de Mac'inize yüklüyse çakışırlar.


1
Control + [Arrow] ' un Windows'daki gibi çalışmasını sağlamak için OS X 10.11.x üzerinde KeyRemap4MacBook kullanma PC Kullanıcıları'nı buluncaya kadar aşağı kaydırın ve sonra (benim için seçenek altı) "PC Style Control + Yukarı / Aşağı / Sol / Sağ'ı kullanın ". Orada başka çok kullanışlı seçenekler var. Kesinlikle bu cevabı oylama ve bunun üzerine ekstra yüz dolara mal olmadı!
John

1

Can sıkıcı OSX varsayılan eşlemelerinden sonra Komut ve Kontrol anahtarlarımı değiştirdim ve Control + Ok tuşlarının BOL / EOL yerine hareket-kelime ileri, geri kelime geri işlevsellik sağlamasını istedim. Artık Command yerine Control kullandığım için kabul edilen cevap benim için işe yaradı. Ayrıca daha az kullanılan BOL / EOL işlevlerini Option + Ok tuş kombinasyonlarıyla eşledim.

{
    "@\UF702" = ("moveWordBackward:");
    "@$\UF702" = ("moveWordBackwardAndModifySelection:");
    "~\UF702" = ("moveToBeginningOfLine:");
    "~$\UF702" = ("moveToBeginningOfLineAndModifySelection:");
    "@\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "@$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");    
    "~\UF703" = ("moveToEndOfLine:");
    "~$\UF703" = ("moveToEndOfLineAndModifySelection:");
}
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.