Я выделил текст с помощью клавиатуры, начиная с нижней строки и двигаясь вверх ( символ | обозначает позицию курсора):
AAA | {BBB CCC
DDD} EEE FFF
Теперь я хотел бы изменить выделение так, чтобы оно начиналось в конце первой строки , т.е. чтобы оно выглядело так:
Ожидаемый результат:
AAA BBB CCC | {
DDD} EEE FFF
Я могу уменьшить выделение слов ⌥ ⇧ →:
Но естественный способ сделать это ⌘ ⇧ →- прыгнуть прямо в конец первой строки. Во многих приличных текстовых редакторах это прекрасно работает (например, Sublime Text 2). Они также сохраняют |
положение видимым, когда текст выбран между прочим.
Однако поведение приложений OSX по умолчанию заключается в том, что они игнорируют тот факт, что курсор находится в начале выделения, а перемещение его вправо должно удалить выделение. Вместо этого ⌘ ⇧→всегда расширяет выделение от его конца до конца строки, независимо от того, где находится курсор в данный момент:
Фактический результат:
AAA {BBB CCC
DDD EEE FFF} |
Есть ли способ заставить нативные OSX-приложения вести себя ожидаемым образом?
Я на OSX Yosemite 10.10.2, но я думаю, что эта проблема была там, пока я себя помню.
источник
select text between the insertion point and the end of the current line
. Единственная строка в вашем примере, где выделение еще не включает конец строки , это последняя строка. Таким образом, ожидаемое поведение в OS X - расширять выбор оттуда, а не сокращать его в начале строки! Я знаю, что некоторые редакторы ведут себя по-другому, но делают это неправильно, а не система!(*)
значит?(*)
значит, но, вероятно, это осталось от предыдущих версий документации. Я немного обновил свой ответ, включив в него только глобальную привязку клавиш, но, к сожалению, я почти уверен, что нет способа добиться того, что вы ищете. Так как поведение не является встроенным, приложения не будут теперь, как справиться с этим, даже если вы можете вызвать его.Ответы:
Mac не использует позицию курсора, если у вас есть несколько выделенных текстов, он считает, что курсор находится на «весь выделенный текст».
Вы можете увидеть это продемонстрировано, если вы используете Cmd ⌘ Shift ⇧ ← вместо →
добавления в выборку с Shift ⇧ включенным предыдущим выбором.
Не исправление, но может быть обходной путь, при → котором курсор переместится в конец вашего текущего выделения, одновременно отменив выделение, а затем Cmd ⌘ Shift ⇧ ← выбрав его в начале строки.
источник
Итак, как я вижу, текстовая навигация в OS X работает (и, как ожидается, будет работать) следующим образом:
Перейдите по каждой строке (или документу, то есть огромным кускам данных):
cmd+ клавиши со стрелками: перемещение по линиям (влево / вправо для строк, вверх / вниз для всего документа). Удерживайте, shiftчтобы выбрать
Навигация по слову (т. Е. Небольшие порции данных):
alt+ клавиши со стрелками: перемещение по слову (влево / вправо). Удерживайте, shiftчтобы выбрать.
Поэтому для достижения «ожидаемого результата» сначала нужно нажать стрелку вправо, чтобы получить его до конца текущего выбора, а затем cmd+ shift+, ← чтобы выбрать линию, ведущую к нему.
Когда у вас уже есть выбор:
Обновить
Короче говоря: то, что вы хотите, на самом деле не возможно. Если вы посмотрите на список доступных привязок системных клавиш, запустив
Вы увидите, что, хотя вы можете связать пользовательские клавиши со всеми функциями выбора
~/Library/KeyBindings/DefaultKeyBinding.dict
, нет такой функции, которая бы обеспечивала требуемое вами поведение (так как это поведение не встроено в систему).источник