Виходячи з Eclipse і використовувався для копіювання рядків весь час, досить дивно з'ясувати, що Xcode не має такої функції. Або це?
Я знаю, що можливо змінити системні клавіатурні зв'язки, але це не те, про що я пішов.
Виходячи з Eclipse і використовувався для копіювання рядків весь час, досить дивно з'ясувати, що Xcode не має такої функції. Або це?
Я знаю, що можливо змінити системні клавіатурні зв'язки, але це не те, про що я пішов.
Відповіді:
Вся справа в тому, щоб НЕ використовувати 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
Duplicate
Команда (в Edit -> Duplicate
) , як видається, «завжди» неактивна (і не призначене для дублюючої лінії).
Щоб видалити рядок : Ctrl-A перейти до початку рядка, потім Ctrl-K видалити його, а інший раз Ctrl-K видалити порожній рядок. (Я не використовую Xcode дуже часто, але я звик до цього в Emacs та інших текстових введеннях із Emacs-подібними прив'язками, і, здається, він працює і в Xcode.)
І дублювати рядок : я не знаю багатьох програм, які мають для цього команду, але зазвичай я просто використовую Copy + Paste - у Xcode це CUA-подібне: Ctrl+A для переходу до початку рядка, Shift+↓ для вибору це, 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.
знайти папку з назвою "Ресурси". Клацніть правою кнопкою миші, натисніть Отримати інформацію, розблокуйте налаштування спільного доступу та дозволів (Натискаючи на блокування) та встановіть його на Читання та запис для всіх.
Введіть папку і знайдіть файл IDETextKeyBindingSet.plist. Клацніть правою кнопкою миші, натисніть Отримати інформацію, розблокуйте налаштування спільного доступу та дозволів (Натискаючи на блокування) та встановіть його на Читання та запис для всіх.
Відкрийте файл за допомогою XCode (за замовчуванням)
Знайдіть видалення, клацніть правою кнопкою миші та додайте новий рядок. Назвіть його, наприклад, Видалити рядок. В поле значення введіть: selectLine:, deleteBackward:
. (Це також може бути зроблено для дублювання рядки: selectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward:
)
Оскільки Xcode 4 ускладнює реалізацію за допомогою прив'язки клавіш, я вдався до використання клавіатури Maestro ( Quickeys теж повинен працювати добре, але це не повністю сумісно з Lion). Наприклад, ось мій комбінація клавіш Maestro (прив’язаний до ⌘-⇧-D):
Щоб видалити рядок у Xcode 10.1, виконайте наведені нижче дії екрана, щоб додати клавішу швидкого доступу.
Я знаю, що цей потік досить старий, але я знайшов інше рішення за допомогою BetterTouchTool , ви можете виконати послідовність Ctrl+ A, Ctrl+ K, Ctrl+ Kв одному ярлику, конфігурувавши так у BTT:
(Використовуйте кнопку "Вкласти додаткову дію", щоб додати другу та третю ярлики)
PS: Походить із Eclipse, де Cmd+ D- рядок видалення ^^
Потрійним клацанням миші виберіть весь рядок, команду-c виберіть та команду-v двічі для їх дублювання. Це не функція Xcode, це лише частина ОС.
Використовуйте сценарії користувачів.
Є сценарії для переміщення та видалення рядків. Ви повинні визначити ключові прив’язки для цих сценаріїв (меню Сценарії -> Редагувати сценарії користувачів ... , під xCode 3.2).
Щоб дублювати рядок, ви повинні створити свій власний сценарій. Але це дуже просто! Дублюйте сценарій "Переміщення рядка вниз" і видаліть рядок, який видаляє вибраний текст:
delete (paragraphs startLine through endLine)
Ми перебуваємо на 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>
Не потрібно змінювати Xcode. Ви можете просто використовувати розширення Xcode Linex
Рішення від damien.flament чудово працює, і вам може знадобитися встановити вихід на "Відхилити вихід", див. Малюнок нижче
PS: Я не знаю, як прокоментувати його відповідь.
Як було сказано вище, близько 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- K.
Якщо ви хочете CTRL- Dі CTRL- K, замість цього використовуйте ^d
та ^k
в ключових визначеннях. Переконайтесь, що у файлі немає дублікатів прив'язки ключів.
Для мене добре працює з XCode 3.2
Це можливо за допомогою BetterTouchTool . CMD + D буде дублювати рядок. Створіть новий ярлик на зразок цього:
Використовуйте кнопку "Додати додаткові дії", щоб додати другу та третю ярлики
Якщо ви вже налаштували свої Xcode клавіш, ви повинні відредагувати файл: ~/Library/Application Support/Xcode/Key Bindings/<user>.pbxkeys
. Просто додайте два масиви (описані вище) до Root/text
словника.
Модуль для видалення рядків XCodePlus - це XCode, який робить це для вас. Він був попередньо встановлений разом із менеджером пакунків Alcatraz ...
Досі не існує вбудованого способу дублювання рядків, як у Xcode 9. І прив’язки до спеціальних ключів, схоже, мають проблеми.
Оновлення: Xcode 10.0 beta 6 (10L232m) те саме.
Перейдіть за цією адресою:
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet
а потім скопіюйте файл IDETextKeyBindingSet.plist кудись, а потім відкрийте скопійований файл та вставте
selectLine :, Копіювати :, Вставити :, Вставити: як на цьому малюнку сюди введіть опис зображення та збережіть його та замініть скопійований файл за цією адресою /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet
потім перезапустіть xcode, відкрийте заздалегідь xcode, перейдіть на вкладку прив'язки клавіш, шукайте повторюваний рядок (за налаштуваннями) та визначте для нього коротку клавішу, як зображення нижче