988

What is the equivalent of Ctrl + K + F and Ctrl + K + D on Windows in Visual Studio for formatting, or "beautifying" code in the Visual Studio Code editor?

Baum mit Augen
50.3k25 gold badges152 silver badges187 bronze badges
asked Apr 30, 2015 at 16:43
3
  • 47
    For all those desperately trying to format XML (which seems not possible out of the box currently) you can achieve this by installing an extension. I have found XML Tools to get the job done just fine. Disclaimer: I am not the author nor related to this project... Commented Jun 1, 2016 at 21:32
  • While VSCode has much fewer menu options than VS (new trend?), it has extensive info and tutorials under the HELP menu, which may have answered this question. Commented Feb 17, 2017 at 9:23
  • For all those struggling to get the formatting work even after trying the valid combinations in Visual Studio Code, don't forget to select the appropriate programming language type, it is at the bottom right in visual studio code window next to that smiley. Once you do that I found it works out of the box and you don't need any additional plugin to format code. Commented Nov 16, 2017 at 6:04

29 Answers 29

5982

The code formatting is available in Visual Studio Code through the following shortcuts:

  • On Windows Shift + Alt + F
  • On Mac Shift + Option + F
  • On Linux Ctrl + Shift + I

Alternatively, you can find the shortcut, as well as other shortcuts, through the submenu View / Command Palette, also provided in the editor with Ctrl +Shift+ P (or Command + Shift + P on Mac), and then searching for format document.

For unsaved snippets

  1. Open command palette (Win: F1 or Ctrl+Shift+P)

  2. Find "Change Language Mode"

  3. Select language e.g. json. By now syntax should be highlighted.

  4. Format document (e.g. Open Command Palette -> "Format Document")

Unformat

  1. Select text
  2. Command Palette -> Join Lines

'Show the pics'

enter image description here enter image description here

Roland Kwee
5,3027 gold badges58 silver badges91 bronze badges
answered Apr 30, 2015 at 16:43
Sign up to request clarification or add additional context in comments.

24 Comments

Also note that the code Language has to be correct. ie Format Code won't be available if plain text is selected but switching to JSON (for example) will format the selected text happily. (as happy as a text editor can be anyway)
@JoSmo: On Ubuntu, I opened File > Preferences > Keyboard Shortcuts. There is an item for { "key": "ctrl+shift+i", "command": "editor.action.format", "when": "editorTextFocus" }. The command "ctrl+shift+i" works for me.
Also, apparently the file has to be saved to disk first. I had a chunk of HTML+Javascript where it couldn't format the JS, so I pasted it to a temporary window and set the language, but this didn't help either until it was saved.
For the people saying it doesn't work on a Mac, this looks like a conflict between the shortcut and the OS X text input system for accented characters which depends on your configured locale and keyboard settings: github.com/Microsoft/vscode/issues/8914#issuecomment-245947844
This doesn't work for me on VS Code latest version and win 10 does this assume having a certain extension installed?
|
603

Code Formatting Shortcut:

Visual Studio Code on Windows - Shift + Alt + F

Visual Studio Code on MacOS - Shift + Option + F

Visual Studio Code on Ubuntu - Ctrl + Shift + I

You can also customize this shortcut using a preference setting if needed.

Code Formatting While Saving the File:

Visual Studio Code allows the user to customize the default settings.

If you want to auto format your content while saving, add the below code snippet in the work space settings of Visual Studio Code.

Menu FilePreferencesWorkspace Settings

{
 // Controls if the editor should automatically format the line after typing
 "beautify.onSave": true,
 "editor.formatOnSave": true,
 // You can auto format any files based on the file extensions type.
 "beautify.JSfiles": [
 "js",
 "json",
 "jsbeautifyrc",
 "jshintrc",
 "ts"
 ]
}

Note: now you can auto format TypeScript files. Check my update.

Samuel RIGAUD
1,6981 gold badge19 silver badges28 bronze badges
answered May 25, 2016 at 6:25

12 Comments

not sure why it's different in CentOS, but it's Shift + Alt + I
beautify.onSave is not valid with the eslint extention installed
@ClintEeastwood try using prettier.singleQuote: true in your vs code settings.
Can't find 'Workplace Settings', just 'File' > 'Preferences' > 'Settings'.
@shaijut it is located at File --> Preference --> Settings and then under the search bar you see User then to the right it says Workspace
|
249
  1. Right click somewhere in the content area (text) for the file
  2. Select Format Document from the menu:
    • Windows: Alt+Shift+F
    • Linux: Alt+Shift+I
    • macOS: ++F

