Visual Studio Code 1.2 released
code.visualstudio.com
code.visualstudio.com
Enough of the keyboard commands are borrowed from Atom that it makes the switch pretty painless.
I love VS Code and have been using it as my main editor for quite a while now, but the lack of project-wide find and replace is why I still keep Atom around:
https://github.com/Microsoft/vscode/issues/1690
This glaring omission combined with the proposed performance improvements in the Atom 1.9 beta might just be enough to tempt me back to the Atom side again.
Also, Brackets can jump to source of functions of just plain JavaScript like WebStorm. Last I tried, VS code still doesn't do this yet.
And here's a post I wrote a while ago about why Vim can be so efficient: http://benmccormick.org/2014/07/16/learning-vim-in-2014-vim-...
The real killer is quick macros. If I have to transform a bunch of lines, it's just a "qa<work>q" and a "@a" away. It's pretty amazing.
At first vim doesn't seem that great, but after using it for a while it's indispensable. Somewhere along the line you go from having to think about all the strange keystrokes to just getting a feel for it. Doesn't hurt that it makes you feel like a wizard, too.
Comparing with Emacs is a hands-down win - having to press Ctrl Alt whatever just to move around is silly. Emacs+Evil is sweet though. Comparing with VS's editor (Windows style, with Ctrl+Arrows for things) is also a huge win. Windows editing just isn't amazing.
VSCode's lack of full vim support is very disappointing.
No, seriously now. I've been a vi/vim user for a decade or so, but it only "stuck" when I realized that the single key commands are verbs and that the right way to use it is to experiment less and plan ahead more.
I'm tremendously productive with it when I already know what I have to do in batches (refactor blocks, rename multiple variables, etc.) rather than just hunting and pecking at things with a mouse.
That said, I only use two editors these days: vim and VSCode (without any sort of vim bindings, which I've not yet investigated fully). The former for quick dips into existing code bases where I already know what I'll be doing, and the latter for new projects.
Plus, of course vim is essential if you ever want to be productive (or even borderline effective) on a server environment. I'd stick with it if I were you.
Its learning curve is a lot like git: It's overwhelming at first but you only need to know basic commands. Then once you understand how it works, you'll pick up on the rest faster and faster.
The real power of vim is the ability to do very quick "programmatic actions".
"Delete" -> "d". "Go to end of next block" -> "}". "Delete next block" -> "d}". "Delete next 3 blocks" -> "3d}". "Repeat that action five times" -> "5.".
Too many people are intimidated by vim's nature of being a command line editor, not a real IDE etc. But its power has nothing to do with that, it's really just the input style.
I'm not sure I follow. Have you seen people use vim slowly? Or have you not seen anyone use vim at all? Vim (from v7?) has built-in "omnicompletion", by default bound to ctrl-n -- that you can use for everything (by default it "tab completes" against words in the buffer/file). There are various plugins for eg: writing html, and ways to set up full autocompletion.
In general though, typing isn't what limits productivity -- and I've seen some studies that indicate that even though people think they're faster using just the keyboard, most people are actually faster at editing text with a mouse (Obviously, people type faster on a keyboard).
Personally I prefer vim for two reasons: 1) I can't use a mouse day-to-day due to latent carpal tunnel syndrome, and 2) I feel it's easier to stay in the flow, and work efficiently with a modal editor. This has to do with vim's use of verbs, nouns (text objects) and modifiers/ranges (adjectives/adverbs)[1] - eg. 3dl (3x delete line) and 3dw (delete 3 words). The other has to do with easily moving around by regex, or go directly to line-number.
For a look at what a "modern" graphical text editor could/can work like, have a look at Russ Cox demoing how he works with the ACME editor: https://www.youtube.com/watch?v=dP1xVpMPn8M
If I could use the mouse for editing, I'd try to learn ACME. I still think it might be an interesting interface for hi-res laptops with proper pen input (like a Surface Pro 4 with a keyboard - using the pen for mark/editing, and the keyboard for input).
But more than anything, both for a glimpse into vim, and also for getting more efficient with whatever editor you are using - I recommend Bram Moolenaar's (creator of vim) talk on "Seven habits of effective text editing 2.0": https://www.youtube.com/watch?v=p6K4iIMlouI
[1] http://yanpritzker.com/2011/12/16/learn-to-speak-vim-verbs-n...
EDIT: I should add that I have all the bells and whistles like excellent fuzzy input selection via ido and even live preview of Markdown rendering via markdown-mode plus eww (requires Emacs to be built with libxml2). Plus on the fly error checking if I need it, auto completion, terminal emulators, etc. Just saying, before anyone argues Emacs doesn't support modern amenities.
On the Air it takes 10 seconds or so to launch. On the others it's less than 5 seconds. Compare to PHPStorm, which is kinda useable in less than 30 seconds, and takes a minute or two to index a relatively small codebase and be fully useable. (Of course, PHPStorm does a lot more than VS Code, but I find that I don't use it anymore anyway; testing startup time just now was the first time I'd opened it in months. I guess I should stop paying for it.)
Emacs has always been a bit laggier than that (and a few seconds to start). VSCode starts slower than Emacs, but once it's running it feels much snappier--on par with Geany, though I still only use it for C#/F#.
The netbook has 4GB with dual core Brazos APU and it is quite fast, to the point that it is maybe the only web based application that I run as desktop application.
On my machine (Core i5-4590, no extra graphics card, 8 GB memory), once it's open (which takes a while), it's nevertheless very fast and definitely not sluggish.
He said X11 based, so its the actual GUI one with native widgets et al
Really cool!
// Place your key bindings in this file to overwrite the defaults
[
{ "key": "ctrl+shift+t", "command": "workbench.action.terminal.toggleTerminal" }
]
Change to whatever works for you, I use ctrl+shift+t since I have that mapped in intellij and muscle memory is a terrible beautiful thing.Traditionally terminals auto-copy text to the clipboard or use a keyboard shortcut like `ctrl-shift-c`. To paste you typically use `shift-insert` or `ctrl-shift-v`.
Am I missing something?
"Please note, this is an early version of what we want to deliver. Currently VS Code only supports a single terminal and there still are missing features like copying and pasting with the keyboard. Windows 10 users may experience problems getting cmd.exe to work. If so, please try enabling the legacy terminal as described in #143"
"terminal.integrated.shell.windows": "C:\\WINDOWS\\sysnative\\WindowsPowerShell\\v1.0\\powershell.exe"
C:\WINDOWS\sysnative should be a symlink to C:\Windows\SysWOW64, see https://github.com/Microsoft/vscode/issues/7095#issue-157913... for more info
"terminal.integrated.shell.windows": "\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"
"terminal.external.windowsExec": "Powershell.exe",
"terminal.integrated.shell.windows": "C:\\windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"WOW! this is awesome!
It's snappy, has a nice UI and lot of great out of the box features.
Also, how do I autocomplete using suggestions from other files within the project directory?
For me autocomplete works out of the box in all projects. There is also a bulb next to the file type in the bottom right corner which suggests to create a jsconfig file for you for better intellisense support. I haven't noticed any difference after creating it though. VSCode makes JS suffer able for me :P
Which language are you trying to autocomplete. For some like Javascript/Typescript, it works out of the box. For many like Golang, C++, Python you need to install a plugin but takes just a few seconds. Also for autocomplete to work across files, I think you many need to open the whole directory ("file/open folder..." menu item.)
Each release is much better than the last and the momentum behind the releases is incredible.
I would love to use it for Go programming but I'm so used to vim key bindings that it's hard to switch. I can use IntelliJ because their vim plugin is pretty good; anything of similar quality for VS Code?
The vscode vim plugin mostly emulates the modality of vim, without support for things like :%s/x/y/ substitutions and other commands.
I'm hoping that with time it will mature and improve. Haven't seen any improvements over the last few months though (I last tried it about 2 or 3 weeks ago).
For example, 23G doesn't go to line 23. d5d doesn't delete 5 lines.
Vim key bindings still have a way to go.
Consider how in Emacs there are usually simple packages for a language (say, ruby-mode), and complex ones for live-analysis (say, robe).
I've heard that Visual Studio "15" Preview (not VS 2015, but the next version in development) already supports TextMate language grammars too, and that it is intended to make it easier to eventually share language services between VS Code and VS "Proper", but other than skimming BUILD Talks on the subject I don't know how far along those efforts are.
Disclosure: I'm one of the contributors.
Honestly I find it to be way to confusing to setup. The whole configuration via json files is fine, except they don't seem to be well documented. If fact the whole thing is really substandard for a Microsoft developer tool, they are usually much better at documentation.
It might just be me, but I find there to be almost zero discoverability for... well anything.
I'm pretty addicted to them; they add consistency without me having to think about it (killing off bike-shedding in the process), and in practice it works a bit like a visual semi-linter: if the auto-formatting doesn't produce the expected pattern (and your mind very quickly picks up the pattern subconsciously), it usually means there's a bug in the code somewhere around the area where it goes wrong.
You get auto-indent and at the same time don't have to worry about leftover whitespace everywhere when you 'git commit'. In fact, after accepting pull requests I'll often just open up the files in kate and doing a trivial edit + save to ensure there's no pointless whitespace.
Or I don't understand what you are talking about ?
I have been using it for PHP development and loving it. The only nitpick if I may is that their Git integration is a bit plain. By this, I mean that I cannot see individual commits within the editor yet.
I was horribly wrong. It is so comically bad at Powershell that I took screenshots. It has some coloring... and everything else it's doing is broken.
Makes me wonder why VS Code even exists. There is no shortage of first-class editors for every other language that VS Code supports. The one language with a genuine need for a great new editor, a language from Microsoft no less, is supported in a manner that doesn't even rise to the level of half-assed.
#smh
> it will take numerous iterations to get it right.
Still, this is awesome. Atom was pretty good, except it straight up crawls sometimes. Often, you have to disable syntax highlighting. I flagged an ussue a whike back where it took > 56 seconds to open a .json file.
Surprisingly, as a mac user, i really like vsc. it has drag drop sidebar, decent configurable settings, intellisense & syntax highlighting are pretty good, and some other pretty sane features. Top shelf tab support is the only major thing it really lacks.
>Comparing files
> We have added a new API command that allows you
> to use the diff-editor on two arbitrary resources
> like so:
> commands.executeCommand('vscode.diff', uri1, uri2)
does anyone know where I can enter commands so I can try that out?Reading that, it seems like I can use VSCODE to diff two different web pages?
That'd be really cool if I could (for example):
commands.executeCommand('vscode.diff', "http://www.google.com", "http://www.google.ca")I'm already using it for all my front-end work but if I could use an integrated Clojure repl the same way I use CIDER in Emacs it would be awesome.
I'm now switching between geany and vscode daily.
They're making incremental progress, and releasing often. The software is noticeably better than it was even 2 months ago.
I write C#, JS, PHP, and Python... and I can do development for ALL of those languages in the same IDE. It's kind of great.
For one-off file edits, like my .bash_profile, nginx conf etc., I still use a terminal-based editor, which is what I'd use on a remote machine anyway.
Are you opening 100MB JSON/XML/CSV files? If so, yeah, I guess it's not for that.
Or you mean opening some single file ALONG with the editor? That's not how you use such a tool. For casual editing you can always vi.
I guess that's what I have to take from it - it's a bad file editor and since I edit files I shouldn't use it :)
(I prefer reading the file extensions anyway, since they stick out on the right hand side)
Merging it with VS would either require making VS cross platform (massive undertaking I would think) or a massive rewrite which would have dubious value to MS.
There’s nothing magic about an IDE, it’s just a very, very, bloated editor.
If you look at notepad, emacs, atom, vscode, sublime, vs, webstorm and such, they're all somewhere distributed on a continuum between IDE and editor.
VSCode has a superb Git integration, but what has this to do with an editor?
It is like saying don't compare a car and a truck, they both take you from A to B, they both have different pros and cons, the comparison is apt, even with their dissimilarity.
Same thing here. It absolutely makes sense to compare a fully featured IDE and text editors. They offer the same core service, they just have different benefits and drawbacks.
There will be a lot of people who choose either PyCharm and Sublime/VSCode.
With this setup I can work on all sorts of resource intensive projects on a lightweight laptop because everything is built and run remotely.
Now I could SSHFS every project and open it up with VS code, but unless I'm sending commands to the server some other way, it's going to be built locally, which is very inconvenient, especially when working with multiple projects.
If VScode can one day operate in a terminal over an SSH connection it might replace vim, but that's not going to happen.
Vim has a TUI, GUI, tabs, and is still much more responsive than VScode, even over an ssh connection.
Lastly, MS has been really bad for developers and end users. Their latest OS comes with spyware (telemetry) and adware (candycrush), so I tend to stay away from MS products in general because I don't think Microsoft has done anything to deserve my support.
I can see why VScode is preferred on Windows though, I've never seen a decent terminal emulator with good font rendering on Windows so vim must be a pain to look at.
What's your point in commenting? Do you really think you're adding to the conversation and deserve upvotes or are you on a mission to let everybody here know that you hate Microsoft and that you don't think anybody should be doing anything with Microsoft?
Honestly - what do you expect to accomplish and what did Microsoft ever do to you?
Did Microsoft kill your pappy? - http://www.hanselman.com/blog/MicrosoftKilledMyPappy.aspx
No, I don't like Microsoft very much.
https://en.wikipedia.org/wiki/Halloween_documents
MS hates freedom. Should we forgive Bill Cosby too?
>What's your point in commenting?
Read the comment. VSCode doesn't have a TUI. I have a legitimate criticism. All my criticisms of VSCode and Windows are legitimate.
>Microsoft has been doing really good concerning open source and developers recently
Ehh... they've been doing better, but if Bill Cosby donates to womens shelters does it make up for what he did in the 90's? MS only embraces Linux/Unix because they know they're sucking away developers (just look a stackoverflow stats). Even MS has basically admitted that Windows sucks on it's own, which is why they've added a Linux ABI. Microsoft is only trying to win over developers to stay relevant to that market and increase profits.
They say "Microsoft Loves Linux" but it's an awful relationship. MS takes everything they can from OSS and gives the bare minimum back. If you love your brother would you let him live on the street? MS feeds the Linux bums grool while they sit atop a proprietary castle not letting anyone else in. "We love Linux, just look at him over there in the street groveling, lets throw some food (VSCode) at him! Now now, no Visual Studio or Office for you, I might lose money."
What kind of sick demented "love" is that?
MS doesn't love Linux, MS uses Linux and open source to attempt to increase long term profits. No where in the MS agenda do they prefer to see Linux as viable as Windows.
It would be nice if the man childs who need to point out "electron bloat" in every thread could go back to arguing about vim vs emacs.
I recently put some time into experimenting with Electron, writing a simple media gallery app for viewing all the images and videos in a directory (https://gitlab.com/steve-perkins/MediaGallery-electron).
Certain things were easy, due to the fact that it's largely a web app under the covers. Certain things were frustratingly impossible, such as detecting whether a video is supported without adding it to the DOM and attempting to render it. Other things fell somewhere in between. HTML/CSS/JavaScript is a secondary skillset for me, so it felt like I swimming upstream to make a web app format and behave like a desktop app.
My primary skillset is Java, and I haven't yet had a chance to tinker with JavaFX (i.e. Java's answer to Microsoft's WPF and XAML). So I decided to write a JavaFX version of the app for experience (https://gitlab.com/steve-perkins/MediaGallery-javafx).
It was still a pain in the ass to learn a completely new GUI framework. But it was a relief to work with layout managers that actual want to function in a desktop paradigm. It was also nice to have unfettered access to local API's beyond the web-server-focused ones available to Node.js, and to have cleaner integration with the main process and the renderer thread. Interestingly, Java supports far more media types than the Electron browser engine.
Here's the kicker. Not many people know about it, but modern JDK's ship with a "javapackager" tool that bundles up your app into a native executable with a stripped down embedded Java runtime (and even a platform-specific installer). Believe it or not, the standalone installer for my JavaFX-based app is about 25% SMALLER than the installer for my Electron-based version.
Now, I'm not necessarily saying that JavaFX is a panacea for cross-platform desktop development. There really IS no ideal solution for that space, because so few people still care about it these days. However, I will say that Electron seems to make sense only for distributing apps that are basically just web apps, or perhaps have very limited native interaction outside the DOM (i.e. loading and saving plain text files, or spawning external processes). If you need to write a cross-platform desktop app that really IS a desktop app... then I think you're stuck with a C++ framework like Qt or xwWidgets, or perhaps JavaFX.
> There really IS no ideal solution for that space, because so few people still care about it these days.
I would say lots of USERS care about it. It's DEVELOPERS that have decided writing desktop apps is terminally uncool and give their users crappy web apps that have horrible UI latency, don't work offline, aren't accessible, don't integrate with the OS, etc.
Eventually developers will figure out that making a good desktop app can still make you good money (see: Minecraft) and I suspect there will be a bit of a renaissance, especially if someone puts together an easy to use modern update framework. I made one called UpdateFX but I don't maintain it anymore.
So, I don't know why anybody who is running Windows would choose VSCode. I get why people running OS X and Linux would choose VSCode (obviously they have no access to the full Visual Studio) but does anybody on Windows actually use this?
Then again, it's a good litmus test. If you find yourself opening your old editor to do something so basic your new editor can't do: what the hell are you doing in your new editor?
We have some small node apps, endless python scripts and I routinely deal with configuration files, XML, JSON, even just machine-formatted flat files. It's very good at doing that when I need it to, and being a lightweight IDE when I drop into node or python. Anything that doesn't require me spinning up the full IDE but comes with good editing and search (what I was using Notepad++ and Sublime for in the past) is a win for me.
There are some really nice features in there too, the extension ecosystem is very active and it does what I need it to. Pleasure to use.
Seems like a pretty low bar... but at 1.0 they were still not there, and Javascript is obviously one of the languages they focus on...
Has pretty decent autocomplete, param info, jumps to definitions and references.