Proveniente da Eclipse e utilizzato sempre per duplicare le linee, è piuttosto strano scoprire che Xcode non ha tale funzione. O lo fa?
So che è possibile cambiare le combinazioni di tasti a livello di sistema, ma non è quello che sto cercando.
Proveniente da Eclipse e utilizzato sempre per duplicare le linee, è piuttosto strano scoprire che Xcode non ha tale funzione. O lo fa?
So che è possibile cambiare le combinazioni di tasti a livello di sistema, ma non è quello che sto cercando.
Risposte:
L'intero punto NON è usare le scorciatoie Cmd-C
/ Cmd-V
. Ho lo stesso problema che proviene da IntelliJ e poter duplicare le righe Cmd-D
ed eliminarle con Cmd-Y
è un grande risparmio di tempo.
Da allora mi ha infastidito. Tuttavia, sembra che qualcun altro abbia trovato una soluzione che funzioni .
In breve, crea un file ~/Library/KeyBindings/PBKeyBinding.dict
con il seguente contenuto e riavvia Xcode.
{
"^$K" = (
"selectLine:",
"cut:"
);
"^$D" = (
"selectLine:",
"copy:",
"moveToEndOfLine:",
"insertNewline:",
"paste:",
"deleteBackward:"
);
}
Ciò creerà due scorciatoie: Ctrl- Shift- Kper eliminare la riga corrente e Ctrl- Shift- Dper duplicare la riga corrente. Si noti che questo funzionerà solo se NON si utilizza un'associazione chiave personalizzata impostata in Xcode. Passa a "XCode Default" e le cose dovrebbero funzionare. Testato su XCode 3.2 su Snow Leopard.
Ulteriori informazioni sui tasti di scelta rapida di Mac OS X: http://funkworks.blogspot.it/2013/03/republishing-of-wwwerasetotheleftcompos.html
Duplicate
comando (in Edit -> Duplicate
) sembra essere "sempre" disattivato (e non destinato alla duplicazione della riga).
Per eliminare una riga : Ctrl-A per andare all'inizio della riga, quindi Ctrl-K per eliminarla e un'altra volta Ctrl-K per rimuovere la riga vuota. (Non uso Xcode molto spesso, ma ci sono abituato in Emacs e in altri input di testo con associazioni simili a Emacs, e sembra funzionare anche in Xcode.)
E per duplicare una riga : non conosco molti programmi che hanno un comando per quello, ma di solito uso solo Copia + Incolla - in Xcode è come CUA: Ctrl+A per andare all'inizio della riga, Shift+↓ per selezionare esso, Comando + Cper copiare e Comando + * Vper incollare due volte (una volta sovrascrivendo la linea e una volta aggiunta ad essa).
(da una persona che digita e modifica il testo continuamente, così spesso in programmi diversi, e occasionalmente si incazza di dover distrarsi con un widget stupido mentre fa una piccola correzione in un input di testo, che proprio non può evitare di ricordare queste sequenze e abitudini)
Elimina una riga come eclipse CTRL+ D(testato su Xcode 4.5.1):
Innanzitutto, modifica questi diritti:
sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/
Apri /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
con Xcode stesso e aggiungi questa nuova voce:
deleteToBeginningOfLine:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToBeginningOfLine:
Riavvia Xcode e apri Xcode> Preferenze> KeyBindings. Trova la tua macro e definisci una scorciatoia:
Ho provato la soluzione dei collegamenti chiave, ma non sono riuscito a farlo funzionare. Tuttavia, la modifica dei collegamenti dei tasti XCode funziona come un incantesimo. Ecco come l'ho fatto.
Questa soluzione non altera il contenuto degli Appunti!
Apri i collegamenti chiave XCode:
Nella finestra di dialogo Modifica script utente:
Linea duplicata:
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
Linea duplicata giù:
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
OK, quindi ho funzionato per un po 'e poi all'improvviso si è rotto. Ora ho combinato da diversi post qui e ho trovato una soluzione che funziona per XCode 6.3.1.
Vai a /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/
con Finder.
trova la cartella Risorse. Fare clic con il tasto destro del mouse, premere Ottieni informazioni, sbloccare l'impostazione di condivisione e autorizzazioni (premendo il blocco) e impostarla su Leggi e scrivi per tutti.
Immettere la cartella e trovare il file IDETextKeyBindingSet.plist. Fare clic con il tasto destro del mouse, premere Ottieni informazioni, sbloccare l'impostazione di condivisione e autorizzazioni (premendo il blocco) e impostarla su Leggi e scrivi per tutti.
Apri il file con XCode (impostazione predefinita)
Trova le eliminazioni, fai clic con il pulsante destro del mouse e aggiungi una nuova riga. Denominalo ad esempio Elimina riga. Nel campo valore, digitare: selectLine:, deleteBackward:
. (Questo può essere fatto anche per la linea duplicata: selectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward:
)
Dato che Xcode 4 rende difficile l'implementazione usando le associazioni dei tasti, ho fatto ricorso all'uso di Keyboard Maestro (anche Quickeys dovrebbe funzionare bene, ma non è completamente compatibile con Lion). Ad esempio, ecco la mia scorciatoia da Maestro della tastiera (associata a ⌘-⇧-D):
Per eliminare la riga in Xcode 10.1, seguire i passaggi dello screenshot seguente per aggiungere un tasto di scelta rapida.
So che questo thread è piuttosto vecchio ma ho trovato un'altra soluzione utilizzando BetterTouchTool , puoi eseguire la sequenza Ctrl+ A, Ctrl+ K, Ctrl+ Kin un collegamento configurando in questo modo in BTT:
(Utilizzare il pulsante di azione aggiuntiva Allega per aggiungere il secondo e il terzo collegamento)
PS: proveniente da Eclipse dove Cmd+ Dè la riga di eliminazione ^^
Fare triplo clic per selezionare l'intera riga, command-c per selezionare e command-v due volte per duplicarla. Non è una funzione Xcode, è solo una parte del sistema operativo.
Usa gli script utente.
Ci sono ancora script per spostare ed eliminare le righe. Devi definire i vincoli dei tasti per quegli script (menu Script -> Modifica script utente ... , in xCode 3.2).
Per duplicare la riga, devi creare il tuo script. Ma è molto semplice! Duplica lo script "Sposta riga in basso" e rimuovi la riga che elimina il testo selezionato:
delete (paragraphs startLine through endLine)
Siamo su Xcode 9.0 e le combinazioni di tasti non funzionano ancora. Sospiro.
Ho trovato questo contenuto molto utile, quindi ripubblicandolo qui per riferimento futuro:
/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>
Non è necessario modificare Xcode. Puoi semplicemente usare l'estensione Xcode Linex
La soluzione di damien.flament funziona alla grande e potrebbe essere necessario impostare l' output su "Discard Output", vedere l'immagine seguente
PS: non so come commentare la sua risposta.
Come detto sopra, chiudere XCode e inserire quanto segue ~/Library/Application Support/Xcode/Key Bindings/ <user>.pbxkeys
all'interno <dict>
nella <key>text</key>
sezione:
<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>
Avvia XCode e divertiti con CTRL- SHIFT- De CTRL- SHIFT- K.
Se si desidera CTRL- De CTRL- K, utilizzare invece ^d
e ^k
nelle definizioni chiave. Assicurarsi che non vi siano associazioni di chiavi duplicate nel file.
Funziona bene per me con XCode 3.2
Questo è possibile utilizzando BetterTouchTool . CMD + D duplicherà una riga. Crea un nuovo collegamento come questo:
Utilizzare il pulsante di azione aggiuntiva Allega per aggiungere il secondo e il terzo collegamento
Se hai già personalizzato le vostre combinazioni di tasti Xcode, dovrete modificare il file: ~/Library/Application Support/Xcode/Key Bindings/<user>.pbxkeys
. Basta aggiungere i due array (descritti sopra) al Root/text
dizionario.
XCodePlus plug-in per l'eliminazione della linea, è un XCode che lo fa per te. È arrivato preinstallato con il gestore pacchetti Alcatraz ...
Tuttavia, non esiste un modo integrato per duplicare le righe, a partire da Xcode 9. E le combinazioni di tasti personalizzate sembrano avere problemi.
Aggiornamento: Xcode 10.0 beta 6 (10L232m) è lo stesso.
Vai a questo indirizzo:
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet
e quindi copiare il file IDETextKeyBindingSet.plist in alcuni file, quindi aprire il file copiato e inserirlo
selectLine :, copia :, incolla :, incolla: come questa immagine inserisci qui la descrizione dell'immagine e salvala e sostituisci il file copiato in questo indirizzo /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet
quindi riavvia xcode, apri le prefetture xcode, vai alla scheda di associazione dei tasti, cerca una riga duplicata (personalizzata) e definisci un tasto breve come immagine qui sotto