Enter image description here

Josh Correia
4,4003 gold badges42 silver badges67 bronze badges
answered Feb 13, 2018 at 10:34

2 Comments

For Linux the keyboard shortcuts are Ctlr + Shift + I
Thanks, this is helpful when my default formater is linked to a wrong one. You will saw an extra option "Format document with ..."
238

You can add a keybinding in menu FilePreferencesKeyboard shortcuts.

{ "key": "cmd+k cmd+d", "command": "editor.action.formatDocument" }

Or Visual Studio like:

{ "key": "ctrl+k ctrl+d", "command": "editor.action.formatDocument" }
Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered May 1, 2015 at 13:49

2 Comments

In Windows, replace cmd with ctrl - don't just blindly copy and paste like I did!
"editor.action.format" is working again. It now formats the whole document if nothing is selected, else formats the selection.
127

The right key combination is Shift + Alt + F.

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Jul 9, 2015 at 10:57

3 Comments

When you just copy&paste code from clipboard to a new tab, then nothing happens. Solution: Save the code to a file with a related file extension (e.g. *.json). Then it works. I suppose the reason is that the beautifyer knows the language from the extension and doesn't do an autodetect based on the code.
This shortcut works for MAC. In Windows it formats the code.
Shortcut keys are different for different operating systems, For Linux its Ctrl + Shift + I
84

Visual Studio Code 1.6.1 supports "Format On Save" which will automatically pick up relevant installed formatter extensions and format the whole document on each save.

Enable "Format On Save" by setting

"editor.formatOnSave": true

And there are available keyboard shortcuts (Visual Studio Code 1.7 and above):

Format the whole document: Shift + Alt + F

Format Selection only: Ctrl + K, Ctrl + F

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Oct 28, 2016 at 7:26

2 Comments

I suggest EsLint extension for VS Code marketplace.visualstudio.com/…
How can this be coupled with autosave? If I make an edit, then it has to be autosaved and autoformatted. I am not able to figure out how to do this is on VS code.
70

On Linux it is Ctrl + Shift + I.

On Windows it is Alt + Shift + F. Tested with HTML/CSS/JavaScript and Visual Studio Code 1.18.0.

For other languages, you might need to install a specific language package.

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Sep 11, 2015 at 8:36

Comments

67

For Fedora

  1. Click File -> Preferences -> Keyboard shortcuts.
  2. Under Default Keyboard Shortcuts, search (Ctrl + F) for editor.action.format.

Mine read "key": "ctrl+shift+i"

You can change it as well. Refer to this answer on how to... or if you are feeling a little lazy to scroll up:


You can add a keybinding in "Preferences->Keyboard shortcuts"

{ "key": "cmd+k cmd+d", "command": "editor.action.format" }

Or Visual Studio like:

{ "key": "ctrl+k ctrl+d", "command": "editor.action.format" }


Please note: cmd key is only for Macs. For Windows and Fedora (Windows keyboard) use Ctrl


EDIT:

As per Visual Code version 1.28.2 this is what I found.

editor.action.format no longer exists. It has now been replaced by editor.action.formatDocument and editor.action.formatSelection.

Type editor.action.format in the search box to view existing shortcuts.

To change the key combinations follow these steps:

  1. Click editor.action.formatDocument or editor.action.formatSelection
  2. A pen like icon appears to the left - click it.
  3. A pop-up appears. Press the desired key combination and press enter.
answered Aug 5, 2016 at 5:26

3 Comments

With this command,in my TypeScript files, single quote becomes double quote. How to solve that?
Can't seem to locate this in the new settings garbage UI.
@DioBrando, you might want to check the TypeScript formatting extension you use.
48

On Ubuntu it's Ctrl + Shift + I.

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Dec 13, 2015 at 6:57

1 Comment

I guess it depends on the language. CTRL + SHIFT + I works for JavaScript but not for PHP, for example.
45

Menu FilePreferencesSettings

"editor.formatOnType": true

When you enter the semicolon, it's going to be formatted.

Alternatively, you can also use "editor.formatOnSave": true.

rotgers
2,0601 gold badge16 silver badges25 bronze badges
answered Feb 1, 2018 at 6:52

