Xcode 8에서 줄 삭제 키보드 단축키를 어떻게 만듭니 까? Xcode 3 솔루션이 더 이상 작동하지 않습니다.


80

이전 버전에서는 Xcode현재 줄을 삭제하는 키 바인딩을 만들 수있었습니다. 다른 솔루션이 있었고 예를 들어 여기에 설명되어 있습니다.

Xcode : 라인 핫키 삭제

Xcode 중복 / 삭제 라인

http://bigdiver.wordpress.com/2009/09/11/configure-homeend-key-bidings-on-mac-os-x/

http://www.betadesigns.co.uk/Blog/2010/02/03/custom-xcode-shortcuts/

모든 솔루션에는 다음 파일 중 하나를 수정하는 것이 포함됩니다.

~ / Library / Application Support / Xcode / Key Bindings / *. pbxkeys
~ / Library / KeyBindings / DefaultKeyBinding.dict
~ / Library / KeyBindings / PBKeyBinding.dict

의 기존 단축키에 대한 좋은 리소스 Xcode 4는 http://cocoasamurai.blogspot.com/2011/03/xcode-4-keyboard-shortcuts-now.html 입니다. 삭제와 관련하여 많은 목록이 있지만 "삭제 라인"에는 없습니다.

하지만, 이러한 솔루션은 않습니다 NOT 이후 일 Xcode 4.

업데이트 : 문제는 현재와 동일합니다.Xcode 5.1.1

업데이트 : 문제는 현재와 동일합니다.Xcode 6.1 GM Seed 2

업데이트 : 2016 년 4 월 26 일 현재 Xcode 버전 7.3 (7D175)에 계속 적용됩니다.

업데이트 : 6 년 후 Xcode 8.3에는 기본 제공 솔루션이 있습니다. 아래 답변을 참조하십시오.


그 동안 내가 가진 키보드 매크로 만들기로 결정 keyboardmaestro.com을 .
— Klaas

아래에 몇 가지 해결책이 있다고 생각합니다. 개인적으로 Keyboard Maestro 매크로를 사용하고 있습니다.
— Klaas

답변:


71

Xcode 8.3이 마침내 줄 삭제 명령을 추가 한 것 같습니다. :)

기본적으로 키보드 단축키가 지정되어 있지 않으므로 직접 추가해야합니다.

  1. Xcode > 환경 설정 > 키 바인딩을 엽니 다.
  2. 검색 Delete Line
  3. 키 열에 키보드 단축키 추가

Xcode 키 바인딩


1
와! 좋은 캐치! 이런 일이 일어날 것이라고는 결코 생각하지 못했습니다!
— Klaas

다른 것이 무엇인지 알아 낸 사람이 있습니까?
— Klaas

