Eclipseから来て、常に行を複製するために使用されてきたので、Xcodeにそのような機能がないことを知るのはかなり奇妙です。それともそうですか?
システム全体のキーバインディングを変更することは可能ですが、それは私が求めていることではありません。
Eclipseから来て、常に行を複製するために使用されてきたので、Xcodeにそのような機能がないことを知るのはかなり奇妙です。それともそうですか?
システム全体のキーバインディングを変更することは可能ですが、それは私が求めていることではありません。
行を削除するには: Ctrl-A行の先頭に移動し、次にCtrl-K行を削除し、もう一度Ctrl-K空の行を削除します。(私はXcodeをあまり使用しませんが、EmacsやEmacsのようなバインディングを持つ他のテキスト入力でそれに慣れており、Xcodeでも機能するようです。)
そして、行を複製するには:そのためのコマンドを持っている多くのプログラムを知りませんが、通常はコピー+貼り付けを使用します-XcodeではCUAのようです: Ctrl+A行の先頭に移動し、Shift+↓</kbd>を選択しますそれ、コマンド+Cでコピーし、コマンド+ *Vで2回貼り付けます(1回は行をオーバーライドし、もう1回は追加します)。
(テキストを常に入力および編集し、多くの場合、さまざまなプログラムで、テキスト入力を少し修正しているときにダムウィジェットで気を散らさなければならないことに腹を立てて、これらのシーケンスを覚えるのを避けられない人からと習慣)
全体のポイントは、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
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]を開きます。マクロを見つけて、ショートキーを定義します。
キーバインディングソリューションを試しましたが、機能させることができませんでした。ただし、XCodeキーバインディングの編集は魅力のように機能します。これが私がそれを作った方法です。
このソリューションはクリップボードの内容を変更しません!
XCodeキーバインディングを開きます。
[ユーザースクリプトの編集]ダイアログで:
重複ラインナップ:
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
OK、これでしばらく動作していましたが、突然壊れました。ここでさまざまな投稿を組み合わせて、XCode 6.3.1 で機能するソリューションを見つけました。
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/
Finder で移動します。
Resources という名前のフォルダーを見つけます。それを右クリックし、[情報を見る] を押して、共有とアクセス許可の設定のロックを解除し (ロックを押して)、すべての読み取りと書き込みに設定します。
フォルダーに入り、ファイル IDETextKeyBindingSet.plist を見つけます。それを右クリックし、[情報を見る] を押して、共有とアクセス許可の設定のロックを解除し (ロックを押して)、すべての読み取りと書き込みに設定します。
XCode でファイルを開く (デフォルト)
削除を見つけ、右クリックして新しい行を追加します。たとえば、行の削除などの名前を付けます。値フィールドに次のように入力しますselectLine:, deleteBackward:
。(これは、重複行に対しても実行できますselectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward:
:)
Xcode 4 ではキー バインドを使用してこれを実装するのが難しいため、Keyboard Maestroを使用することにしました( Quickeysもうまく機能するはずですが、Lion と完全に互換性があるわけではありません)。たとえば、これが私の Keyboard Maestro ショートカット (⌘-⇧-D にバインド) です。
このスレッドがかなり古いことは知っていますが、BetterTouchTool を使用して別の解決策を見つけました。BTTで次のように構成することにより、1 つのショートカットでCtrl+ A、Ctrl+ K、Ctrl+シーケンスを実行できます。K
([追加アクションの添付] ボタンを使用して、2 番目と 3 番目のショートカットを追加します)
CmdPS: +が削除行である Eclipse から来ていDます ^^
ユーザー スクリプトを使用します。
行を移動および削除するスクリプトはまだあります。これらのスクリプトのキー バインドを定義する必要があります ( xCode 3.2 では、メニュースクリプト->ユーザー スクリプトの編集... )。
行を複製するには、独自のスクリプトを作成する必要があります。しかし、それは非常に簡単です!「行を下に移動」スクリプトを複製し、選択したテキストを削除する行を削除します。
delete (paragraphs startLine through endLine)
トリプルクリックして行全体を選択し、command-cで選択し、command-vを2回クリックして複製します。これはXcode関数ではなく、OSの一部にすぎません。
ここにXCode4行の重複の解決策があります
plist に行の削除も追加しました。
<key>Remove Line</key>
<string>selectLine:, deleteBackward:</string>
Xcode を変更する必要はありません。Xcode拡張Linexを使用するだけです
上記のように、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で問題なく動作します
damien.flamentによるソリューションはうまく機能し、出力を「出力の破棄」に設定する必要がある場合があります。下の写真を参照してください
PS:彼の答えにコメントする方法がわかりません。
これは、BetterTouchToolを使用して可能です。CMD+D は行を複製します。次のような新しいショートカットを作成します。
追加アクション ボタンの添付を使用して、2 番目と 3 番目のショートカットを追加します。
Xcode のキー バインディングを既にカスタマイズしている場合は、次のファイルを編集する必要があります~/Library/Application Support/Xcode/Key Bindings/<user>.pbxkeys
。2 つの配列 (上記) をRoot/text
ディクショナリに追加するだけです。
Xcode 6.1の場合、Xcode> Preferences> KeyBindings> Textに移動し、「行末まで削除」があり、必要なキーを割り当てます。
Xcode 9の時点で、行を複製する組み込みの方法はまだありません。また、カスタムキーバインディングには問題があるようです。
更新: Xcode 10.0 ベータ 6 (10L232m) は同じです。