EDIT: 12 de julho de 2020
Após a atualização para o Xcode 11.5 novamente, minha duplicate line
entrada de chave do plist
arquivo desapareceu. Eu tive que adicioná-lo novamente. A ligação das chaves ainda estava lá.
EDIT: Sep 17, 2019
Após a atualização para o Xcode 10.3 novamente, minha duplicate line
entrada de chave do plist
arquivo desapareceu. Eu tive que adicioná-lo novamente. A ligação das chaves ainda estava lá.
EDIT: 28 de maio de 2019
Após a atualização para o Xcode 10.2 novamente, minha duplicate line
entrada de chave do plist
arquivo desapareceu. Eu tive que adicioná-lo novamente. A ligação das chaves ainda estava lá.
EDIT: 23 de dezembro de 2018
Após a atualização para o Xcode 10.1, todos os meus atalhos foram interrompidos novamente. Mas algo diferente foi que, depois de atualizar o arquivo plist para duplicação de linha, não precisei definir minhas ligações de teclas, elas já estavam lá. Estranho.
EDIT: 14 DE OUTUBRO DE 2018
Xcode 10: Alguém na Apple adora copiar / colar e garante que, a cada versão da atualização do Xcode, a duplicação de linha seja removida da instalação de todos. Nós, desenvolvedores, ficamos extremamente frustrados com esse absurdo acontecendo no Xcode desde sempre, o único IDE sem opção de duplicação de linha. Acabei de atualizar para o Xcode 10 e, como você adivinhou, todas as minhas teclas de atalho são removidas juntamente com a funcionalidade de duplicação de linha. No entanto, é corrigível como na resposta original. Uma pequena diferença dessa vez é que você precisará da seguinte linha:
<key>Duplicate Current Line</key>
<string>selectLine:, copy:, moveToBeginningOfLine:, paste:, moveToEndOfLine:</string>
Edição: Xcode 9: Eu tive que refazer meus atalhos e duplicação e exclusão de linhas, mas o bom é que agora você pode editar IDETextKeyBindingSet.plist novamente. Esse cara da Apple deve estar de férias quando lançou esta versão.
EDIT: Xcode 8: Buggy, você não pode modificar o arquivo IDETextKeyBindingSet.plist. O Xcode redefine-o no início. Esse cara da Apple está realmente determinado a nos fazer usar copiar / colar em vez da duplicação simples de linha, como em todos os outros IDEs existentes.
EDIT: Xcode 7.1 e ainda não há atalhos para duplicação e exclusão de linhas. Este é o único IDE com o qual já trabalhei sem esses atalhos. E não consigo imaginar a vida de um desenvolvedor sem esses dois atalhos críticos.
Aqui está como isso pode ser feito:
Primeiro, precisamos modificar um arquivo plist que mora dentro do pacote Xcode.app (precisa do sudo para editar)
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
Em seguida, procure <key>Insertions and Indentations</key>
e, abaixo da <dict>
tag, adicione o seguinte:
<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>
Em seguida, encontre oe estes dentro da seção <key>Deletions</key>
sob a <dict>
tag:
<key>Delete Current Line</key>
<string>selectLine:, delete:</string>
<string>selectLine:, delete:</string>
Agora abra / reinicie o Xcode, vá para Preferências e vá para a guia "Key Bindings". Use a barra de pesquisa para filtrar e procurar os novos atalhos. Em seguida, clique na frente da descrição do atalho para atribuir a ele um atalho do seu agrado. Verifique se o seu atalho não está em conflito com os atalhos existentes.