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 редактор") и удалить "удалить (пункты составом на основе конечных)" прохождение.
- если вы не хотите перезапускать XCode, вам, похоже, придется удалить и повторно добавить скрипт. Убедитесь, что для параметра "Output" установлено значение "Discard Output", иначе в исходном файле будет указано значение "(null)"
- я немного изменил скрипты немного больше, чтобы выбрать правильные строки:
Повторяющиеся Строки:
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 делает это трудно реализовать с помощью привязки клавиш, я прибегал к использованию Keyboard Maestro (Quickeys должно работать хорошо тоже, но это не полностью совместимый Лев). Например, вот мой ярлык Keyboard Maestro (привязанный к ⌘- ⇧ - D):
хорошо, так что у меня это работало некоторое время, а затем внезапно он сломался. Теперь я объединил из разных сообщений здесь и нашел решение, которое работает для 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, перейдите в настройки / привязки клавиш и найдите строку удаления. Установите ярлык. Наслаждаться.
трижды щелкните, чтобы выбрать всю строку, command-c, чтобы выбрать и command-v дважды, чтобы дублировать его. Это не функция Xcode, это просто часть ОС.
Я знаю, что этот поток довольно старый, но я нашел другое решение, используя BetterTouchTool, вы сможете выполнить
Ctrl+A
,Ctrl+K
,Ctrl+K
последовательность в одном ярлыке, настроив так в BTT:(используйте кнопку Прикрепить дополнительное действие, чтобы добавить второй и третий ярлык)
PS: исходя из затмения, где
Cmd+D
удалить строки ^^
использовать пользовательские скрипты.
есть скрипты для перемещения и удаления строк еще. Вы должны определить привязки клавиш для этих сценариев (меню Скрипты -> Редактировать Пользовательские Скрипты..., под 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 > настройки > привязки клавиш > текст И есть "удалить до конца строки" и назначить ключ, который вы хотите.