Как мне создать ярлык Delete-Line Keyboard в Xcode 8?Решения Xcode 3 больше не работают - PullRequest
75 голосов
/ 29 апреля 2011

В предыдущих версиях Xcode можно было создать привязку ключа для удаления текущей строки.Были разные решения, и они описаны, например, здесь:

Xcode: горячая клавиша удаления строки

Xcode дубликата / удаление строки

http://bigdiver.wordpress.com/2009/09/11/configure-homeend-key-bidings-on-mac-os-x/

http://www.betadesigns.co.uk/Blog/2010/02/03/custom-xcode-shortcuts/

Все решения включают изменение одного из этих файлов:

~ / Библиотека / Поддержка приложений / Xcode / KeyBindings / *. Pbxkeys
~ / Library / KeyBindings / DefaultKeyBinding.dict
~ / Library / KeyBindings / PBKeyBinding.dict

Хорошим ресурсом для существующих ярлыков в Xcode 4 являетсяhttp://cocoasamurai.blogspot.com/2011/03/xcode-4-keyboard-shortcuts-now.html.Есть много перечисленных в отношении удаления, но ни одного для «удаления строки».

НО, эти решения НЕ работают с Xcode 4.

Обновление : проблема остается такой же, как для Xcode 5.1.1

Обновление : проблема остается такой же, как для Xcode 6.1 GM Seed 2

Обновление : по-прежнему применяется к Xcode версии 7.3 (7D175) с 26 апреля 2016 года

Обновление : шесть лет спустя Xcode 8.3 имеет встроеннуюрешение.См. Ответ ниже.

Ответы [ 13 ]

92 голосов
/ 24 мая 2012

После долгих поисков здесь и там я пришел к следующему решению:

Нажмите и удерживайте кнопку control , а затем нажмите A K K .

(Примечание: секунда K удаляет пустую строку).

На самом деле это комбинация двух команд: Move to Beginning of Paragraph & Delete to End of Paragraph. Вы также можете использовать / установить другие ключи, а также использовать / установить / изменить привязки клавиш для других команд, например. Move to Beginning of Line & Delete to End of Line. Я использовал вышеуказанные (стандартные) привязки клавиш, так как они мне подходили.

Изменить:

Чтобы удалить более одной последовательных строк, сначала нажмите и удерживайте клавишу control , а затем нажмите A (просто чтобы перейти в начало абзаца / строки), затем нажмите и удерживайте K , пока все строки не будут удалены (это будет работать, поскольку курсор остается в начале).

Чтобы упростить задачу (для меня), я установил команду D для Delete to End of Paragraph и home / end перейти к началу / концу абзаца.

59 голосов
/ 01 октября 2012

Понял!Это работает в XCode 4.3–4.5 и не требует дополнительных приложений и является специфичным для XCode.

Это решение в основном совпадает с командой Duplicate Line, описанной здесь :

Редактироватьфайл plist

Он находится в /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

Обратите внимание, что:

  • В связанном ответе предлагается использовать для этого XCode, но я обнаружил, что это приводит к сбою XCode
  • , этот путь предназначен для Lion - он может отличаться для других версий ОС
  • . Возможно, вам придется sudo или изменить разрешения для редактирования.этот файл
  • закрыть XCode перед редактированием

Добавить новый <dict> элемент

Добавить этот текст просто выше закрытия <dict> внизуэтот файл

    <key>Custom</key>
    <dict>
      <key>Delete Current Line In One Hit</key>
      <string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string> 
    </dict>

Обратите внимание:

  • Это внутри существующего <dict>, поэтому после этого

Сохраните это и откройте XCode

Добавьте новую привязку ключа в XCode

См. Скриншоты для этого в связанном ответе или сделайте это:

  1. Открыть настройки XCode
  2. Выбрать привязки клавиш
  3. Нажмите Все
  4. В поле SEarch введите «Удалить» ипоиск «Удалить текущую строку одним ударом»
  5. Добавить новую привязку.

