Duplikat linii Xcode

127

W menu edycji znajduje się Duplicatepolecenie (z domyślnym skrótem D), ale jest ono (jak zauważył Halley ) przeznaczone do powielania w części Interface Builder programu Xcode.

Jak więc ( łatwo ) powielić linię w Xcode 4?


Powiązane pytanie (z działającą odpowiedzią) dla Xcode 3 ... i które nie działa dla Xcode 4.


Dlaczego nie po prostu skopiować i wkleić?

Ponieważ jest to żmudne i pociąga za sobą zbyt wiele ręcznych akrobacji:

albo (1) : przejście do początku wiersza, a następnie naciśnięcie ⇧^E, następnie kopiowanie za pomocą ⌘C, przejście do nowej linii, wyrównanie kursora i na koniec wklejanie za pomocą ⌘V;

lub (2) : ^A(ustaw kursor na początku linii), ^SPACE(ustaw znacznik), ^E(ustaw kursor na koniec linii), ⇧^W( Select to Mark; dostosowany), kopiuj, nowa linia itp.

Jak ujął to Frank Schröder (w powiązanym pytaniu ):

Chodzi o to, aby NIE używać skrótów Cmd-C / Cmd-V.

Blaz
źródło
1
Wybierz linię i skopiuj wkleić?
Dani
1
@Dani, CP to po prostu za dużo pracy (a powielanie linii nie jest czymś, czego potrzeba pojawia się rzadko). :) Zaktualizowałem pytanie.
Blaz
1
Command-D służy do powielania kontroli w programie Interface Builder.
Hailei,
@Halley, dobrze wiedzieć. I czy jest to odpowiednik ⌥-przeciągnięcia myszą (które również kopiuje elementy interfejsu)?
Blaz,
@courteous Myślę, że tak. Sekcja Modifier Keys w disanji.net/iOS_Doc/#documentation/DeveloperTools/Conceptual/… mówi, że „naciśnięcie klawisza Option podczas operacji przeciągania i upuszczania kopiuje wybrane obiekty zamiast je przenosić”.
Hailei,

Odpowiedzi:

173
  1. Przejdź do tego folderu, który zawiera ciemną stronę mocy:

    • Xcode 4.2 lub starszy: /Developer/Library/PrivateFrameworks/IDEKit.framework/Resources
    • Xcode 4.3 lub nowszy: /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources.
  2. Otwórz IDETextKeyBindingSet.plist.

  3. Dodaj nowy słownik i nowy element polecenia, jak na poniższym zrzucie ekranu (nazwij je, jak chcesz): Edycja pliku plist

    To jest: selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:

  4. Zrestartuj Xcode i przejdź do Preferencje - Wiązania klawiszy, wyszukaj swoje polecenie.

  5. Ustaw kombinację klawiszy dla polecenia: Key Bindings

  6. Wreszcie uwolnij moc skrótów klawiszowych w Xcode ... Ciesz się!

Hailei
źródło
3
@MichalStefanow, lokalizacja, którą napisałeś, jest w rzeczywistości tą samą lokalizacją, na którą /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resourceswskazuje alias. W przeciwnym razie z powodzeniem wykonałem kroki Halleya w wersji 4.3.2 ... Proponuję wykonać kopię zapasową oryginalnego pliku, a następnie otworzyć go w samym Xcode (a nie w TextEdit). Ponadto, jeśli chodzi o uprawnienia: zmiana ich (tylko dla samego pliku; rekursja nie jest wymagana) w Finderze działała dobrze.
Blaz
29
Wielkie dzięki! Dla leniwych użytkowników - selectLine :, copy :, moveToEndOfLine :, insertNewline :, paste :, deleteBackward:
Vlad Tsepelev
15
Jeśli twój xCode się zawiesza! Zamknij xCode, otwórz plik w dowolnym edytorze tekstu i dodaj swój słownik: <key>Custom</key> <dict> <key>Duplicate Current Line</key> <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string> </dict>
Vlad Tsepelev.
2
U mnie działa w XCode 4.4.1! Miałem problemy ze zmianą uprawnień (z jakiegoś powodu finder lub chmod 777 i uruchamianie sudo z terminala nie działały). Skopiowałem plik do innego miejsca, zredagowałem go i nadpisałem oryginalny, który działał.
Ixx
2
Jestem programistą android i kiedy zacząłem wypróbowywać ios dev, zdałem sobie sprawę, jak dobre jest studio android (lub idea intellij).
IlyaEremin
90

