179 comments

[ 4.5 ms ] story [ 203 ms ] thread
CSS completions in HTML, I was waiting for that one (for Polymer projects).
Intellisense for script tags in HTML still not working though...
Microsoft and TypeScript team are doing amazing work with this editor! There are so many interesting features in it, gave it a shot few weeks ago and was really satisfied. And it is probably the first electron app that didn't feel like rest of the bunch, that are pretty much hogs and not very responsive (especially when we talk about editors and IDEs).

But you know, I can't hang Emacs and Vim on the wall and leave them there. It just got so much under my skin, and I got so much used to them that using GUI editor after few years of them just feels odd. And I use them for 5 years. I can't imagine how it is for people that used them for 20+ years...

I've been using the Vim extension for quite a while and it's become fairly robust. I think it bests jVi in Netbeans.
Which vim extension in particular?
Not GP but probably VSCodeVim
(comment deleted)
Does it support visual block mode now?
VSCodeVim does support visual block mode.
>But you know, I can't hang Emacs and Vim on the wall and leave them there.

I never got the hang of Emacs, but there is a decent vim extension (there are a bunch) called vimStyle which at least gets you the vim-like code navigation.

I had really hard time for 3 months (after using vim for 4 years). I just uninstalled everything else, and first week was painful, but it was really fun since I wanted to learn Lisp/Scheme, so I touched ELisp while playing/tweaking with emacs. After that I just couldn't go back to Vim. I started tweaking and digging. The point of Emacs is that you can make it be whatever you want. It can be both amazingly ugly and beautiful, minimal or heavy like an OS. In the end, what kept me on Emacs to be sincere was auto indentation and perfect completion system. I always had to tweak and fix those things in Vim. In Emacs, nothing, I just write code (yeah, navigating code in Vim is faster, but Emacs has some really neat ides like rectangles).
Since you used vim for 4 years, why didn't you add evil to emacs?
It's not the same. Close but no.
Good question. I dare to say EVIL is best Vim alternative. It's 98% percent there. But it felt wrong using Vim in Emacs. Then I wasn't using Vim nor Emacs, because I would mix commands from both (sometimes I would use C-s sometimes /?). So I told myself, if I felt comfortable using Vim, then why don't I try and learn Emacs so I can be comfortable in it too? And now after 6 months in Emacs I got to that standard productivity point in terms of navigating and chunking out the code. But the best aspect of Emacs for me personaly is, I want to do something with text, I just select it, press M-x, enter the word(noun,verb of thing I want to do with it) press TAB, see list of available commands and voila! It amazes me how many options there are in Emacs! Wonderful really!
I feel you... I use some unholy abomination of Emacs, Vim, and Spacemacs. Sometimes based on convenience, but mostly based on what I learned first.
Using Helm is a joy, you will be able to find commands much easier than the vanilla Emacs completion system. Give it a try, I consider it essential now, and the fuzzy matching saves me daily.
Hmm. Emacs' indentation is one of the things I've had to fight hardest. It's extremely opinionated, and it's almost always wrong for each new language I teach it about, and it took a lot of convincing to indent C and Java the way I want.

The way it defaulted to using smart fill (i.e. use indent div 8 tabs followed by indent mod 8 spaces), so that indentation had this mix of indent and spaces, gah.

It's bad enough that I wrote my own plain non-smart auto-indent (just replicate indent of previous line) to get by in modes I couldn't convince to be sane.

The fact that there is no real unification for your preferred indentation step is really telling. I have a big block configuring c-basic-offset, js-indent-level, css-indent-offset, etc. - a big random bag of different variables that affect different subsets of language modes, depending on their lineage.

I use Emacs for languages I work continuously in and have strong (or am forming) opinions about. Willing to invest 1-2 hrs configuring. Save it in a git repo.

Not everyone share's preferences (tabs, spaces, etc.) across languages. Maybe I'm crazy but I use 2 vs 4 in different languages.

