РЕДАКТИРОВАТЬ: 12 июля 2020 г.
После обновления до Xcode 11.5 моя duplicate lineключевая запись из plistфайла снова исчезла. Пришлось добавить еще раз. Однако привязка клавиш все еще была на месте.
РЕДАКТИРОВАТЬ: 17 сентября 2019 г.
После обновления до Xcode 10.3 моя duplicate lineключевая запись из plistфайла снова исчезла. Пришлось добавить еще раз. Однако привязка клавиш все еще была на месте.
РЕДАКТИРОВАТЬ: 28 мая 2019 г.
После обновления до Xcode 10.2 моя duplicate lineключевая запись из plistфайла снова пропала. Пришлось добавить еще раз. Однако привязка клавиш все еще была на месте.
РЕДАКТИРОВАТЬ: 23 декабря 2018 г.
После обновления до Xcode 10.1 все мои ярлыки снова сломались. Но что-то другое заключалось в том, что после обновления файла plist для дублирования строк мне не нужно было определять свои привязки клавиш, они уже были там. Странный.
РЕДАКТИРОВАТЬ: 14 октября 2018 г.
Xcode 10: кто-то из высокопоставленных сотрудников Apple действительно любит копирование / вставку и следит за тем, чтобы с каждой версией обновления Xcode дублирование строк удалялось из всех установок. Мы, разработчики, были крайне разочарованы этой бессмыслицей, происходящей в Xcode с незапамятных времен, единственной среде IDE без возможности дублирования строк. Я только что обновился до Xcode 10, и, как вы уже догадались, все мои сочетания клавиш удалены вместе с функцией дублирования строк. Однако это поправимо, как и в исходном ответе. Небольшая разница на этот раз в том, что вам понадобится следующая строка:
<key>Duplicate Current Line</key>
<string>selectLine:, copy:, moveToBeginningOfLine:, paste:, moveToEndOfLine:</string>
РЕДАКТИРОВАТЬ: Xcode 9: мне пришлось переделать свои ярлыки, дублирование и удаление строк, но хорошо то, что теперь вы можете снова редактировать IDETextKeyBindingSet.plist. Этот высокопоставленный парень из Apple, должно быть, был в отпуске, когда они выпустили эту версию.
EDIT: Xcode 8: Buggy, вы вообще не можете изменить файл IDETextKeyBindingSet.plist. Xcode сбрасывает его при запуске. Этот высокопоставленный парень из Apple действительно настроен заставить нас использовать копирование / вставку вместо простого дублирования строк, как во всех других IDE.
РЕДАКТИРОВАТЬ: Xcode 7.1 и до сих пор нет ярлыков для дублирования и удаления строк. Это единственная IDE, с которой я когда-либо работал, без таких ярлыков. И я не могу представить жизнь разработчика без этих двух важных ярлыков.
Вот как это можно сделать:
Сначала нам нужно изменить файл plist, который живет внутри пакета Xcode.app (требуется sudo для редактирования)
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
Затем найдите <key>Insertions and Indentations</key>и под <dict>тегом добавьте следующее:
<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>Deletions</key>под <dict>тегом:
<key>Delete Current Line</key>
<string>selectLine:, delete:</string>
<string>selectLine:, delete:</string>

Теперь откройте / перезапустите Xcode, перейдите в «Настройки» и перейдите на вкладку «Привязки клавиш». Используйте панель поиска для фильтрации и поиска новых ярлыков. Затем щелкните перед описанием ярлыка, чтобы назначить ему ярлык по своему вкусу. Убедитесь, что ваш ярлык не конфликтует с существующими ярлыками.