2 Comments

oddly enough, i have found the behavior of this setting can be different than shift+alt+f in certain situations. don't know why though!
When I have this enable and I create a function in C#, I can complete the whole thing and move on yet the function isn't formatted until I do the "Format Document" feature. I don't know why the above setting doesn't format after typing a function.
37

Just right-click on the text and select "Format code".

Visual Studio Code uses js-beautify internally, but it lacks the ability to modify the style you wish to use. The extension "beautify" lets you add settings.

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Sep 30, 2016 at 11:15

2 Comments

Sure, I am using Windows and it works as described - it might depend on VScode version (please update!) and on file extension. Please test with HTML.
27

Shift + Alt + F does the job just fine in 1.17.2 and above.

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Oct 19, 2017 at 10:40

Comments

27

Formatting code in Visual Studio.

I have tried to format in Windows 8.

Just follow the screenshots below.

  1. Click on View on the top menu bar, and then click on Command Palette.

    Enter image description here

  2. Then a textbox would appear where we need type Format

    Shift + Alt + F

    Enter image description here

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Feb 9, 2018 at 9:03

1 Comment

Some times I copy paste xml into a new file and want to format it without saving the file. This is perfect for such situations!
26

For some reason Alt + Shift + F didn't work for me on Mac Visual Studio Code 1.3.1, and actually the command "Format Document" don't worked at all. But command Formatter worked very well.

So you can use Command + Shift + P and type Formatter or make your own shortcut in menu FilePreferencesKeyboard ShortcutsCommand + K Command + S then type Formatter and add your shortcut.

See an example:

Enter image description here

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Jun 30, 2017 at 8:28

Comments

25

In Visual Studio Code, Shift+Alt+F is doing what Ctrl+K+D is doing in Visual Studio.

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Jun 28, 2015 at 16:42

Comments

24

The simplest way I use in Visual Studio Code (Ubuntu) is:

Select the text which you want to format with the mouse.

Right click and choose "Format selection".

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered May 24, 2017 at 9:07

2 Comments

"Format selection" doesn't exist as option
@MartijnHiemstra I am using MAC , this option is there too . Which OS you are using ?
21

On Mac, Shift + Alt + F works for me.

You can always check the key bindings in the menu:

Menu FilePreferencesKeyboard Shortcuts and filter by keyword 'format'.

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Jan 8, 2018 at 10:06

1 Comment

On my M1 Mac, I don't see an alt key
20

The format shortcut in C# didn't work for me until I installed Mono for Mac OS X, DNVM and DNX.

Before I installed Mono, the auto-format shortcut (Shift + Alt + F) worked only for the .json files.

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Nov 2, 2015 at 14:18

1 Comment

In order to format C# one needs to install extensions. Normally omnisharp should work. However, there is a bug in omnisharp. Until the bug fixed we have to use Leopotam.csharpfixformat extension. It overrides omnisharp. After installing C# FixFormat extension I can format documents again.
16

While changing the default behavior for Visual Studio Code requires an extension, you may override the default behavior in the workspace or user level. It works for most of the supported languages (I can guarantee HTML, JavaScript, and C#).

Workspace level

Benefits

  • Does not require an extension
  • Can be shared among teams

Outcomes

  • .vscode/settings.json is created in the project root folder

How To?

  1. Go to: Menu FilePreferencesWorkspace Settings

  2. Add and save "editor.formatOnType": true to settings.json (which overrides default behavior for the project you work on by creating .vscode/settings.json file).

    How it looks

User environment level

Benefits

  • Does not requires extension
  • Personal development environment tweeking to rule them all (settings:))

Outcomes

  • User's settings.json is modified (see location by operating system below)

How To?

  1. Go to: menu FilePreferencesUser Settings

  2. Add or change the value of "editor.formatOnType": false to "editor.formatOnType": true in the user settings.json

Your Visual Studio Code user's settings.json location is:

Settings file locations depending on your platform, the user settings file is located here:

  • Windows: %APPDATA%\Code\User\settings.json
  • Mac: $HOME/Library/Application Support/Code/User/settings.json
  • Linux: $HOME/.config/Code/User/settings.json The workspace setting file is located under the .vscode folder in your project.

More details may be found here.

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Sep 8, 2016 at 8:13

2 Comments

But what is the consequence? How will it actually work after the change? Will it immediately / automatically change the formatting as something is typed? Also at paste?
@PeterMortensen Simply try it out and comment the answer
10

