129

Eclipseから来て、常に行を複製するために使用されてきたので、Xcodeにそのような機能がないことを知るのはかなり奇妙です。それともそうですか?

システム全体のキーバインディングを変更することは可能ですが、それは私が求めていることではありません。

4

22 に答える 22

110

行を削除するにはCtrl-A行の先頭に移動し、次にCtrl-K行を削除し、もう一度Ctrl-K空の行を削除します。(私はXcodeをあまり使用しませんが、EmacsやEmacsのようなバインディングを持つ他のテキスト入力でそれに慣れており、Xcodeでも機能するようです。)

そして、行を複製するには:そのためのコマンドを持っている多くのプログラムを知りませんが、通常はコピー+貼り付けを使用します-XcodeではCUAのようです: Ctrl+A行の先頭に移動し、Shift+↓</kbd>を選択しますそれ、コマンド+Cでコピーし、コマンド+ *Vで2回貼り付けます(1回は行をオーバーライドし、もう1回は追加します)。

(テキストを常に入力および編集し、多くの場合、さまざまなプログラムで、テキスト入力を少し修正しているときにダムウィジェットで気を散らさなければならないことに腹を立てて、これらのシーケンスを覚えるのを避けられない人からと習慣)

于 2009-02-15T18:50:33.810 に答える
92

全体のポイントは、Cmd-C/Cmd-Vショートカットを使用しないことです。IntelliJ からも同じ問題が発生しています。行を複製しCmd-Dて削除できるCmd-Yので、時間を大幅に節約できます。

それ以来、私を悩ませてきました。ただし、他の誰かが機能する解決策を見つけたようです。

要するに、~/Library/KeyBindings/PBKeyBinding.dict次の内容のファイルを作成し、Xcode を再起動します。

{
    "^$K" = (
        "selectLine:",
        "cut:"
    );

    "^$D" = (
        "selectLine:",
        "copy:",
        "moveToEndOfLine:",
        "insertNewline:",
        "paste:",
        "deleteBackward:"
    );
}

これにより、2 つのショートカットが作成されます。 Ctrl- Shift-K現在の行を削除するためのショートカットと、 Ctrl- Shift-現在の行Dを複製するためのショートカットです。これは、Xcode で設定されたカスタム キー バインディングを使用していない場合にのみ機能することに注意してください。「XCode Default」に切り替えると、動作するはずです。Snow Leopard の XCode 3.2 でテスト済み。

Mac OS X キー バインドの詳細: http://funkworks.blogspot.it/2013/03/republishing-of-wwwerasetotheleftcompos.html

于 2009-10-04T14:08:14.383 に答える
77

eclipse CTRL+のような行を削除しますD(Xcode 4.5.1でテスト済み):

まず、これらの権利を変更します。

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

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

Xcodeで開き/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist、次の新しいエントリを追加します。

deleteToBeginningOfLine:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToBeginningOfLine:

ここに画像の説明を入力してください

Xcodeを再起動し、[Xcode]>[設定]>[KeyBindings]を開きます。マクロを見つけて、ショートキーを定義します。

ここに画像の説明を入力してください

于 2012-10-24T12:50:47.980 に答える
9

キーバインディングソリューションを試しましたが、機能させることができませんでした。ただし、XCodeキーバインディングの編集は魅力のように機能します。これが私がそれを作った方法です。

このソリューションはクリップボードの内容を変更しません!

XCodeキーバインディングを開きます。

代替テキスト

[ユーザースクリプトの編集]ダイアログで:

  1. 「MoveLineDown」スクリプトを複製し、名前を変更します
  2. 「MoveLineDown.scpt」ファイルを複製し、スクリプトの名前を変更し、スクリプトエディターで(ダブルクリック)してファイルを選択します
  3. スクリプトを編集し(「AppleScriptEditor」を開きます)、「delete(段落startLineからendLine)」のパッセージを削除します。
  4. XCodeを再起動したくない場合は、スクリプトを削除して再度追加する必要があるようです。「出力」が「出力の破棄」に設定されていることを確認してください。設定されていない場合、ソースファイルに「(null)」が含まれます。
  5. スクリプトをもう少し変更して、正しい行を選択しました。

重複ラインナップ:

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

重複ラインダウン:

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

代替テキスト

于 2010-10-27T10:13:33.080 に答える
7

