Исходя из Eclipse и постоянно использовавшегося для дублирования строк, довольно странно узнать, что Xcode не имеет такой функции. Или нет?
Я знаю, что можно изменить общесистемные сочетания клавиш, но это не то, что мне нужно.
Исходя из Eclipse и постоянно использовавшегося для дублирования строк, довольно странно узнать, что Xcode не имеет такой функции. Или нет?
Я знаю, что можно изменить общесистемные сочетания клавиш, но это не то, что мне нужно.
Весь смысл в том, чтобы НЕ использовать ярлыки _1 _ / _ 2_. У меня такая же проблема с IntelliJ, и возможность просто дублировать строки с помощью Cmd-D
и удалять их с помощью Cmd-Y
- это большая экономия времени.
С тех пор меня это беспокоит. Однако похоже, что кто-то другой нашел решение, которое работает.
Короче говоря, создайте файл ~/Library/KeyBindings/PBKeyBinding.dict
со следующим содержимым и перезапустите Xcode.
{
"^$K" = (
"selectLine:",
"cut:"
);
"^$D" = (
"selectLine:",
"copy:",
"moveToEndOfLine:",
"insertNewline:",
"paste:",
"deleteBackward:"
);
}
Это создаст два ярлыка: Ctrl - Shift - K для удаления текущей строки и Ctrl - Shift - D для дублирования текущей строки. Обратите внимание, что это будет только работать, если вы НЕ используете настраиваемую привязку клавиш, установленную в Xcode. Переключитесь на «XCode Default», и все должно работать. Проверено на XCode 3.2 на Snow Leopard.
Дополнительная информация о привязках клавиш Mac OS X: http://funkworks.blogspot.it/2013/03/republishing-of-wwwerasetotheleftcompos.html
Duplicate
(в Edit -> Duplicate
) всегда отображается серым цветом (и не предназначена для дублирования строки).
- person Blaz; 21.04.2012
Чтобы удалить строку: Ctrl - A, чтобы перейти в начало строки, затем < kbd> Ctrl - K, чтобы удалить его, а в другой раз Ctrl - K strong > удалить пустую строку. (Я не использую Xcode очень часто, но я привык к этому в Emacs и других текстовых вводах с привязками, подобными Emacs, и, похоже, это работает и в Xcode.)
И чтобы продублировать строку: я не знаю многих программ, в которых есть команда для этого, но обычно я просто использую Copy + Paste - в Xcode это похоже на CUA: Ctrl + A для перехода к началу строки, Shift + ↓ strong >, чтобы выбрать его, Command + C для копирования и Command + * V для дважды вставки (один раз переопределив строку и один раз добавив к ней).
(от человека, который все время набирает и редактирует текст, так часто в разных программах, и иногда злится из-за того, что ему приходится отвлекать себя тупым виджетом, делая небольшую поправку во вводе текста, что он просто не может не запоминать эти последовательности и привычки)
Удалите строку типа eclipse CTRL + D (проверено в Xcode 4.5.1):
Прежде всего, измените эти права:
sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/
Откройте /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
с самим Xcode и добавьте эту новую запись:
deleteToBeginningOfLine:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToBeginningOfLine:
Перезапустите Xcode и откройте Xcode> Настройки> KeyBindings. Найдите свой макрос и определите комбинацию клавиш:
Я попробовал решение для привязки клавиш, но не смог заставить его работать. Однако редактирование привязок клавиш XCode работает как шарм. Вот как я это сделал.
Это решение не изменяет содержимое буфера обмена!
Откройте привязки клавиш XCode:
В диалоговом окне редактирования пользовательских сценариев:
Повторяющаяся очередь:
using terms from application "Xcode"
tell first text document
set {startLine, endLine} to selected paragraph range
if startLine > 1 then
set theText to (paragraphs startLine through endLine)
set theText to (theText as string)
make new paragraph at beginning of paragraph (startLine) with data theText
set selected paragraph range to {endLine + 1, endLine + endLine - startLine + 1}
else
beep 1
end if
end tell
end using terms from
Повторяющаяся линия вниз:
using terms from application "Xcode"
tell first text document
set {startLine, endLine} to selected paragraph range
if endLine < (count paragraphs) then
set theText to (paragraphs startLine through endLine)
set theText to (theText as string)
(* delete (paragraphs startLine through endLine) *)
make new paragraph at beginning of paragraph (endLine + 1) with data theText
set selected paragraph range to {startLine, endLine}
else
beep 1
end if
end tell
end using terms from
Хорошо, у меня это работало какое-то время, а потом внезапно сломалось. Теперь я объединил здесь разные сообщения и нашел решение, которое работает для XCode 6.3.1.
Перейдите к /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/
с помощью Finder.
найдите папку с именем Resources. Щелкните правой кнопкой мыши по нему, нажмите «Получить информацию», разблокируйте настройку общего доступа и разрешений (нажав на замок) и установите для всех значение «Чтение и запись».
Войдите в папку и найдите файл IDETextKeyBindingSet.plist. Щелкните правой кнопкой мыши по нему, нажмите «Получить информацию», разблокируйте настройку общего доступа и разрешений (нажав на замок) и установите для всех значение «Чтение и запись».
Откройте файл с помощью XCode (по умолчанию)
Найдите удаления, щелкните правой кнопкой мыши и добавьте новую строку. Назовите его, например, Удалить строку. В поле значения введите: selectLine:, deleteBackward:
. (Это также можно сделать для повторяющейся строки: selectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward:
)
Поскольку Xcode 4 затрудняет реализацию с использованием привязок клавиш, я прибег к использованию Keyboard Maestro (Quickeys тоже должен работать хорошо, но он не полностью совместим с Lion). Например, вот мой ярлык Keyboard Maestro (привязанный к ⌘-⇧-D):
Мы используем Xcode 9.0, и сочетания клавиш все еще не работают. Вздох.
Я нашел эту суть очень полезной, поэтому перепубликую ее здесь для дальнейшего использования:
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
</dict>
<key>Duplication</key>
<dict>
<key>Duplicate Current Line</key>
<string>moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, moveToBeginningOfLine:, yank:</string>
<key>Duplicate Lines</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
<key>Delete Line</key>
<string>selectLine:, deleteBackward:</string>
</dict>
Я знаю, что этот поток довольно старый, но я нашел другое решение, используя BetterTouchTool, вы можете выполнить Ctrl + A, Ctrl + K, Ctrl + K последовательность одним ярлыком, настроив в BTT так:
(Используйте кнопку «Добавить дополнительное действие», чтобы добавить второй и третий ярлыки)
PS: Исходя из Eclipse, где Cmd + D - это строка удаления ^^
Используйте пользовательские скрипты.
Пока есть скрипты для перемещения и удаления строк. Вы должны определить привязки клавиш для этих скриптов (меню Скрипты -> Редактировать пользовательские скрипты ... в xCode 3.2).
Чтобы продублировать строку, вы должны написать свой собственный скрипт. Но это очень просто! Дублируйте скрипт «Переместить строку вниз» и удалите строку, удаляющую выделенный текст:
delete (paragraphs startLine through endLine)
Трижды щелкните, чтобы выделить всю строку, command-c, чтобы выбрать, и command-v дважды, чтобы скопировать ее. Это не функция Xcode, это просто часть ОС.
Решение для дублирования строк XCode4 в здесь
Я также добавил удаление строки в список:
<key>Remove Line</key>
<string>selectLine:, deleteBackward:</string>
Нет необходимости изменять Xcode. Вы можете просто использовать расширение Xcode Linex
Решение от damien.flament отлично работает, и вам может потребоваться установить вывод в «Отменить вывод» см. рис. ниже.
P.S: Не знаю, как прокомментировать его ответ.
Как сказано выше, закройте XCode и вставьте следующее в ~/Library/Application Support/Xcode/Key Bindings/ <user>.pbxkeys
внутри <dict>
в разделе <key>text</key>
:
<key>^D</key>
<array>
<string>moveToLeftEndOfLine:</string>
<string>deleteToEndOfLine:</string>
</array>
<key>^K</key>
<array>
<string>selectLine:</string>
<string>copy:</string>
<string>moveToEndOfLine:</string>
<string>insertNewline:</string>
<string>paste:</string>
<string>deleteBackward:</string>
</array>
Запустите XCode и наслаждайтесь CTRL - SHIFT - D и CTRL - SHIFT - < kbd> K.
Если вы хотите CTRL - D и CTRL - K, вместо этого используйте ^d
и ^k
в определениях ключей. Убедитесь, что в файле нет повторяющихся привязок клавиш.
У меня отлично работает с XCode 3.2
Это возможно с помощью BetterTouchTool. CMD + D дублирует строку. Создайте новый ярлык, например:
Используйте кнопку «Добавить дополнительное действие», чтобы добавить второй и третий ярлыки.
Если вы уже настроили привязки клавиш Xcode, вам придется отредактировать файл: ~/Library/Application Support/Xcode/Key Bindings/<user>.pbxkeys
. Просто добавьте два массива (описанных выше) в словарь Root/text
.
Три шага для удаления текущей строки (смотрите слишком долго, но делайте очень быстро: D)
Cmd + →: перейти в конец строки
Cmd + Delete: удалить до начала строки < br> Удалить: удалить пустую строку
Для Xcode 6.1 попал в Xcode> Preferences> KeyBindings> Text И есть «Удалить до конца строки» и назначить желаемый ключ.
Плагин удаления строки XCodePlus - это XCode, который делает это за вас. Он был предварительно установлен с менеджером пакетов Alcatraz ...
https://github.com/payliu/XcodePlus
По-прежнему нет встроенного способа дублирования строк, как в Xcode 9. И пользовательские привязки клавиш, похоже, имеют проблемы.
Обновление. Xcode 10.0 beta 6 (10L232m) - то же самое.
Перейдите по этому адресу:
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet
а затем скопируйте файл IDETextKeyBindingSet.plist куда-нибудь, а затем откройте скопированный файл и вставьте
selectLine :, copy :, paste :, paste: как это изображение введите здесь описание изображения и сохраните его и замените скопированный файл по этому адресу /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet
затем перезапустите xcode, откройте префиксы xcode, перейдите на вкладку привязки клавиш, найдите повторяющуюся строку (настроенную) и определите для нее короткий ключ, как на изображении ниже
https://i.stack.imgur.com/fCFkX.png