Zaktualizuj 2020

Działa również na wersjach Xcode: 11.3.1

Działa w wersjach Xcode: 7.1, 7.3, 7.3.1, 8.0, 8.1, 8.2, 8.3, 9.0, 9.1, 9.2, 10.0, 10.1, 10.2.1

Instrukcja

  1. Przyznaj uprawnienia do edycji następujących plików. W większości przypadków system operacyjny nie pozwala na edycję plików.

dla wersji 11.3.1

sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources//IDETextKeyBindingSet.plist

sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/

poniżej wersji 11.3


sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/
  1. Edytuj plik, wpisując następujące polecenie: (Otwórz go w wysublimowanym lub edytorze tekstu, jeśli możesz)

dla 11.3.1

open  

/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/

dla poniższych wersji

open /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
  1. Dołącz następujące fragmenty kodu XML:
<key>custom</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>

Zrzuty ekranu

wprowadź opis obrazu tutaj

i Zrestartuj Xcode i przejdź do Preferences - Key Bindings, wyszukaj polecenie, które wpisaliśmy (Duplikuj linie i Duplikuj bieżącą linię).

wprowadź opis obrazu tutaj

Otóż ​​to.

Uwaga dla użytkowników z Uniksa: -

sudo chmod 755 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/ 
Zumry Mohamed
źródło
To działa jak urok! Edytowałem IDETextKeyBindingSet.plisti dodałem powyższy słownik, a następnie zamapowałem klucze w Preferencjach XCode.
Randika Vishman,
3
Oto odpowiedzi, których potrzebują użytkownicy komputerów Mac!
Luca Davanzo
1
Dla XCode 10.1, musiałem użyć następujący ciąg: moveToBeginningOfLine :, deleteToEndOfLine :, Yank :, insertNewline :, setMark :, moveToBeginningOfLine :, selectToMark :, Yank: . Wielkie dzięki dla @tmsimont
marcelosalloum
1
jest to pierwsza rzecz, którą Google zawsze aktualizuje.
newDeveloper
1
To rozwiązanie działa dla mnie, a nie zaakceptowana odpowiedź
khalid
18

Ok, wymyśliłem to:

Wersja dla XCode 11:

selectParagraph:, delete:, undo:, moveRight:, yankAndSelect:
  • nie dotyka schowka
  • działa z wieloma liniami
  • wybiera dodane linie, więc można ich używać wiele razy bez ponownego zaznaczania
  • poprawiony wybór w XCode 11
  • działa lepiej z cofaniem

Ponieważ stosuję tę zmianę po każdej aktualizacji XCode, stworzyłem do tego skrypt. Możliwe, że może spowodować pewne uszkodzenia, ale starałem się, aby był stosunkowo bezpieczny. Tworzy kopię pliku, a następnie zastępuje wiersz jego kopią i dodatkowym poleceniem za pomocą perla. Wymaga zainstalowania XCode w/Applications/Xcode.app

cp /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist ~/Desktop/IDETextKeyBindingSet.plist; sudo perl -pi -e 's/\<string\>selectWord:\<\/string>/'$'\<string\>selectWord:\<\/string\>\n\t\t\<key\>Duplicate Selection\<\/key\>\n\t\t\<string\>selectParagraph:, delete:, undo:, moveRight:, yankAndSelect:\<\/string>/g' /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