If I'm just trying a language out for the first time, I find it much easier to use vscode + vim plugin + language plugin to try something out.

But then you have to update your settings every time you collaborate on a different project with different opinions about indenting. The right way would be for emacs to simply respect the project's .editorconfig file like any other editor does, but I can't for the life of me make emacs open JavaScript files and set up indentation properly with editorconfig. It totally defeats the purpose...
Pretty much the same story here. Used Vim for years and even read a couple of the books out there on it, but I was always running into annoying little issues that drove to me to try Emacs. I stuck with Emacs for probably 2 months and ran back to Vim because I just didn't dive into it (learning elisp is crucial!). Fast forward maybe a year and I was ready to give Emacs another try. Once I overcame the initial hump, I was sold on Emacs. I still enjoy the Vi/m keybindings and use them in Firefox or the odd time I use Sublime. I haven't found anything close in Emacs to the concept of word-objects like in Vim: nothing beats the ease of doing "ci(", but I'll live without it.
Took me a while, but finally got the hang of it.
I've been using it since 1.2 and it works nicely. Very stable.
what would something 10x better than vim/emacs/vscode look like ?
Isn't there a point of diminishing returns there? Also, isn't that a bit subjective? I'm glad VS Code exists, because it helps push other projects to be better.
Well done, Microsoft!

So many new features again. Always happy to update and read the change log.

Code is the first editor I've used that might actually replace Notepad++ as my always-open-editor-used-for-absolutely-everything.
keep these updates coming, it's a truly beautiful product. At times it makes me feel I should switch off Emacs for go/node development due to it's debugging being so nice versus using something like delv.
Upvote when I see this, visual studio code is just awesome and makes me much more productive ( on Windows)

I think there has to happen a lot when a version release won't make it to the front page :p

I've been using VSC since June-ish and I couldnt be happier. I never used Sublime (Atom was my go-to before VSC), but I don't think I'll be switching to another editor for a long time. Love the nodejs debugging too, and obviously the non-atom-like performance ;)
I still prefer using the free edition of VS2015. Maybe too stuck in my ways.
Ugh, Visual Studio != Visual Studio Code!

Edit: My bad. Felt weird comparing VS to VSC, so that's the source of my confusion.

I think that's what he's saying.
I have no idea why anyone would prefer VS Code for C++ or C#/.NET work on Windows. For everything else, Visual Studio has never been particularly great.
I think a strong pull for it is its node debugger. At least for me. I'm not building giant C++ libraries (or however you C/C++/C# folks do) so it's just the right weight for what I do.

Last time I tried to install Visual Studio it was like 9gbs for the core.

VS 15 let you pare that down upon initial install. A services dev doesn't need a WPF or Winforms editor.
Visual Studio Code really shines on Mac and Linux where there is no VS2015 available
I'm really surprised by just how polished and fast Code is. It's like Atom but better in almost every regard with the exception of plugins available. Highly recommended.
I wonder if this could be a reason so many comments mention better speed than atom.

Couple of months ago I've wiped out all extra plugins in atom and installed just ones I'm really using. Atom became much more responsive, very noticeable difference.

The combo of Typescript and VS Code is really well done. Transitioning from JS to TS is well supported by documentation, IDE integration and language design.

Apple once made people very happy when they adapted things and workflows that are important to Unix users. Now they're drifting away from that. Microsoft is going in the opposite direction and seems to listen to what developers really would like to see.

Yes. With TS2 the type gathering is much easier, but there are still many libs out there with outdated type definitions or none at all.

They got this "allowJs" flag, which I found a good idea, but I never got it to work.

I recently switch from atom, but the one thing I hate is that it doesn't save open files or folders between runs
It does (or maybe it is 'Project Manager' extension). Try it out.
Tried Project Manager, useful but didn't keep the folder open :(. And I checked my settings, I have "window.reopenFolders": "all"
It does for me. I'm not using any particular extension.
That's weird, it does for me if if I don't crash. I remember specifically closing and reopening when I have my files just right so that they'd still be like that if it crashed lol.
When MS gets into something, they really get into it.

