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 4http://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 Paragraphhome/ 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.