1
@Klaas 나도 사람, 이것을 볼 것이라고 결코 생각하지 못했습니다! 나는 Xcode 8.2.1과 Xcode 8.3.2 IDETextKeyBindingSet.plist파일 사이의 차이점을 실행했으며 발견 된 유일한 변경 사항은 위의 Delete Line 명령이었습니다. (
— Paulo Mattos

@FelixTurner 새로운 Xcode 베타 2를 아직 사용해 보셨습니까 ?
— Paulo Mattos

3
Xocde 9 Beta 에서 해결 방법을 찾았습니다 . 아래 내 대답을 참조하십시오. stackoverflow.com/a/45868495/1287336
— 김우성 김우성

95

여기 저기에서 많은 검색을 한 후 다음 솔루션을 찾았습니다.

control키를 길게 누른 다음를 누릅니다 AKK.

(참고 : 두 번째 K는 빈 줄을 삭제합니다).

실제로는 Move to Beginning of Paragraph& 라는 두 명령의 조합입니다 Delete to End of Paragraph. 다른 키 (들)를 사용 / 설정할 수도 있고 다른 명령 (예 : Move to Beginning of Line& )에 대한 키 바인딩을 사용 / 설정 / 변경할 수도 있습니다 Delete to End of Line. 위의 (기본) 키 바인딩을 나에게 적합하게 사용했습니다.

편집하다:

두 개 이상의 연속 된 줄 을 삭제하려면 먼저 control키를 누른 상태로 누른 다음 A(단지 단락 / 줄의 시작 부분으로 이동) 키를 누른 다음 K모든 줄이 삭제 될 때까지 누르고 있습니다 (커서가 시작).

그냥 (나를 위해) 쉬운 작업을 위해, 내가 설정 commandD을 위해 Delete to End of Paragraph및 home/ end단락의 / 끝을 시작으로 이동합니다.


2
좋은 솔루션이지만 정말 하나의 바로 가기를 찾고 있습니다. 예를 들어 TextWrangler에서 5 줄을 삭제하려면 cmd-d를 5 번만 누르면됩니다. 이상하게도 cmd-d가 Xcode에서 사용되지 않습니다 ...
— Klaas

@Klaas, 업데이트 된 답변을 참조하십시오. 그것은 당신이 기대하는 것이 아닐 수도 있지만 여전히 좋은 해결책입니다.
— Vasu

귀하의 답변이 약간의 찬성표를 받으면 Xcode 4에 곧 포함되지 않으므로 수락하겠습니다.
— Klaas

xCode는 끔찍합니다! -안드로이드 스튜디오를 사용하는 안드로이드 개발자.
— M'hamed

가장 긴 단축키는 CTRL + A + K + K로 현재 줄을 삭제합니다
— canbax

59

알았다! 이것은 XCode 4.3에서 4.5까지 작동하며 추가 응용 프로그램이 필요하지 않으며 XCode에 따라 다릅니다.

이 솔루션은 기본적으로 여기에 설명 된 Duplicate Line 명령과 동일 합니다 .

plist 파일 편집

/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist에 있습니다.

참고 :

  • 연결된 답변은 XCode를 사용하는 것을 제안하지만 XCode가 충돌한다는 것을 알았습니다.
  • 이 경로는 Lion 용이며 다른 OS 버전에 따라 다를 수 있습니다.
  • 이 파일을 편집하려면 sudo 또는 권한을 변경해야 할 수 있습니다.
  • 편집하기 전에 XCode 닫기

새 <dict>요소 추가

<dict>이 파일의 맨 아래에 있는 닫기 바로 위에이 텍스트를 추가 하십시오.

    <key>Custom</key>
    <dict>
      <key>Delete Current Line In One Hit</key>
      <string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string> 
    </dict>

참고 :

  • 이것은 기존의 내부 에 <dict>있기 때문에 </dict></plist>이후에
  • 이렇게하면 "한 번에 현재 줄 삭제"라는 명명 된 작업이 문자열의 세 가지 주요 작업에 연결됩니다. 나는 여기에서 올바른 조합을 얻기 위해 다양한 옵션을 가지고 놀았습니다. 예를 들어 moveToBeginningOfLine을 시도하는 경우 그 반대의 경우가 아니라 deleteToEndOfLine을 시도한 다음 빈 줄에서 사용하면 줄 과 다음 줄 전체 가 삭제 됩니다. 불쾌한

이것을 저장하고 XCode를 엽니 다.

XCode에서 새 키 바인딩 추가

연결된 답변 에서 스크린 샷을 보거나 다음을 수행하십시오.

  1. XCode 환경 설정 열기
  2. 키 바인딩 선택
  3. 모두 클릭
  4. SEarch 상자에 "Delete"를 입력하고 "Delete Current Line in One Hit"를 검색합니다.
  5. 새 바인딩을 추가하십시오.

이렇게해야하지만 한 가지주의 할 점이 있습니다. 새 바인딩 을 저장 하기 위해 XCode를 얻을 수 없습니다 . 내 해결 방법에는 약간의 차이가 있지만 동일한 문제가 여기 에 설명되어 있습니다 .

  1. 기본 바인딩의 복제본을 만듭니다 (바인딩 창의 왼쪽 하단에있는 + 버튼을 누르고 복제본을 만듭니다).
  2. 복제에 새 바인딩 설정
  3. 환경 설정 대화 상자를 닫으십시오 (변형입니다!).
  4. 환경 설정을 다시 열고 이전 복제본의 새 복제본을 만들고 이전 복제본을 삭제하십시오.

무슨 rigmarole, 응? 하지만 작동합니다. 이제 Lion의 XCode 4.3에서 현재 줄 전체를 삭제하도록 Ctrl + D를 매핑했습니다.


업데이트 :이 솔루션으로 짜증나는 것을 발견하게 된 한 가지 제한은 전체를 선택하더라도 한 번에 한 줄만 삭제한다는 것입니다. 내 자연스러운 경향은 3 줄을 선택하고 ctrl + D를 누르고 모두 지우는 것입니다.하지만 그렇지 않습니다.
— Rhubarb

새 버전의 XCode를 설치하는 경우 일반적인 키 바인딩 사용자 정의가 유지되는 반면 이것은 유지되지 않습니다. (이전 XCode.app의 이름을 바꾸고 새로 설치하여 "업그레이드"합니다.) 실제 키 바인딩은 ~ / Library ...에 있으므로 보존되지만이 새 항목은 아닙니다
— Rhubarb

네, 그것은 :) 즉 그것의 가치를 생각하는 다른 사람들을 격려 할 수 있도록 신경 엑스 코드 5에서 작동 및 바인딩 키를 저장
— RedYeti