Starsza wersja (nie jestem pewien, czy nowa jest kompatybilna ze starszymi wersjami, więc zatrzymam ją tutaj):

selectParagraph:, delete:, yank:, moveToBeginningOfLine:, setMark:, yank:, moveToBeginningOfLine:, moveLeft:, selectToMark:

i skrypt dla starszej wersji, aby uniknąć ręcznej edycji plików:

cp /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist ~/Desktop/IDETextKeyBindingSet.plist; sudo perl -pi -e 's/\<string\>selectWord:\<\/string>/'$'\<string\>selectWord:\<\/string\>\n\t\t\<key\>Duplicate Selection\<\/key\>\n\t\t\<string\>selectParagraph:, delete:, yank:, moveToBeginningOfLine:, setMark:, yank:, moveToBeginningOfLine:, moveLeft:, selectToMark:\<\/string>/g' /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

edycja: drobna poprawka edit2: zmieniono na wybór akapitu edit3: dodano wersję dla XCode 11

Rychu
źródło
Naprawdę dziękuję za to, szukając tego połączenia. Może to powielić pojedynczą linię lub wiele linii bez dodawania niechcianych nowych linii, a ctrl-z działa dobrze.
mkeremkeskin
Dzięki, to właśnie jest najbliższe zachowaniu IntelliJ IMHO
OxyFlax
17

Dzisiaj napisałem bardzo małą wtyczkę do Xcode 5, która usuwa i duplikuje linie i zaznaczenia.

Możesz go pobrać z mojego repozytorium GitHub: wtyczka XcodeKit - https://github.com/ptfly/XcodeKit

niezrównany
źródło
Właśnie to pobrałem i zainstalowałem - możesz także użyć preferencji systemowych, aby ustawić skróty klawiaturowe dla poleceń. Bardzo dobrze!
Orion Edwards
Najlepsze rozwiązanie jest takie, ponieważ ten nie zepsuje Ci obecnego schowka. Aby dodać skróty klawiszowe: Preferencje systemowe -> klawiatura -> skróty -> skróty do aplikacji -> „+”. Tam wybierz Xcode i tytuł menu, na przykład
``
Właśnie to zainstalowałem. NIESAMOWITE, chociaż z jakiegoś powodu moje menu „Duplikat” pod edycją jest wyszarzone. Mimo że wybrałem linię w edytorze, kursor i próbowałem zaznaczyć całą linię.
John Ballinger
To więcej niż niesamowite. Dziękuję Ci!
0x6A75616E
to nie działa dla mnie. Opcja „Duplikat” jest wyszarzona, a skrót klawiaturowy również nie będzie działać.
SquareBox
13

Odpowiedź @ Hailei była całkiem dobra, ale miała niefortunny efekt uboczny wbijania zawartości schowka (pozostawiając ją wypełnioną zawartością zduplikowanej linii), co jest dokładnie tą częścią ręcznego kopiowania / wklejania, której starałem się uniknąć .

Więc zmieniłem sekwencję poleceń na następującą:

moveToBeginningOfLine:,
deleteToEndOfLine:,
yank:,
insertNewline:,
moveToBeginningOfLine:,
yank:

Te 2 yank:s mogą nie działać zgodnie z przeznaczeniem, jeśli NSTextKillRingSizeustawiłeś coś innego niż 1, ale jestem prawie pewien, że 1jest to ustawienie domyślne i musisz wykonać nietrywialną pracę, aby to zmienić (wymaga dodania wpisu do ~/Library/Preferences/.GlobalPreferences.plist).

Kelan
źródło
Proponuję użyć polecenia defaults write -g NSTextKillRingSize 1zamiast bawić się z GlobalPreferences.plist. ;)
dbernard
@amas Prawdopodobnie musisz skopiować plik w inne miejsce, zanim go zmodyfikujesz, a następnie zastąpisz oryginalny plik, chyba że chcesz ryzykować zmianę uprawnień do folderów nadrzędnych.
nipponese
to prawie działa, ale z jakiegoś powodu na końcu zduplikowanej linii zostaje dodana grupa białych znaków .. masz pomysł dlaczego?
tmsimont,
5
jeśli naprawiono to za pomocą tej modyfikacji:moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, setMark:, moveToBeginningOfLine:, selectToMark:, yank:
tmsimont
To powinna być sugerowana odpowiedź (zgodnie z przewodnikiem @ Hailei). Dzięki!
brkeyal
9

