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...
>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).
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!
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.
And here's[1] a project inspired by Gary's talk to design and implement a new escape protocol and a new virtual terminal to support these sorts of use-cases. (I'm not involved with the project.)
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.
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.
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 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.
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.
If you mean keeping track of dirty files between sessions (aka hot exit), work started during this release and it should come to stable in v1.8. See https://github.com/Microsoft/vscode/issues/101
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.
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?
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.
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.
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.
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.
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.
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).
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.
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...").
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! :)
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.
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.
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. :)
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?
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.
179 comments
[ 4.5 ms ] story [ 203 ms ] threadBut 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 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.
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.
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.
[1] https://github.com/withoutboats/notty
So many new features again. Always happy to update and read the change log.
I think there has to happen a lot when a version release won't make it to the front page :p
Edit: My bad. Felt weird comparing VS to VSC, so that's the source of my confusion.
Last time I tried to install Visual Studio it was like 9gbs for the core.
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.
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.
They got this "allowJs" flag, which I found a good idea, but I never got it to work.
https://github.com/Microsoft/vscode/issues/101
https://github.com/Microsoft/vscode/issues/1105
[1]https://github.com/Microsoft/vscode
[2]https://github.com/Microsoft/vscode/projects
VS Code has exceeded pretty much all my expectations with the pace it has been progressing at.
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?
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.
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.
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.
FYI, and no judgement: the word is "pare", meaning "to trim" or "to cut down".
Also seen in "paring knife" :-)
Would you believe I spent 4 years getting a Bachelor's in Writing? :P
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`)
They are on a mission.
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.
- editor.action.commentLine toggles comments
- editor.action.addCommentLine & editor.action.removeCommentLine
- editor.action.blockComment for block comments
The View menu Toggle Editor Group Layout."
I don't understand why they don't make a package for the pi, if it's a JS app anyways
Is there even an official Debian that runs of RasPi, anyways? Thought Raspbian was a fan effort that resurrected an old armf fork or similar.
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.
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.
"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."
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
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.
Can anybody recommend some must have plugins for Python development on VSC?
- Django Template: https://marketplace.visualstudio.com/items?itemName=bibhasdn...
- Django Snippets: https://marketplace.visualstudio.com/items?itemName=bibhasdn...
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. :)
But you should check out the redit thread on Windows 10.
But I'm sure 2017 will be the year of Linux on the desktop.