OSX: modyfikowanie zaznaczenia tekstu za pomocą ⌘⇧ → i ⌘⇧ ←

10

Wybrałem tekst za pomocą klawiatury, zaczynając od dolnego wiersza i przesuwając w górę ( znak | wskazuje pozycję kursora):

AAA | {BBB CCC

DDD} EEE FFF

utwórz wybór


Teraz chciałbym zmienić zaznaczenie, aby zaczynało się na końcu pierwszego wiersza , tzn. Aby wyglądało tak:

Spodziewany wynik:

AAA BBB CCC | {

DDD} EEE FFF


Mogę zmniejszyć wybór słowo po słowie za pomocą :

manipuluj zaznaczeniem za pomocą strzałek shift-opcja


Ale naturalnym sposobem jest przejście bezpośrednio do końca pierwszej linii. W wielu porządnych edytorach tekstu działa to dobrze (na przykład Sublime Text 2). Zachowują także |widoczność pozycji po zaznaczeniu tekstu.

Domyślne zachowanie aplikacji OSX polega jednak na tym, że ignorują one fakt, że kursor znajduje się na początku zaznaczenia, a przesunięcie go w prawo powinno tam usunąć zaznaczenie. Zamiast tego zawsze rozszerza zaznaczenie od jego końca do końca linii, bez względu na to, gdzie aktualnie znajduje się kursor:

Aktualny rezultat:

AAA {BBB CCC

DDD EEE FFF} |

manipuluj zaznaczeniem za pomocą strzałek Shift


Czy jest jakiś sposób, aby natywne aplikacje OSX zachowywały się w oczekiwany sposób?

Korzystam z systemu OSX Yosemite 10.10.2, ale myślę, że ten problem istniał tak długo, jak pamiętam.

Jakub Roztocil
źródło
Mogę to odtworzyć w 10.10.1 - może zostało to naprawione w wersji beta?
0942v8653
1
Jestem na Yosemite 10.10.2 (teraz też dodam to do pytania). Ale myślę, że zawsze tak było. Korzystam głównie z edytorów kodu z dobrymi możliwościami edycji tekstu, ale chciałbym znaleźć rozwiązanie na poziomie systemu operacyjnego.
Jakub Roztocil
1
Proszę spojrzeć na ten dokument wsparcia Apple, który stwierdza, że ​​będzie to cmd + shift + strzałka w prawo select text between the insertion point and the end of the current line. Jedyną linią w twoim przykładzie, w której zaznaczenie nie obejmuje jeszcze końca linii , jest ostatnia linia. Tak oczekiwane zachowanie w OS X jest rozszerzenie wybór stamtąd, aby nie przeciąć go krótko w linii początku! Wiem, że niektórzy Redaktorzy zachowują się inaczej, ale robią to źle, a nie system!
Asmus
1
@Asmus Po opisie tego (i wielu innych) skrótów klawiaturowych pojawia się mała gwiazdka, ale nie ma na to wytłumaczenia. Masz pojęcie, co to (*)znaczy?
Jakub Roztocil
1
Nie mam pojęcia, co to (*)znaczy, ale prawdopodobnie pozostało z poprzednich wersji dokumentacji. Nieznacznie zaktualizowałem swoją odpowiedź, aby uwzględnić opcję globalnego przypisywania klawiszy, o której wiem, ale niestety jestem prawie pewien, że nie ma sposobu na osiągnięcie tego, czego szukasz. Ponieważ zachowanie nie jest wbudowane, aplikacje nie mogłyby teraz sobie z tym poradzić, nawet gdyby można je było uruchomić.
Asmus

Odpowiedzi:

1

Mac nie używa pozycji kursora, jeśli masz zaznaczony tekst wielokrotny, uważa, że ​​kursor znajduje się na „całym zaznaczonym tekście”.

Możesz zobaczyć to zademonstrowane, jeśli używasz Cmd ⌘ Shift ⇧ zamiast
dodawania do wyboru z Shift ⇧ obejmuje poprzedni wybór.

Nie jest to poprawka, ale może być obejście tego problemu, które przesuwałoby kursor na koniec bieżącego zaznaczenia, jednocześnie odznaczając go, a następnie Cmd ⌘ Shift ⇧ wybierając na początku linii.

Tetsujin
źródło
Co to znaczy? „Wybór wielu tekstów”.
Nicolas Barbulesco
1

Z mojego punktu widzenia nawigacja tekstowa w systemie OS X działa (i powinna działać) w następujący sposób:

  1. Nawiguj po linii (lub dokumencie, tj. Dużych porcjach danych):

    cmd+ klawisze strzałek: przesuwa się o linie (w lewo / w prawo dla linii, w górę / w dół dla całego dokumentu). Przytrzymaj, shiftaby wybrać

  2. Nawiguj po słowie (tj. Małe porcje danych):

    alt+ klawisze strzałek: porusza się po słowie (lewo / prawo). Przytrzymaj, shiftaby wybrać.

Aby więc osiągnąć „oczekiwany wynik”, należy najpierw nacisnąć strzałkę w prawo, aby przejść do końca bieżącego wyboru, a następnie cmd+ shift+, aby wybrać linię prowadzącą do niego.

Gdy już masz wybór:

  1. użycie powyższej altkombinacji klawiszy zwiększy / zmniejszy wybór na podstawie kierunku (zawsze modyfikując punkt końcowy poprzedniego wyboru, zakładając, że nieznacznie przegapiłeś punkt końcowy ). To samo dotyczy dodawania pojedynczych znaków tylko za pomocą Shift + klawisze strzałek.
  2. na cmdwzrost combo w obu kierunkach, zakładając, że jesteś po wybraniu duże fragmenty tekstu tak.

Aktualizacja

Krótko mówiąc: to, czego chcesz, nie jest tak naprawdę możliwe. Jeśli spojrzysz na listę dostępnych powiązań kluczy systemowych, uruchamiając

plutil -convert xml1 /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict -o -|pl|grep -v noop:|ruby -pe '$_.gsub!(/[^ -~\n]/)' | grep -i selection

Przekonasz się, że nawet jeśli możesz przypisać klucze niestandardowe do wszystkich funkcji wyboru, ~/Library/KeyBindings/DefaultKeyBinding.dict nie ma takiej funkcji, która osiąga żądane zachowanie (ponieważ takie zachowanie nie jest wbudowane w system).

Asmus
źródło
Myślę, że Apple Up i Apple Down przechodzą na początek i koniec dokumentu i nie nawigują po stronie.
Nicolas Barbulesco
1
@NicolasBarbulesco masz całkowitą rację, napisałem „dokument” tylko wiersz wcześniej, nie wiem, dlaczego napisałem dalej „strony”. Naprawiono to teraz.
Asmus,