Select the text, right click on the selection, and select the option "command palette":

Enter image description here

A new window opens. Search for "format" and select the option which has formatting as per the requirement.

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Jan 18, 2018 at 7:47

Comments

10

By default, this key was not working for me on HTML, CSS, and JavaScript documents.

After searching, I found the popular plugin JS-CSS-HTML Formatter with 133,796 installs.

After installation, just reload the windows and hit Ctrl + Shift + F, and it works!

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Jan 9, 2017 at 18:16

4 Comments

Yeah, but only 2 out of 5 stars? Seriously?
Just a reminder: this answer was originally written in 2017 and that time VS Code functionality was pretty much functional via plugins or other hacks, none of other solutions worked for me that time so I discover it by myself which actually worked that time and did not cared how many stars it have :-) Now 2020 and formatting support is fantastic out of the box.
I don't think VS Code yet supports formatting CSS out of the box. I installed the Prettier plugin (prettier.io) which handles JavaScript, TypeScript, Flow, JSX, JSON, CSS, SCSS, Less, HTML, Vue, Angular, GraphQL, Markdown, YAML. 5.6 million installs and 4 stars.
I am glad that you found prettier :P Formatting support is there but not good as prettier, I use prettier as dev-dependency in my all projects with .prettierrc and plugin. I am afraid that one day prettier will merge into vs-code :)
9

Just install Visual Studio Keymap (Visual Studio Keymap for Visual Studio Code) by Microsoft. Problem Solved. :p

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Jan 23, 2017 at 15:41

Comments

8

You have to install the appropriate plug-in first (i.e., XML, C#, etc.).

Formatting won't become available until you've installed the relevant plugin, and saved the file with an appropriate extension.

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Sep 8, 2016 at 20:34

3 Comments

Beautify asks you if it doesn't know which formatter to use, allowing one to style cshtml.
As this is the only answer that addresses the question many people looking for formatting C#, PHP, CSS, and other languages in Visual Studio Code have, it deserves more comprehensive content. (The question they have is: "Why doesn't this work???? All the answers here claim it does!")
I think the content should be in this answer (as an answer to a (locked) canonical question), but a possible solution for C# is in Visual Studio Code doesn't format C# code
8

For those that want to customize what JavaScript files to format, you can use the any extension on the JSfiles property. The same applies to HTML.

{
 "beautify.onSave": true,
 "beautify.JSfiles": ["js", "json", "jsbeautifyrc", "jshintrc", "ts"],
 "beautify.HTMLfiles": ["htm", "html"]
}

This will enable beautify on save for TypeScript, and you can add in XML to the HTML option.

Gama11
34.6k9 gold badges92 silver badges107 bronze badges
answered Sep 3, 2016 at 21:54

3 Comments

Where do I put this? It also helps to add that beautify is an extension...
You could have mentioned where to put this code.
@gromit190 You should put it in the settings.json. Open the Command Palette (Windows: Ctrl+Shift+P. Mac: Cmd+Shift+P), and then enter 'Open Settings (JSON)'.
7

In Mac, use +K and then +F.

Mwiza
9,3293 gold badges53 silver badges44 bronze badges
answered Jun 14, 2017 at 11:54

1 Comment

Works! But before doing this, I changed the language to JSON from Plain Text using the status bar in the bottom right-hand corner.
7

Visual Studio Code on Linux:

Ctrl + [ to unindent block of code and

Ctrl + ] to make a mass indentation

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Sep 20, 2016 at 14:43

Comments

6

If you want to custom the style of format-document, you should use Beautify extention.

Refer to this screenshot:

img

answered Nov 1, 2017 at 9:35

Comments

6

Not this one. Use this:

Menu FilePreferencesWorkspace Settings, "editor.formatOnType": true

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Jul 27, 2016 at 3:37

1 Comment

Not this one what? Are you referring to another answer? If yes, which one?
1

Use extension...

Enables auto formatting of the code when you save a file.

Launch Visual Studio Code and Quick Open (Ctrl + P), paste the following command, and press Enter.

ext install format-on-save

https://marketplace.visualstudio.com/items?itemName=gyuha.format-on-save

Peter Mortensen
31.4k22 gold badges110 silver badges134 bronze badges
answered Aug 17, 2016 at 7:44

1 Comment

link is dead- extension 404?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.