VS Code has exceeded pretty much all my expectations with the pace it has been progressing at.

The biggest thing for me has been the consistency. They already had an amazing IDE (Visual Studio), then they buckled down and made an amazing paired-down version (VSCode). It works well, does all the things I'd want and then some.

Compare to Google releasing a chat client / message handler (google voice app), another one (hangouts), taking away functionality (removing shared sms/hangouts convos), then releasing two more chat apps (allo/duo). Or countless other occasions they've done this.

I was just thinking today after yesterday's HN thread on the new Macbook and "everything wrong with it." People were complaining that nobody can really match the build quality of Apple, which is a shame because it'd be great to have a windows / linux device with high build quality (that isn't hacky). Imagine if Microsoft put their weight behind manufacturing a dope laptop like Google has been trying to do with the Pixel phone?

What about the Surface Book?
the surface book is getting there but it still crashes occasionally when disconnecting the screen. not build quality per se but definitely not apple-like
I’ve had a Surface Book for five months or so and used it heavily, detatching it quite commonly; I’ve had it BSOD from detaching the screen once, 22 days ago. But I’m in the Insider Preview so I’m using pre-release software, so my experience is not necessarily representative. (It could plausibly crash more or less commonly.)

But on the build quality thing: I got a Surface Book because, as David said concerning the sword of Goliath, there is none like it. It’s not just build quality (which is really solid), it’s also the touchscreen and pen input and detachability.

Or the Surface Pro for that matter.
Regarding Linux... the Surface Book (and Pro) are rather unique devices, as far as hardware is concerned. You loose a lot of core functionality if you run anything except Windows on them. I've tried.

If you want a strictly Windows-only device, they're not bad. (Buggy drivers aside.) The N-trig stylus technology is absolutely amazing if you do graphic design. But if you want to dual boot into Linux, you'll be happier with a more traditional laptop.

To be honest, I tried both a Surface Pro 3 and a Surface Book as my primary laptop. In the end, I keep going back to my 2012 MacBook Air. At least for me, Apple still has an edge in overall experience.

If you do graphic design, you may not want N-trig styluses. The biggest drawback of their system is that it requires a certain, higher amount of pressure to register a stroke—higher than the Wacom or Apple Stylus counterparts.

See https://www.reddit.com/r/Surface/comments/3ttia5/sp4_pen_not... and how people seemed considerably more happy with the Wacom technology in the Surface 1, than the N-trig with the latter iterations of Surface tablets.

Tried that this week in a shop after the week Apple announcement. I think although it's very cool as a laptop it didn't beat the old Macbooks for me: Downsides were the thick & heavy screen which made it a little bit unbalanced and also shaky while typing on it. Besides that a touchpad which felt worse than what Apple has (although better than what most other Windows laptops have) and a cheaper looking finish (surface/painting looked more plastic like than the aluminum surface of the macbook). As an upside it had a really great keyboard, which might not be the case for the 2016 Apple models.
> an amazing paired-down version

FYI, and no judgement: the word is "pare", meaning "to trim" or "to cut down".

Also seen in "paring knife" :-)

Hah, thank you. I also always confuse "here here" and "hear hear," amongst a million other things.

Would you believe I spent 4 years getting a Bachelor's in Writing? :P

You can pretty easily run Windows natively on a MacBook Pro. I've been using a MacBook Pro as my full-time Windows machine for about seven good years.
(comment deleted)
Microsoft really knows how to do dev tools. If only they were as disciplined and effective with some of their other product lines.
Across a lot of products...it almost seems like a ban on ideas was lifted and there's suddenly a decade of pent up creativity and enthusiasm being released by Microsoft.
MS has always been good at developer tools (in their own way)
Developers, developers, developers...
The vscodevim vim bindings have improved greatly since a couple of months ago and is comparable to Sublime's vintage.