Po co powielać jedną linię? Duplikat całego akapitu jest lepszy. Moja sekwencja:

Powiel bieżący akapit

selectParagraph:,
delete:,
yank:,
moveToBeginningOfParagraph:,
yank:,
moveUp:,
moveToEndOfParagraph:

Usuń bieżący akapit

selectParagraph:,
delete:,
moveUp:,
moveToEndOfParagraph:

Działa dobrze w Xcode 4.6

BB9z
źródło
Zgoda, manipulowanie akapitami jest lepsze niż wiersze. Wszyscy, spraw, aby twój edytor był na tyle wąski, aby zawijał tekst i spróbuj użyć poleceń linii.
Logan Moseley,
Jak małe jest twoje okno, które opakowuje twój kod. Rozważ podzielenie kodu na mniejsze linie, jeśli zdarza się to tak często.
quemeful
9

Zastanawiam się, dlaczego nikt nie wspomniał o używaniu razem z klawiszami strzałek ( ) zarówno do przesuwania kursora, jak i do zaznaczania całych linii (poprzez dodawanie ).

Regularnie kopiuję całe linie (duplikaty), przesuwając kursor na początek linii za pomocą + (zamiast ctrl+ A), a następnie używam + + (zamiast ctrl+ + E), aby zaznaczyć całą linię do końca, a następnie kopiować / wklejać.

Natknąłem się na inne wątki, w których nikt nie używa tych skrótów klawiaturowych. Są globalne w OS X i używam ich cały czas! Dużo mniej akrobatyki ręcznej;)

Baldur
źródło
Wymaga to znacznie więcej „akrobatyki ręcznej” niż powielanie za pomocą tylko jednej kombinacji akcji / klawisza… w ten sposób powielam tekst w edytorze tekstu lub przeglądarce internetowej, tak, ale oczekuję trochę więcej od IDE.
Ixx
1
A także, dzięki zduplikowanemu skrótowi liniowemu, nie nadpisujesz zawartości schowka. Wiele razy coś kopiujesz, duplikujesz kod i chcesz go wkleić - swoją metodą musisz skopiować ponownie.
Ixx
No tak. Ale mniej niż sposób sugerowany przez PO. Mogę się zgodzić, że jedno polecenie byłoby najlepsze. Pomyślałem, że wskażę alternatywę.
Baldur
1
to wciąż lepsze niż nic po wyjęciu z pudełka. Chciałbym, żeby cmd + C / X bez zaznaczenia po prostu skopiował / wyciął całą linię, tak jak robią to inni redaktorzy ...
manroe
@Baldur To też robię. cmd + lewy cmd + shift + prawy cmd + c cmd + prawy wprowadź cmd + lewy cmd + p. Przy 7 naciśnięciach klawiszy można to łatwo zrobić w mniej niż 3 sekundy, jednak nadal jest to dość żmudne w stosunku do ctrl + d, jak w wielu edytorach tekstu. Szkoda, że ​​nie jest to wbudowane w xcode lub ogólnie komputery Mac i oprogramowanie Apple nie mają lepszych klawiszy skrótu.
csga5000
9

EDYCJA: 12 lipca 2020 r. Po ponownej aktualizacji do Xcode 11.5 mój duplicate linewpis klucza z plistpliku zniknął. Musiałem to dodać ponownie. Kluczowe powiązanie nadal istniało.

EDYCJA: 17 września 2019 r. Po ponownej aktualizacji do Xcode 10.3 mój duplicate linewpis klucza z plistpliku zniknął. Musiałem to dodać ponownie. Kluczowe powiązanie nadal istniało.