@Rhubarb 해당 줄에서 텍스트를 선택하고 바로 가기를 눌러 한 번에 여러 줄을 삭제하려면 delete:명령 시퀀스 앞에 a 를 추가하면 됩니다 delete:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:.. 이것을 답변으로 편집하면 좋을 것입니다.
— Maic López Sáenz 2014 년

2
이것은 Xcode 6.2 (6C86e)에서 작동하며 Xcode가 키 바인딩을 "저장"하도록하는 해결 방법이 필요하지 않았습니다. 예이! :)
— Will Hains 2014

16

Xcode 9에 대한 임시 해결 방법을 찾았습니다 .

오픈 엑스 코드 / 내용 / 프레임 워크 / IDEKit.framework / 자원 / IDETextK eyBindingSet.plist을 아래 라인을 추가합니다.

제한된 지원으로 Xcode 8에서 발생하는 작업을 모방합니다. 한 줄만 지울 수 있지만 왠지 만족 해요. 이 문제가 곧 해결되기를 바랍니다.

<key>Customized</key>
<dict>
    <key>Delete Line</key>
    <string>moveToBeginningOfLine:, deleteToEndOfLine:, moveDown:, deleteBackward:</string>
</dict>

Xcode를 다시 시작하면 Key Bindings아래와 같이 사용자 정의 된 항목을 볼 수 있습니다.

여기에 이미지 설명 입력

바인딩하고 사용하십시오!

편집) 아래 하나가 원본보다 낫다고 생각합니다.

<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>

2
여기에 Xcode 9 정답이 있습니다. 그것은 엑스 코드 (9) 버전 9.0 (9A235)를 작동
— uspython

Xcode 9에서 왜 이것이 중단 되었습니까? 이것은 나를 위해 다소 일했습니다. 사용자 지정 키를 추가하는 대신 기존 Delete Line string 값의 값을 바꿔야했습니다.
— Alexander Smith

13

BetterTouchTool을 사용 합니다. 매우 멋집니다.

여기에 이미지 설명 입력


좋은 대안, plist 수정은 항상 좋은 것은 아닙니다. 설정을 잃어 버리기 쉽습니다 .Apple이 적합하게 만들 것입니다.
— Albert.Qing

문제를 해결하기위한 아주 좋은 대안. 불행히도 원자 적 동작이 아니므로 실행을 취소하려면 Cmd Z를 두 번 눌러야합니다 (두 번 삭제). 또한 창 관리자가 유용합니다 (Spectacle도 추천합니다).
— 루돌프 리얼

1
BTT는 모든면에서 멋진 도구입니다. 또한이 방법은 Apple이 원하는 작업을 수행하기 위해 결합 할 수있는 작업을 보유하고있는 한 꽤 미래의 증거입니다.
— SuperDuperTango

1
BTT 사용을 고려하지 않았습니다 (이미 사용하고 있습니다!). 앱 내부에서 편집하는 것보다 훨씬 낫습니다. 또한 컴퓨터간에 구성을 동기화 할 수 있습니다.
— Relequestual

9

Rhubarb 의 대답은 정확하고 작동하지만 한 가지는 plist 파일에 더 간단한 명령이 있다는 것입니다. 대황 의 모든 지침을 따르지만

대신에

<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>

아래에서 사용

<string>selectLine:, delete:</string>

이것은 더 명확하고 오작동 가능성을 버립니다.

