РЕДАКТИРОВАТЬ: 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, перейдите в «Настройки» и перейдите на вкладку «Привязки клавиш». Используйте панель поиска для фильтрации и поиска новых ярлыков. Затем щелкните перед описанием ярлыка, чтобы назначить ему ярлык по своему вкусу. Убедитесь, что ваш ярлык не конфликтует с существующими ярлыками.