EDYCJA: 28 maja 2019 r. Po ponownej aktualizacji do Xcode 10.2 mój duplicate linewpis klucza z plistpliku zniknął. Musiałem to dodać ponownie. Kluczowe powiązanie nadal istniało.

EDYCJA: 23 grudnia 2018 Po aktualizacji do Xcode 10.1 wszystkie moje skróty znowu się zepsuły. Ale coś innego było to, że po zaktualizowaniu pliku plist pod kątem duplikacji linii nie musiałem definiować moich przypisań klawiszy, one już tam były. Dziwne.

EDYCJA: 14 października 2018 Xcode 10: Ktoś wysoko w Apple naprawdę uwielbia kopiować / wklejać i dba o to, aby z każdą wersją aktualizacji Xcode, duplikacja linii została usunięta z instalacji wszystkich. My, programiści, byliśmy bardzo sfrustrowani tym nonsensem, który od zawsze miał miejsce w Xcode, jedynym IDE bez opcji kopiowania linii. Właśnie zaktualizowałem do Xcode 10 i jak się domyślacie - wszystkie moje klawisze skrótów zostały usunięte wraz z funkcją powielania linii. Jednak można to naprawić, tak jak w oryginalnej odpowiedzi. Niewielka różnica tym razem polega na tym, że będziesz potrzebować następującego wiersza:

<key>Duplicate Current Line</key>
<string>selectLine:, copy:, moveToBeginningOfLine:, paste:, moveToEndOfLine:</string>

EDYCJA: Xcode 9: Musiałem przerobić moje skróty oraz powielanie i usuwanie linii, ale dobrą rzeczą jest to, że teraz możesz ponownie edytować IDETextKeyBindingSet.plist. Ten wysoko postawiony facet z Apple musi być na wakacjach, kiedy wydali tę wersję.

EDYCJA: Xcode 8: Buggy, nie możesz w ogóle modyfikować pliku IDETextKeyBindingSet.plist. Xcode resetuje go przy starcie. Ten wysoko postawiony facet w Apple jest naprawdę zdeterminowany, abyśmy używali kopiowania / wklejania zamiast prostego powielania linii, jak we wszystkich innych IDE.

EDYCJA: Xcode 7.1 i nadal nie ma skrótów do powielania i usuwania linii. To jedyne IDE, z jakim kiedykolwiek pracowałem, bez takich skrótów. Nie wyobrażam sobie życia programisty bez tych dwóch krytycznych skrótów.

Oto, jak można to zrobić:

Najpierw musimy zmodyfikować plik plist, który znajduje się w pakiecie Xcode.app (wymaga sudo do edycji)

/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

Następnie poszukaj <key>Insertions and Indentations</key>i pod <dict>tagiem dodaj:

<key>Insert New Line Below</key>
<string>moveToEndOfLine:, insertNewline:</string>
<key>Insert New Line Above</key>
<string>moveUp:, moveToEndOfLine:, insertNewline:</string>
<key>Duplicate Current Line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>

Następnie znajdź i te w sekcji <key>Deletions</key>pod <dict>tagiem:

<key>Delete Current Line</key>
<string>selectLine:, delete:</string>
<string>selectLine:, delete:</string>

wprowadź opis obrazu tutaj

Teraz otwórz / uruchom ponownie Xcode, przejdź do Preferencji i przejdź do zakładki „Wiązania klawiszy”. Użyj paska wyszukiwania, aby filtrować i szukać nowych skrótów. Następnie kliknij przed opisem skrótu, aby przypisać mu odpowiedni skrót. Upewnij się, że Twój skrót nie powoduje konfliktu z istniejącymi skrótami.

wprowadź opis obrazu tutaj

zeeshan
źródło
3

Rozważyłbym zmianę sekwencji poleceń, aby:

