Xcode дублировать / удалить строку
исходя из Eclipse и будучи использованным для дублирования строк все время, довольно странно узнать, что Xcode не имеет такой функции. Или нет?
Я знаю, что можно изменить общесистемные привязки клавиш, но это не то, что мне нужно.
20 ответов
весь смысл не использовать Cmd-C
/Cmd-V
ярлыков. У меня такая же проблема, исходящая от 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
удалить строку: Ctrl-A перейти к началу строки, то Ctrl-K удалить его, и в другой раз Ctrl-K чтобы удалить пустую строку. (Я не очень часто использую Xcode, но я привык к этому в Emacs и других текстовых вводах с привязками Emacs, и, похоже, он также работает в Xcode.)
и дублировать строчка: Я не знаю многих программ, у которых есть команда для этого, но обычно я просто использую Copy+Paste-in Xcode это CUA-like:Ctrl+A перейти к началу строки Shift+↓, чтобы выделить его, команда+C копирование и команда+*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 > настройки > привязки клавиш. Найдите свой макрос и определите короткую клавишу:
я попробовал ключ привязки, но я не мог заставить его работать. Однако редактирование Привязок ключей XCode работает как шарм. Вот как я это сделал.
это решение не изменяет содержимое буфера обмена!
откройте привязки ключей XCode:
в диалоговом окне редактировать пользовательские скрипты:
- дублируйте сценарий "переместить строку вниз" и переименуйте его
- дублировать "переместить линию вниз.scpt " файл, переименовать скрипт, выберите файл через (двойной щелчок) в Редакторе скриптов
- отредактируйте сценарий (открывает "AppleScript Editor") и удалите "удалить (абзацы startLine через endLine)" пассаж.
- если вы не хотите перезапускать XCode, вам, похоже, придется удалить и повторно добавить скрипт. Убедитесь, что для параметра "Output" установлено значение "Discard Output", иначе в исходном файле
- я слегка изменил скрипты немного больше, чтобы были выбраны правильные строки:
Повторяющиеся Строки:
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 4 затрудняет реализацию с помощью Привязок клавиш, я прибегнул к использованию Клавиатура Maestro (Quickeys должен работать хорошо, но он не полностью совместим с Lion). Например, вот моя комбинация клавиш Maestro (привязанная к ⌘- ⇧ - D):
хорошо, так что я работал некоторое время, а затем внезапно сломался. Теперь я объединил из разных сообщений здесь и нашел решение, которое работает для XCode 6.3.1.
на
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/
с помощью Finder.находим папку с именем Resources. Щелкните его правой кнопкой мыши, нажмите Get Info, разблокируйте параметр sharing & permissions (нажав на блокировку) и установите его для чтения и записи для всех.
введите папку и найдите файл IDETextKeyBindingSet.файл plist. Щелкните его правой кнопкой мыши, нажмите Get Info, разблокируйте параметр sharing & permissions (нажав на блокировку) и установите его для чтения и записи для всех.
откройте файл с помощью XCode (по умолчанию)
найти удаления, щелкните правой кнопкой мыши и добавьте новую строку. Назовите его, например, удалить строку. В поле Значение введите:
selectLine:, deleteBackward:
. (Это также можно сделать для повторяющейся строки:selectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward:
)
- запустите XCode, перейдите в настройки / привязки клавиш и найдите строку удаления. Установить ярлык. Наслаждаться.
трижды щелкните, чтобы выбрать всю строку, command-c, чтобы выбрать и command-v дважды, чтобы дублировать его. Это не функция Xcode, это просто часть ОС.
Я знаю, что этот поток довольно старый, но я нашел другое решение, используя BetterTouchTool, вы сможете выполнить Ctrl+A
, Ctrl+K
, Ctrl+K
последовательность в одном ярлыке, настроив это в BTT:
(используйте кнопку Прикрепить дополнительные действия, чтобы добавить второй и третий ярлык)
PS: из затмения, где Cmd+D
удалить строки ^^
использовать пользовательские скрипты.
есть скрипты для перемещения и удаления строк. Вы должны определить привязки клавиш для этих скриптов (menu Скрипты ->Редактировать Пользовательские Скрипты..., под xCode 3.2).
чтобы дублировать строку, вы должны создать свой собственный скрипт. Но это очень просто ! Дублируйте сценарий" переместить строку вниз " и удалите строку, которая удаляет выделенный текст:
delete (paragraphs startLine through endLine)
существует решение для дублирования строк XCode4 через здесь
Я также добавил удаление строки в plist:
<key>Remove Line</key>
<string>selectLine:, deleteBackward:</string>
нет необходимости изменять Xcode. Вы можете просто использовать расширение Xcode Linex
решение Дэмиен.flament отлично работает, и вам может понадобиться set выход для "сброса вывода" см. рис ниже
P. S: Я не знаю, как комментировать его ответ.
как сказано выше, закройте XCode и вставьте следующее в ~/Library/Application Support/Xcode/Key Bindings/ <user>.pbxkeys
внутри <dict>
на :
<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-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 + удалить : Удалить для начала строки
удалить : удалить пустые строки
мы в Xcode 9.0 клавиш по-прежнему не работает. Вздох.
нашел в этом суть очень полезно Так перепечатывать его здесь для дальнейшего использования:
- открыть
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
- добавьте следующий фрагмент XML в этот файл чуть выше нижнего
</dict>
- перейдите в настройки Xcode - > привязки клавиш - > вкладка текст - > прокрутите, пока не увидите дублирование
- нажмите на дубликат текущей строки, добавьте ярлык для это, например. Cmnd+D (разрешить любые дубликаты Привязок)
- Открыть Xcode
<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>
для Xcode 6.1 попал в Xcode > настройки > привязки > текст И есть "удалить до конца строки" и назначить ключ, который вы хотите.
xcodeplus удалить плагин линии, это XCode, который делает это для вас. Он был предварительно установлен с менеджером пакетов Alcatraz...
по-прежнему нет встроенного способа дублирования строк, начиная с Xcode 9. И пользовательские привязки ключей, похоже, имеют проблемы.
обновление: Xcode 10.0 beta 6 (10L232m) то же самое.