8

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

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

7 ответов7

9

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

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

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

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

4

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

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

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

Таким образом, Ctrl + Shift + A или E, чтобы выбрать линию в зависимости от вашей позиции.

Также:

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

control + shift: янки (из буфера)

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

1

Вы можете создать ~/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.

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

1

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

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

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.

1

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

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

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

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

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

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

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

0

контроль + сдвиг + а е ф

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .