Дублирование и удаление строки Xcode 9.x
Вплоть до Xcode 8.0 можно было настроить файл IDETextKeyBindingSet.plist. Однако теперь кажется, что изменение этого файла приводит к тому, что XCode перестает работать нормально (например, клавиши со стрелками перестают работать), и кажется, что создавать собственные сочетания клавиш больше невозможно.
У XCode никогда не было дублирования строк и ярлыков вставки. Ранее их можно было добавить в IDETextKeyBindingSet.plist, добавив в нужные места следующее:
<key>Insert New Line Below</key>
<string>moveToEndOfLine:, insertNewline:</string>
<key>Insert New Line Above</key>
<string>moveUp:, moveToEndOfLine:, insertNewline:</string>
<key>Duplicate Current Line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
<key>Delete Current Line</key>
<string>selectLine:, delete:</string>
<string>selectLine:, delete:</string>
Кто-нибудь знает, как добиться того же в Xcode 8.0 или выше?
Интересно, используют ли разработчики в Apple Xcode? А если они проверят Кару? Или им запрещено делать это по трудовым договорам?
ОБНОВЛЕНИЕ: В Xcode 9.x, похоже, снова работает.
ОБНОВЛЕНИЕ: В Xcode 10.0 он снова сломан.
ОБНОВЛЕНИЕ: В Xcode 10.1 он по-прежнему не работает, а также копирование/вставка частично не работает, то есть это не всегда работает. (Я все еще на Высшей Сьерре)
Ответы
Ответ 1
Подтверждено, все еще работает в Xcode 10.3 на macOS Mojave 10.14.6
открыть /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
Добавьте следующие строки в корневой словарь
<key>Sublime Commands</key>
<dict>
<key>Cut Current Line</key>
<string>selectLine:, cut:</string>
<key>Copy Current Line</key>
<string>selectLine:, copy:</string>
<key>Duplicate Current Line</key>
<string>selectLine:, copy:, moveToBeginningOfLine:, paste:, moveToEndOfLine:</string>
</dict>
- перезапустите Xcode
- зайдите в настройки
Key Bindings
и назначьте любой ярлык для трех новых команд. Просто найдите их key
.
Жаль, что в 21-м веке вам все еще приходится вручную добавлять такие основные ярлыки.
Протест
Шаги должны повторяться после каждого обновления XCode.
Ответ 2
Вышеупомянутый ответ, кажется, сломан в Xcode 9.
Вот еще одно решение, которое я проверил, работает в Xcode 9 GM:
<key>Custom Commands</key>
<dict>
<key>Duplicate Current Line</key>
<string>moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, moveToBeginningOfLine:, yank:</string>
</dict>
Ответ 3
Предыдущий ответ оставил ошибочные пробелы, когда я попробовал. Это работает для меня в Xcode 9:
selectLine:, copy:, moveToBeginningOfLine:, paste:, moveToEndOfLine: