Visual Studio Codeで正しいインデントでコピーして貼り付ける設定


94

Visual Studio Codeを使用してコードの一部をコピーして貼り付けると、Enterキーを押して新しい行を作成すると、次のようになります。

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

それは新しい行によって作成されたインデントを保持しているようで、その上にコピーされたスニペットから以前の情報を追加しています。私はむしろ、貼り付け時にコードが自動的に美化されることを望みます。

この動作は設定で変更できますか?

編集:私はクロスプラットフォームのコピー/貼り付けについてではなく、Visual Studio Codeの同じファイル内でのコピーと貼り付けについて言及しています。


a)ソースから最初の行のスペースをコピーしないでください。またはb)貼り付けるときに、カーソルが行の先頭にあることを確認してください。基本的に、VSCは単に「そのまま」そこに貼り付けます。
newBee 2017年

それで、設定を通じてそれを変更する方法はありませんか?
ティアゴ

テキストを強調表示して移動すると、ALT + Arrowkeyインデントが保持されます。設定を変更する代わりの方法をお探しの方。
Daniel Thompson

回答:


98

これは、vscodeに既に"editor.formatOnPaste": true設定のプロパティと統合されています。


12
残念ながら、これも貼り付けられたコードをフォーマットしますが、これは必ずしも必要なことではありません。
philraj 2018年

2
いいえ、同じではありません。長期にわたって存在する問題github.com/Microsoft/vscode/issues/6392がありますが、これはクローズされていますが、実際には解決されていません。コメントを参照してください。必要なのは、テキストのコピー元である初期レベルではなく、宛先/ターゲット行のインデントレベルを維持/一致させることだけ"editor.formatOnPaste": trueです。たとえば、PythonのPEP8などのフォーマットを実行しています。
ololobus

まあそれは私がそれをしたい方法で動作します。貼り付けたときにカーソルがある場所にコピーしたセクションを通過させたい
Dave Pile

2
VSCodeを除くすべてのテキストエディターでは、ユーザーは任意のテキストを3回クリックして強調表示できます。CTRL CでコピーしてからCTRL V、CTRL Vでコピーしたテキストを複製します。VSコードを除いて、トリプルクリックCTRL C CTRL Vでテキストが調整され、2番目のCTRL Vでさらに悪くなります。CTRL C CTRL Vが最も一般的なキーボードショートカットです。これは私の母も知っています。
NZ Dev

3
私はあなたの声明の残りの部分に同意するのと同じくらい、これは意見がありません。コピーと貼り付けは意見を持たないでください。コピーと貼り付けは一方向にしか機能しないはずです。
NZ Dev

41

このプラグインはあなたを助けるかもしれません:

貼り付けてインデントする拡張機能

ショートカットを変更するだけで機能します。Mac を使用している場合は、'cmd'代わりに使用することを'ctrl'お勧めします。このような:

{
    "key": "ctrl+v",
    "command": "pasteAndIndent.action",
    "when": "editorTextFocus && !editorReadonly"
},
{
    "key": "ctrl+v",
    "command": "editor.action.clipboardPasteAction",
    "when": "!editorTextFocus"
},
{
    "key": "ctrl+shift+v",
    "command": "editor.action.clipboardPasteAction",
    "when": "editorTextFocus && !editorReadonly"
}

9
これを使用して、Sublime Text 3の動作を再現します。cmd + shift + vで貼り付けインデント: { "key": "cmd+shift+v", "command": "pasteAndIndent.action", "when": "editorTextFocus && !editorReadonly" }
2017年

このソリューションはまだ機能します。コピー/貼り付けするたびにコードを挿入するのが嫌な余分なタブ対コードはもうありません。
ルミナス

6
それを見つけて、「キーボードショートカット」に移動し、画面の右上にある「キーボードショートカットJSONを開く」アイコンをクリックします。
マットフレッチャー

この拡張機能には大きな欠点があります。貼り付ける部分だけでなく、貼り付けるときにファイルコード全体をフォーマットします。アンインストールする必要がありました。
sdlins

keybindings.jsonJSONスニペットを追加する必要がある場所を見つけるには、「環境設定:コマンドパレットでキーボードショートカットを開く(JSON)」を検索します
Cornelius Roemer

13

Ctrl+にV続けてCtrl+をZ付けると、そのまま使用できます。


2
これは驚くほどうまくいきます。やらなければならないのは面倒ですが、何もしないよりはましです
Nate Beers

Cmd + VとCmd + Zを試しましたか?
フィリップ

Microsoft製品をそのままにして、コピーと貼り付けの処理に失敗する... OMG Linuxラップトップを使ってとてもうれしい...この回避策のおかげで
Scott Stensland

-3

簡単な修正は、コードをコピーした後でCtrl+ Shift+ + を試すVことです。インデントを含むすべてのコードを正しく貼り付けます。


これは機能しません。まったく同じです。これを試してください:段落を強調表示します-CTRL C、CTRL + SHFT + V、CTRL + SHFT + V。醜い!!!!!!
NZ Dev

「試してみる」は奇妙に聞こえます。それは正確に何をしますか?ユーザーがショートカットを変更した場合はどうなりますか?
Nico Haase
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.