These features are still missing and are keeping me from switching completely from Sublime:

- Project wide symbol fuzzy search (cmd+shift+r in sublime)

- Read from stdin (`git show | code`)

Keymaps for Sublime and Atom

They are on a mission.

I was so excited, but it turns out there's still no middle click for block selection :(
I like to read these release discussions so much.

Everyone has their pet feature, most of them stuff that I never use or didn't even know they existed.

I personally like ctrl+/ to comment out blocks or mark stuff from the integrated terminal, both didn't work the last time I tried it.

Commenting out is there, you can search the keyboard shortcut settings to find the proper key. Actually, there are multiple commands on that subject:

- editor.action.commentLine toggles comments

- editor.action.addCommentLine & editor.action.removeCommentLine

- editor.action.blockComment for block comments

I can't see horizontal layouts. I reinstalled from scratch and still can't see it.
"To enable horizontal layout for the current workspace, use:

The View menu Toggle Editor Group Layout."

Ah, it's one or the other. That sucks but thanks for the clarification.
I was wondering, like there is usually a "recommended plugins" list for Vim, does such a thing already exist for VS code?
Already exists, use the extensions panel (the square icon in the left most side of VSCode)
Thanks, knew the extensions panel, but not the "recommended" and "popular" parts.
The Keyboard Shortcuts Reference reminds me that I always wanted to have a keyboard shortcut spaced repetition learning program where you actually have to press the key combinations. Maybe somebody could write an extension to VSCode.
The one unfortunate thing about it is that it doesn't work/isn't packaged for Raspberry Pi.

I don't understand why they don't make a package for the pi, if it's a JS app anyways

What I also don't understand is why doesn't Debian package it? Is it not fully free or does it have licencing issues like Atom?
From above, but:

I'm currently working on nightlies for ARM and Intel linux-based systems (including Raspberry Pi and [Chromebook, Android] <- under Debian jails).

I could really use one or more Raspberry Pi 2/3 testers on a Debian distro (ideally Raspbian) for early feedback.

Hoping to announce the project on HN properly myself when it's ready (it's a very early state, although extensions are working), so I'd ask for discretion of whoever feels like helping me out.

As much as I wanted to like Atom over VS Code, I find myself changing and starting most of my new projects in VS Code exclusively.

One thing that surprised me that VS Code didn't have was multiple cursors?? (like Atom and Sublime have by default). I didn't realise how much I use that feature (for renaming variables in a short procedure/function block etc). There is probably a plugin for that somewhere, I guess.

Ah, Thanks - I see now the shortcut is [Alt-click] as opposed to [Cmd-click] in the other two editors. I just didn't dig around enough to find the right key combination. But I guess this shows how ingrained muscle memory and habits are hard to change, and why certain editors remain people's favourites.
Be warned though... this is one area where vscode is noticeably worse than atom or sublime; There's no alt-click-drag support so making a rectangular edit is much more work; you manually create the correct selection on each line. It's one of the few things I miss from Atom (and one of the main reasons I switched to textmate way way back).
alt+shift+click-drag mate. Drag a rectangle and hit an arrow key seems fastest to make a column.
(comment deleted)
It actually does have multi cursor. Try cmd + D to highlight multiple instances of a selected block, just like in sublime.
Thanks for the additional useful tip. My usage of this feature is usually via 'brute force', i.e. Cmd-click (or Cmd-double click) on multiple points in my code and begin typing. This shortcut will make variable renaming a LOT easier.
Maybe you should also learn that ctrl+k skip one of the selections, so you can rename things and skip the ones that you don't want to change pretty fast when combined with ctrl+d.
(comment deleted)
The keyboard modifier for an additional cursor is Alt instead of Ctrl in VS Code. Maybe that's why you haven't found it.
Yes, that was it. Damn that muscle memory! :)
I love using VIM to edit, but stuff like the following makes it hard for me to resist switching.