OK、これでしばらく動作していましたが、突然壊れました。ここでさまざまな投稿を組み合わせて、XCode 6.3.1 で機能するソリューションを見つけました。

  1. /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Finder で移動します。

  2. Resources という名前のフォルダーを見つけます。それを右クリックし、[情報を見る] を押して、共有とアクセス許可の設定のロックを解除し (ロックを押して)、すべての読み取りと書き込みに設定します。

  3. フォルダーに入り、ファイル IDETextKeyBindingSet.plist を見つけます。それを右クリックし、[情報を見る] を押して、共有とアクセス許可の設定のロックを解除し (ロックを押して)、すべての読み取りと書き込みに設定します。

  4. XCode でファイルを開く (デフォルト)

  5. 削除を見つけ、右クリックして新しい行を追加します。たとえば、行の削除などの名前を付けます。値フィールドに次のように入力しますselectLine:, deleteBackward:。(これは、重複行に対しても実行できますselectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward::)

  1. XCode を起動し、設定/キーバインドに移動して、Delete Line を検索します。ショートカットを設定します。楽しみ。
于 2015-05-21T13:09:07.143 に答える
7

Xcode 10.1 で行を削除するには、以下のスクリーンショットの手順に従ってショートカット キーを追加してください。

ここに画像の説明を入力

于 2018-11-29T11:37:28.187 に答える
6

Xcode 4 ではキー バインドを使用してこれを実装するのが難しいため、Keyboard Maestroを使用することにしました( Quickeysもうまく機能するはずですが、Lion と完全に互換性があるわけではありません)。たとえば、これが私の Keyboard Maestro ショートカット (⌘-⇧-D にバインド) です。

http://bit.ly/thC6yf

于 2011-11-20T17:06:43.863 に答える
5

このスレッドがかなり古いことは知っていますが、BetterTouchTool を使用して別の解決策を見つけました。BTTで次のように構成することにより、1 つのショートカットでCtrl+ ACtrl+ KCtrl+シーケンスを実行できます。K

ここに画像の説明を入力

([追加アクションの添付] ボタンを使用して、2 番目と 3 番目のショートカットを追加します)

CmdPS: +が削除行である Eclipse から来ていDます ^^

于 2015-02-18T23:12:38.687 に答える
4

ユーザー スクリプトを使用します。

行を移動および削除するスクリプトはまだあります。これらのスクリプトのキー バインドを定義する必要があります ( xCode 3.2 では、メニュースクリプト->ユーザー スクリプトの編集... )。

行を複製するには、独自のスクリプトを作成する必要があります。しかし、それは非常に簡単です!「行を下に移動」スクリプトを複製し、選択したテキストを削除する行を削除します。

delete (paragraphs startLine through endLine)
于 2010-08-22T07:03:03.633 に答える
3

トリプルクリックして行全体を選択し、command-cで選択し、command-vを2回クリックして複製します。これはXcode関数ではなく、OSの一部にすぎません。

于 2009-02-15T18:46:18.830 に答える
3

ここにXCode4行の重複の解決策があります

plist に行の削除も追加しました。

<key>Remove Line</key> <string>selectLine:, deleteBackward:</string>

于 2012-04-27T09:07:26.017 に答える
3

Xcode を変更する必要はありません。Xcode拡張Linexを使用するだけです

ここに画像の説明を入力

于 2017-10-20T15:05:58.143 に答える
2

上記のように、XCodeを閉じ て、セクション~/Library/Application Support/Xcode/Key Bindings/ <user>.pbxkeysの内側<dict>に次のように挿入します。<key>text</key>

    <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>

XCodeを起動して、----と----をCTRLお楽しみください。-と- が必要な場合は、代わりにキー定義でとを使用してください。ファイルに重複するキーバインディングがないことを確認してください。SHIFTDCTRLSHIFTK
CTRLDCTRLK^d^k

XCode3.2で問題なく動作します

于 2012-01-15T09:48:07.600 に答える
2

damien.flamentによるソリューションはうまく機能し、出力を「出力の破棄」に設定する必要がある場合があります。下の写真を参照してください

ユーザースクリプト設定

PS:彼の答えにコメントする方法がわかりません。

于 2010-08-25T09:48:38.667 に答える
2

これは、BetterTouchToolを使用して可能です。CMD+D は行を複製します。次のような新しいショートカットを作成します。

ここに画像の説明を入力

追加アクション ボタンの添付を使用して、2 番目と 3 番目のショートカットを追加します。

于 2015-10-28T09:03:01.003 に答える
1

Xcode のキー バインディングを既にカスタマイズしている場合は、次のファイルを編集する必要があります~/Library/Application Support/Xcode/Key Bindings/<user>.pbxkeys。2 つの配列 (上記) をRoot/textディクショナリに追加するだけです。

于 2010-06-16T19:14:37.570 に答える
0

Xcode 6.1の場合、Xcode> Preferences> KeyBindings> Textに移動し、「行末まで削除」があり、必要なキーを割り当てます。

于 2015-01-17T22:58:48.290 に答える
0

Xcode 9の時点で、行を複製する組み込みの方法はまだありません。また、カスタムキーバインディングには問題があるようです。

更新: Xcode 10.0 ベータ 6 (10L232m) は同じです。

于 2017-10-17T12:37:56.610 に答える