selectLine:,
copy:,
moveToEndOfLine:,
insertNewline:,
deleteToBeginningOfLine:,
paste:,
moveToBeginningOfLine:, 
deleteBackward:

Dodany deleteToBeginningOfLinezachowuje wcięcie powielonej linii.

user570753
źródło
To zadziałało świetnie, gdy zdałem sobie sprawę, że muszę zamienić (dobrze wyglądające) znaki nowej linii spacją po przecinku.
McUsr,
2

insertLineBreak potrzebował przynajmniej dla mnie do zrobienia kopii w nowej linii, bez tego mam kopię w tej samej linii

Vladimir Kruglov
źródło
2

Miałem duży problem z odblokowaniem pliku .plist na MacOS Sierra i Xcode 9, nawet decyzja @Tim nie działała dla mnie. Jeśli masz ten sam problem, przejdź do terminala i zrób to:

cd /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/
sudo chmod -R 777 *
nano IDETextKeyBindingSet.plist

Poniżej opisano również kilka innych możliwych sposobów, aby to zrobić .

Następnie w edytorze nano kliknij ^Wi wpisz „wstawki”, aby przejść do części „Wstawienia i wcięcia”. Tuż pod <dict>tagiem wklej ten xml-snippet:

<key>Duplicate line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewLine:, paste:, deleteBackward:</string>

Naciśnij control + X, a następnie Y, Enteraby zapisać plik w edytorze nano.

UPD: Podjąłem lepszą decyzję, która dodaje dodatkową linię przed powieleniem (przydatne, gdy chcesz zduplikować linię, która ma inną linię tuż pod nią):

<key>Duplicate line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertLineBreak:, moveUp:, paste:, moveToBeginningOfLine:</string>
joliejuly
źródło
1

Oto moje wpisy Delete ( CTRL+ D) i Duplicate ( CMD+ SHIFT+ D) z mojego IDETextKeyBindingSet.plist. (w /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources)

Właśnie skonfigurowałem je w Xcode 4.6.1 (na podstawie odpowiedzi użytkownika570753 powyżej i gdzie indziej)

    <key>Custimozed</key>
<dict>
    <key>Delete Current Line</key>
    <string>deleteToBeginningOfLine:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToBeginningOfLine:</string>
    <key>Duplicate Current Line</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, deleteToBeginningOfLine:, paste:, moveToBeginningOfLine:, deleteBackward:</string>
</dict>
Obrabować
źródło
0

Każdy użytkownik wysublimowanego tekstu, który chciałby dopasować duplicateLineUp i duplicateLineDown do sublime w XCode, dodaj następujące elementy do swojego pliku IDETextKeyBindingSet.plist

<key>Line Duplications</key>
<dict>
    <key>Duplicate Current Line Above</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:, moveUp:</string>
    <key>Duplicate Current Line Below</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
</dict>
internet-nico
źródło
0

W przypadku, gdy komukolwiek innemu odmówiono dostępu do edycji IDETextKeyBindingSet.plist, możesz nadać sobie uprawnienia do odczytu / zapisu przez:

sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
Tim
źródło
0

Aby uzupełnić odpowiedź Hailei, polecenia, które działały dla mnie najlepiej, to:

selectLine:, copy:, moveRight:, moveLeft:, insertNewline:, paste:, deleteBackward:

Jego sugerowane polecenia polegały na skopiowaniu żądanej linii dwie linie poniżej, dla mnie.

Pręt
źródło
0
<key>Duplicate Lines</key>    
<string>selectLine:, copy:, moveToBeginningOfLine:, paste:</string>

Obsługiwane są zduplikowane wiersze. (Działa w Xcode 9.2)

Luminoid
źródło
0

Jeśli chodzi o Xcode 11, żadne z powyższych nie działało dla mnie. Pierwsza odpowiedź zachowywała się dziwnie, ponieważ wstawiała wiersz po następnym. Jednak następująca odpowiedź zadziałała dla mnie.

<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>
Ben
źródło