나는 이것을 코멘트로 쓰고 싶지만, 나의 "평판"은 그것을 허용하지 않는다.


솔루션을 이 답변 과 혼합 하면 문제가 해결됩니다. 정말로 감사합니다
— marcelosalloum

8

이 시도:

  1. 먼저 Xcode-> Preferences 열기

  2. 주요 Bindigs 선택

  3. 검색 단락 삭제

  4. 삭제 단락 을 바로 가기로 변경

여기에 이미지 설명 입력


다른 사람들이이 간단한 솔루션을 사용하지 않는 이유를 모르겠습니다. 다른 것들은 훨씬 더 복잡하기 때문에 투표하십시오. 이것은 또한 당신이 그것을해야하는 방법입니다 : 키 바인딩을 통해
— 체크리스트

Delete ParagraphXcode 버전 9.0 (9A235)에서는 아무 일도 일어나지 않습니다 . Xcode 9에서 테스트 했습니까?
— Wooseong 김

2

Keyboard Maestro 사용자 인 경우 다음을 수행하는 매크로를 만듭니다.

  • Command 왼쪽 화살표
  • Shift 아래쪽 화살표
  • 지우다

Command-D에 할당했고 Xcode에서만 사용할 수 있도록했습니다.


Better Touch Tool을 사용하고 있으며 여기에서도 할당 할 수 있습니다.
— abc123

1

이제 XCode가 dict 파일과 비교하여 plist 파일을 사용하는 것처럼 보이며 새 형식은 키 바인딩에 여러 명령을 추가하는 것을 지원하지 않습니다. 또한 바인딩 할 사용자 지정 명령을 추가하는 방법도없는 것 같습니다. 내가 뭔가 작업을 얻기 위해 찾은 유일한 방법은 다음과 같은 별도의 조치에 대한 키 바인딩 설정입니다 ^D를 들어 deleteToEndOfLine:다음 ^L을 위해 moveToBeginningOfLine:당신을주고, ^L+^D당신에게 결합 된 효과를 제공 할 수 있습니다.


이를 처리하기위한 몇 가지 기본값이 이미 있습니다. ^ k는 "줄 끝까지 삭제", cmd-delete는 "줄 시작까지 삭제"입니다.
— Klaas

일반 (Global) keybindings.dict 파일에서 별도의 명령을 배열에 넣습니다.
— McUsr 2014

1

다른 앱에서 해당 키 바인딩을 사용하는 것이 괜찮다면 일반 Cocoa 키 바인딩에서 설정해 볼 수 있습니다. 이것은 설명 이 있습니다.


2
나는 이미 이것을 시도했지만 전역 키 바인딩은 XCode 4에서 작동하지 않습니다. TextMate에서 테스트했으며 거기에서 작동합니다. 그래서 저는 올바른 수정을했습니다.
— Klaas

1

지금은 할 수없는 것 같습니다 ... 내가 틀렸다면 자유롭게 수정하십시오 ...하지만 여기 내 새로운 해결책이 있습니다 ...

xcode 환경 설정으로 이동 한 다음 키 바인딩 탭으로 이동하십시오. 기본 세트를 복제하면 내가 제안한 제안이 사용할 것을 깨뜨릴 때 화를 내지 않을 것입니다.

인접 해 있고 사용하는 명령에 사용되지 않는 키 2 개를 찾으십시오 ... ";", " '"아마도. (나는 새 파일에 명령 n을 사용하지 않으므로 n, m을 선택했습니다)

첫 번째 키를 "Move to Begging of Line"으로 설정하고 두 번째 키를 "Delete to end of line"으로 설정합니다.

그런 다음 해당 시퀀스를 사용하여 줄을 삭제하십시오.

대체는 줄을 선택하기 위해 무언가를 설정 한 다음 삭제를 사용하십시오.



-1

첫 번째 열기 Xcode-> Preferences

주요 Bindigs 선택

그런 다음 삭제 검색

줄 끝 삭제 를 바로 가기로 변경하십시오 ( CMD + D 선호 ).

그게 다야다음은 스크린 샷입니다.


흠 ... 이것은 전체 줄을 삭제하지 않습니다.
— Klaas

줄의 시작 부분에 커서를 설정해야합니다
— LoGoCSE 2015 년

보통, 이것은 CTRL-K과 동일하다
— 클라스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.