Это должно быть сделано только для одного предупреждения.Я никогда не мог получить XCode для сохранить новое связывание.Та же проблема описана здесь , хотя мой обходной путь имел небольшое отклонение:

  1. Создайте дубликаты привязок по умолчанию (нажмите кнопку + в левом нижнем углу окна «Привязки» исоздать дубликат)
  2. Установить новую привязку в дубликате
  3. Закрыть диалоговое окно настроек (это вариант!)
  4. Снова открыть настройки и создать новый дубликат старойпродублируйте и удалите старую копию.

Что за штука, а?Но это работает.Теперь у меня есть Ctrl + D для удаления всей текущей строки в XCode 4.3 на Lion.

54 голосов
/ 10 мая 2017

Похоже, Xcode 8.3 наконец добавил команду Удалить строку :)

По умолчанию ей не назначены сочетания клавиш, поэтому вам нужно будет добавитьВы сами:

  1. Открыть Xcode > Предпочтения > Назначения клавиш
  2. Поиск Delete Line
  3. Добавление сочетания клавиш в столбец Key

Xcode Key Bindings

16 голосов
/ 24 августа 2017

Я нашел временный обходной путь для Xcode 9 .

Откройте Xcode / Content / Frameworks / IDEKit.framework / Resources / IDETextK‌ eyBindingSet.plist и добавьте строки ниже.

Он имитирует действие, которое происходит в Xcode 8 с ограниченной поддержкой. Он может удалить только одну строку, но я как-то доволен. Я надеюсь, что это будет исправлено в ближайшее время.

<key>Customized</key>
<dict>
    <key>Delete Line</key>
    <string>moveToBeginningOfLine:, deleteToEndOfLine:, moveDown:, deleteBackward:</string>
</dict>

После перезапуска XCode, вы можете увидеть обычный элемент в Key Bindings, как показано ниже.

enter image description here

Свяжи и используй!

Edit) Я думаю, что ниже один лучше, чем оригинальный.

<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>
13 голосов
/ 11 ноября 2014

Я использую BetterTouchTool , это довольно круто:

enter image description here

9 голосов
/ 27 ноября 2014

Rhubarb ответ правильный и работает, но с одной стороны, в plist файле есть более простая команда. Следуйте всем инструкциям Ревень но

вместо

<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>

используйте ниже

<string>selectLine:, delete:</string>

Это более понятно и исключает любую возможность неисправности.

Я хочу написать это как комментарий, но моя «репутация» не позволяет мне это делать.

6 голосов
/ 20 марта 2017

попробуйте это:

  1. Первое открытие Xcode-> Настройки

  2. Выбрать Связывание ключей

  3. поиск Удалить абзац

  4. Изменить Удалить абзац на ваш ярлык

enter image description here

2 голосов
/ 21 сентября 2012

Если вы пользователь Keyboard Maestro, просто создайте макрос, который выполняет следующие действия:

  • Команда Стрелка влево
  • Стрелка вниз Shift
  • Удалить

Я назначил его на Command-D и сделал его доступным только в Xcode.

1 голос
/ 28 мая 2015

Простое решение для XCode 5 и 6:

Установите alcatraz: http://alcatraz.io/, затем используйте его для установки плагина " XCodePlus delete line ":

Window > Package manager

Есть множество других замечательных плагинов .

1 голос
/ 06 июня 2011

кажется, что этого нельзя сделать сейчас ... не стесняйтесь поправлять меня, если я ошибаюсь ... но вот мое новое решение ...

перейдите в настройки xcode, затем на вкладку «Привязки клавиш». продублируйте набор по умолчанию, так что вы не будете злиться на меня, когда предложение, которое я сделаю, нарушит то, что вы будете использовать.

найдите 2 клавиши, которые находятся рядом и не используются ни для каких команд, которые вы используете ... ";", "'" возможно. (Я не использую команду n для нового файла, поэтому я выбрал n, m)

установите первый ключ на «Перейти к разметке строки», а второй ключ на «Удалить до конца строки»

затем используйте эту последовательность для удаления строки ...

Альтернатива будет установить что-то для выбора строки, а затем просто использовать удаление.

...