Как выбрать строку в OSX?

8

Я редактирую текст. Громоздким способом выбора линии было бы перейти к началу строки (cmd <-), а затем выделить всю строку до конца (Shift cmd ->). Могу ли я сделать лучше?

Также приветствуются ярлыки для вырезания строки и ее сохранения в буфере. (cmd D) не сохраняет строку в буфере.

Давид Натингга
источник
1
В какой программе вы редактируете текст?
ForeverWintr
Главным образом в Eclipse в тогдашнем терминале, но я надеялся получить общее решение для каждого приложения, если это возможно.
Давид Натингга
на полной клавиатуре в os x home тогда shift-end выберет всю строку, но у вас, вероятно, нет полной клавиатуры. Также в большинстве приложений позиционирование курсора в начале строки и удерживание клавиши Shift при нажатии стрелки вниз работает.
СДЮАНЬ

Ответы:

10

Я всегда использую следующее:

  • cmd - Left arrow чтобы добраться до начала строки
  • shift + cmd + right arrow отметить линию
  • cmd - C(или cmd - X) скопировать (или вырезать) отмеченную строку в буфер обмена

Тогда я могу пойти куда угодно и вставить строку cmd - v.

Но так как MacOS строго привязан к графическому интерфейсу пользователя, использовать его без мыши возможно, но иногда - как в вашем случае - требуется одно нажатие клавиши больше, чем хотелось бы.

heiglandreas
источник
1
Почти вправо: shift + cmd - стрелка вправо, чтобы отметить линию, НЕ shift + cmd - стрелка вниз.
Кевин Ле - Khnle
1
shift + cmd + стрелка вниз отмечает текущую строку, включая символ новой строки, shift + cmd + стрелка вправо отмечает строку, исключая символ новой строки. Итак, мы оба правы;)
Heiglandreas
5

Большинство приложений (Terminal, TextEdit, URL / панель поиска Safari и т. Д.), Которые принимают текстовый ввод, соответствуют стандартным привязкам клавиш (не уверен, что стандарт ... ANSI, ASCII?), Которые включают

control+ a: начало строки

control+ e: конец строки

Итак, control+ shift+, a or eчтобы выбрать линию в зависимости от вашей позиции.

Также:

control+ shift+ k: убить до конца строки

control+ shift+ y: дергать (из буфера)

Полный список можно создать с помощью bindkeyкоманды в терминале, хотя не все из них работают во всех приложениях.

Невин Уильямс
источник
1
Текстовые представления OS X не используют readline, они просто поддерживают многие из тех же комбинаций клавиш, что и readline в режиме emacs. Cu, C- @ и Cw по умолчанию не должны работать в ванильных текстовых представлениях, даже если вы можете определить их в DefaultKeyBinding.dict.
Лри
Я проверил все, прежде чем отправлять ... за исключением того, что я сделал это в командной строке. DOH.
Невин Уильямс
Это хорошо, но я все еще ищу что-то, что работает во всем мире.
Луи Ваверу
2

Вы можете создать ~/Library/KeyBindings/и сохранить список свойств следующим образом DefaultKeyBinding.dict:

{
    "~l" = selectParagraph:;
    "~z" = (selectParagraph:, delete:);
    "~x" = (selectParagraph:, cut:);
    "~c" = (selectParagraph:, copy:);
}

После повторного открытия приложений, например, ⌥L должен выбрать строку в большинстве родных текстовых представлений. Это не работает в Eclipse, Terminal или Xcode. Для получения дополнительной информации см. Статью « Текстовая система какао» или мой веб-сайт .

Другой вариант - использовать KeyRemap4MacBook и сохранить что-то вроде этого как private.xml :

<?xml version="1.0"?>
<root>
<item>
<name>test</name>
<identifier>test</identifier>
<not>TERMINAL</not>
<not>EMACS</not>
<not>VIRTUALMACHINE</not>
<not>ECLIPSE</not>
<autogen>__KeyToKey__ KeyCode::L, VK_OPTION | ModifierFlag::NONE, KeyCode::A, ModifierFlag::CONTROL_L, KeyCode::E, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
<item>
<name>test2</name>
<identifier>test2</identifier>
<only>ECLIPSE</only>
<autogen>__KeyToKey__ KeyCode::L, VK_OPTION | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L | ModifierFlag::SHIFT_L, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
</root>

В большинстве приложений ⌃A перемещается в начало развернутой строки, а ⌘ ← - в начало переносимой строки, но seemA, похоже, не работает в Eclipse.

См. Источник для значений кода ключа и предопределенных настроек .

LRI
источник
1

Я нашел решение , которое , кажется, работает во все Cocoa приложения: есть homeи endключи ведут себя как неяблок машины (перейти в начале / конец строки , а не весь документ).

Файл ~/Library/KeyBindings/DefaultKeyBinding.dictдолжен содержать следующее:

{
    /* home */
    "\UF729"  = "moveToBeginningOfLine:";
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:";

    /* end */
    "\UF72B"  = "moveToEndOfLine:";
    "$\UF72B" = "moveToEndOfLineAndModifySelection:";
}

Если файл или каталог не существует, скопируйте приведенный выше фрагмент кода в ваш ... монтажный щит, откройте терминал и введите следующие две команды:

mkdir ~/Library/KeyBindings
pbpaste > ~/Library/KeyBindings/DefaultKeyBinding.dict

Перезапуск приложения может потребоваться для его работы, как ожидалось.

Луи Ваверу
источник
1

Я удивлен, что никто не упомянул об этом

Shift + CMD + стрелка влево (или стрелка вправо, если вы в начале)

Шарад Дешпанде
источник
Нет, @heiglandreas упомянул (не точно, но он сделал) это в своем ответе. Смотрите вторую пулю.
C0deDaedalus
1

Одним из преимуществ macOS перед (WIN / Linux) является глобальная привязка клавиш в стиле emacs почти в каждом текстовом поле (исключение составляет Microsoft Office для Mac, который досадно переопределяет эти сочетания клавиш ...)

Что касается этого вопроса, я всегда использую, C-aчтобы добраться до начала строки, C-S-eвыбрать до конца строки, а затем «CMD-c», чтобы скопировать.

Если у вас есть строка (которая заканчивается на \ n), которая пересекает много буквальную строку, я обычно делал бы следующее:

1) C-aперейти к началу линии

2) C-nперейти к началу следующей буквальной строки

3) C-bвернуться на один символ

4) C-S-aвыбирать до начала строки

5) CMD-cскопировать контент

Может быть сложным решением, но должно работать в большинстве текстовых полей в macOS.

phye
источник
0

control+ shift+aef

(введите aef , удерживая Control и Shift)

Это дает тот же результат, что и тройной щелчок по текущей строке.

Обратите внимание, что это включает в себя конечный EOL в выборе. Если это не то, что вы хотите, пропустите f .

В качестве бонуса, после f , нажмите несколько раз n, чтобы выбрать несколько строк.

Протестировано в Xcode и TextEdit.

jedwidz
источник