"ATA makes typings files almost invisible. A TypeScript language server that has ATA enabled watches your package.json files and automatically installs the typings files of all dependencies in a cache on your file system. It does the same when it finds references to well known client-side libraries. When you then invoke IntelliSense, the TypeScript server uses the typings files in the cache."

There's no need to switch editors for that. The language servers can be used by any editor that supports the language server protocol. As far as I know nobody has written a plugin for Vim yet, but here's a discussion issue on the neovim tracker: https://github.com/neovim/neovim/issues/5522
Also, async completers like deoplete[1] offer non-blocking completion.

However...

> stuff like the following makes it hard for me to resist switching.

I don't think one should "resist". IDEs (VS code is an IDE, at this point) are very powerful. I really wish vim-modes would go away; I would like to see Neovim embedded in VS code and friends, instead. By "embed" I mean: nvim is the text editor, it does everything; it lives in the "document" area of the IDE; and you can bind nvim keys to IDE functions/commands (such as "Open Type...").

[1] https://github.com/Shougo/deoplete.nvim

Hey, I'm one of the developers of VSCodeVim, and I'd encourage you to try out our extension and see how it works for you. You could get the best of both worlds! :)
Vscode + vim is a great combo
Ah haha this is too funny, I just this morning caved from trying to have a functioning version of Ubuntu on the macbook work gave me, booted back into OSX, and spent a good 30 minutes scrolling through the VSCode keyboard shortcuts JSON, writing down the ones I was interested in relearning on post-its and lining them around my monitor.

And not four hours later they release a pretty little printable PDF.

Not very on topic but I hope some of you can at least get a hoot from my misery.

Looks like they also added bindings from the other popular editors so if you were using those you won't have to learn anything.
Seriously why don't all software projects do this? It is a no brainer!
It's not like it was very difficult to have a simple key binding list before the update. There are many json to html table websites out there, or you could just paste it in vs code and use multiple cursors to remove all the json syntax in like 10 seconds.
No, you use regexes for that.
I typically bounce between vim and Atom for Python development, with occasional forays into VSC. VSC has come along very nicely to the point where I may just make it my full time GUI editor.

Can anybody recommend some must have plugins for Python development on VSC?

I recently started doing more and more javascript font-end work as opposed to C# backend stuff. So, of course, I started with Atom. But I kept having issues with it, and ended up playing around with VS Code and loving it.

As someone who really loves the C# language, I was really questioning if I liked VS Code just because it was Microsoft. Was I some kind of Microsoft fanboy? I'm glad to see a lot of the "front end" community embracing it - it's weirdly validating to me. :)

Don't worry about that. It really is that good. [Long-time Mac and Vim user.]
It really is remarkable. You wouldn't think that an editor based on the same engine would be this significantly better than atom, but vs code continues to defeat atom in performance and native features.
Not a negative comment in the thread so far. That's amazing for something Microsoft, as anyone who's been around here can attest. There's a corner being turned here; time to buy MSFT?
Sure, if you wanna buy when $MSFT is the highest it's been since the dot com era. Right about five months ago would've been a good time, though.
VSCode is very good, free but doesn't make $ for share holder.

But you should check out the redit thread on Windows 10.

I mean, it's been a big couple weeks of releases. Between Surface Studio, the new speech recognition results, Teams, and this VSCode update (barring the npm issue) they seem to be really hitting their stride, in a way that hasn't been seen in years. Just in time to start clawing back tons of market share from Apple, too.

But I'm sure 2017 will be the year of Linux on the desktop.

My only complain is that they still don't allow mixing vertical and horizontal layout splits. That aside, VSCode is a quite good code editor.
Actually, I'm not a fan boy of something (except hockey, basketball, .. nevermind). However, Visual Studio is awesome! thanks a lot!