It would be great if vscode has integrated terminal feature refer vim or atom https://atom.io/packages/term3
I saw this suggestion pending in uservoice(https://visualstudio.uservoice.com/forums/293070-visual-studio-code/suggestions/7752357-integrated-terminal) and repost here since it has specific repo
+1.
term3 can't support zsh well, and it will make atom slowly. Hope vscode can solve it.
+1
+1
+1
Personally I think this is a bad idea. Making the editor a kitchen sink is how we will make it slow and bloated. Besides, the amount of work necessary to get on par with just the basic features of excellent terminals out there (e.g. iTerm2, ConEmu) would be huge.
I know not everyone runs OS X but check out my setup below. I'm using El Capitan's full screen features to place VS Code side by side with iTerm2. I am super happy with it.
@joaomoreno but some people want coding, and just use CLT when deploy app. Maybe you can make a extension like term3, then the native version of VSCode won't run slowly.
That is an opportunity for an extension: deployment commands!
Yes, you're right. By the way, why i can't search in extension market?
+1
+1
:+1:
is there an extension that offers a terminal? anyhow +1
+1
+1 For built in or as extension
+1 also
+1 for built in, as in the CodeRunner mac app
+1
+1
Yah, definitely need it! +1
+1
+1
+1
As an extension I agree but not integrated in to the editor itself.
Ultimately I would like to see a terminal extension that gives multi terminal capabilities like web storm does.
I think the goal should be to get vscode extensible enough that someone can do extensions like this.
i.e. able to add\extend panels with tabs\sidebars etc..
I find ctrl+shift+c
is doing the job ok for now (minus the part that I cant choose which terminal program it launches)
I find ctrl+shift+c is doing the job ok for now (minus the part that I cant choose which terminal program it launches)
@pflannery That's a problem too, and I think it should be solved in first place. In Xfce there is no gnome-terminal
, and I could be probably using better terminals even on Windows/OSX (hypothetically), so having a config option to select which terminal I want to launch would be good enough for me. Built-in terminal = reinventing the wheel.
@stylemistake your right, basic terminal launching should work on linux. Could be worth raising an separate issue if not already done so.
I have a PR for using better terminals but it's only for windows so far. PR #3495.
+1
I'm actually fine with the terminal being separate by default. How hard would it be to make an extension that adds this though? That would be awesome.
+1
@stylemistake I couldn't launch the terminal on Fedora 23 too so I've now added custom configuration settings for linux in PR #3495.
A terminal would be great as an extension. One of the key things I love about VSC is its simplicity.
+1
it would be also nice to have ouput of docker
containers onput related to current opened project code inside the editor, I think with terminal extension it could be achievable.
If Windows had a great terminal and shell, would this be an issue?
I suspect those who posted above saying "I don't need this" might be Mac and Linux users :-)
@TimTheTinker it is possible on windows to vertically split a console (of choice) with most apps (including vscode) using conemu on windows
I personally use Windows 10 but don't really need an integrated terminal. ctrl+shift+c
is currently my preference
Sometimes I need to open several windows of my IDE with different project and instances of terminal. Having a lot of additional instances of terminal and set a proper path for each of them is a wasting time. Manually position OS terminals(Linux and Mac) is also wasting time compare to simple Ctrl+F12 switching on/off, for example.
Not everyone got used to that, so it can be as a separated package, but it should definitely be there.
@pflannery - interesting, thanks for sharing. Conemu notwithstanding, I wonder if the above feature requesters are all on Windows, and if so, whether they would be content without a VSCode-integrated terminal if (the UX equivalents of) iTerm2 and gnu bash were available on Windows.
@rtkhanas You can do all of that now on Windows when running vscode inside conemu it lets you spawn multiple tabbed terminals along with multiple vscode ide's. Then using the Open in Command Prompt
command from inside vscode spawns a new tabbed terminal at the current directory of the vscode project.
@TimTheTinker
I wonder if the above feature requesters are all on Windows, and if so, whether they would be content without a VSCode-integrated terminal if (the UX equivalents of) iTerm2 and gnu bash were available on Windows
Probably. Gnu bash is also available on Windows though not sure how close this comes to the gnu bash that you use. I've not really used iTerm2 I will have to try it out.
When I used Dolphin on kde plasma 5 I was very impressed with how the explorer and terminal can be combined together, they even change directory with one another which is super cool.
Would be nice if people that up vote this feature also mention their OS as there could be alternatives that can be used whilst waiting for this extension.
@pflannery I use Mac, not sure there are similar tools for that. Maybe there are, but there are always alternative solutions. However, this one is simple, without installing additional software, specific for each platform.
I think everyone will be satisfied if this feature will look like an additional package.
It is needed to have console per open project basic, I have alwasy several projects open and find such terminal in JetBrains webstorm I would say indispensable:
You may always have several tasks runining related to project (backend server, front dev server, builder/watcher, etc) and it is nice to have it in one window tight together.
+1
+1
An extension like Terminal Plus would be awesome too!
https://atom.io/packages/terminal-plus
In light of yesterday's announcement (!!!!!!!!!!!) I suspect this thread is
nearly a moot point :-)
+1 --- just spinning thoughts:
as i (hopefully) understand VS-Code itself is web-based in its internal structure and presentation abilities; if so, to have the opportunity to gain the max out of it:
-- using the parsing- | intellisense- -mechanisms to format and control the input in forefront, then send it (via ssh for example) to the virtual appliance; i think of the possibility of giving the control over the accessed terminal | cli to VS Code without touching the appliance itself; Therefore it would be needed to use VS Code definitions, to handle the (possible|wished) ways of communicating with the terminal without knowledge of the setup itself | changing the appliance at all, which makes it universal | and spend the ability to change the terminal at any given point, by just exchanging the needed appliance / switching to the one of many needed for a specific part in a project;
-- another advantage would be gaining manageable compatibility setups for specific branches | stages as the needed appliances would be defined in the project, not in the needed appliance itself;and if a function | binding | add-on really is needed in that specific terminal to deliver the functionality needed, it could be also defined by scripts specific to these terminals, but stored and managed in | via VS Code;
Well, i hope one can follow; It's truly no new perspective | handling it's just programmatical remote access in near-real-time and dependencies defined in a project in VS Code, to have ONE LOCATION to define the controlling mechanisms and start | stop the needed appliances, with their specific virtual network setup and bindings, for example.
However, the most simple form of that scenario would be to 'blend' a remote-access-output of a locally installed application via OS-internal-functions into the interface of VS Code, or do the whole fully-remote-handling of a virtual-network-stack, whereas the possibility of combining diverse operators would be given ( not just one or more VBOX instances or VMWARE or RDP or whatever, but a MASH-UP | MESH-APP defined in ONE PLACE AND PROJECT, OS- and APP-independent.
I think it's possible to realize such a feature without much effort if a group of specialists for the needed use-cases can merge in teams to provide json-based setup-templates; The controller itself would and should be realized in VS Code, specific to this editor (which really needs a pure 64-bit-edition on linux-based-gnu-os's, just to mention it ;) )
Just my 2 or more cents on that topic ...
Thanks for your interest.
claudiusraphael
P.s.: My hidden aim on that topic is gaining a All-in-one--Solution, that can be used on top of Core-Server | Hyper-V-Server installs for a complete windows-based aio-fully-virtualized-collaborative-and-single-developer-project-editing-suite a.k.a VS Code, for all those that like to use bare metal and cost-free solutions with minimal security implications and guaranteed-operability independent of on- or off-line- -usage;
Also it opens the way, to use IoT Windows and for example docker-based e.g.: for use on Ubuntu snappy-core -implementations, that can be realized in a single package as defined by project for added participators or specific to kind | type of collaboration objective.
Well yeah, times i am i bit futuristic in my wishes, it's just ... it is already possible :)
+1
+1
Would love to see an integrated prompt as an extension, would save ALT+TAB :)
+1
+1, hopefully PSReadline support.
+1
I think this would be nice, but I understand why they would want to keep it separate.
+1/0
+1
+1
+1
+1
+1
Hi all, I've started work on the integrated terminal and have a prototype up and running (branch), this will likely be integrated into the product in the May release.
Here's what it looks like so far:
Some things to call out:
.bashrc
is parsed and auto-complete works as you would expectHere is a rough todo list for the initial milestone, not all of these will necessarily make it in for the May release:
Features
Bugs
exit
)vim
)Here are some of the ideas that will eventually be turned into issues/feature requests later on:
exit
ed? #6460Awesome!
Really nice! :+1:
Cool!!!
On Friday, 22 April 2016, Daniel Imms [email protected] wrote:
Hi all, I've started work on the integrated terminal and have a prototype
up and running, this will likely be integrated into the product in the May
release.
PrototypeHere's what it looks like so far:
[image: image]
https://cloud.githubusercontent.com/assets/2193314/14754041/b923a0e6-088d-11e6-928b-2f897407fe29.pngSome things to call out:
- .bashrc is parsed and auto-complete works as you would expect
- A default set of colors will be provided for light and dark modes
- ctrl+` will probably be the default toggle terminal keybinding
- The terminal is a "panel", meaning it can only be shown on the
bottom of the editor currently (like the Output panel)Initial milestone
Here is a rough todo for the initial milestone, not all of these will
necessarily make it in for the May release:_Features_
- Customize colors via settings.json
- Customize font via settings.json
- Handle title change, visualize in UI
- Terminal selection, copy and paste
- Open the terminal in the root open folder when available
- Add toggle terminal to menu
- Create default light theme color set
_Bugs_
- Focus the terminal input when anywhere inside the terminal panel is
clicked- Propagate focus from panel focus to terminal
- Prevent certain keybindings from triggering while in terminal
- Determine terminal char font in a font-agnostic way
- Set background color on Terminal object instead of using !important
css ruleBeyond
Here are some of the ideas that will eventually be turned into
issues/feature requests later on:
- Multiple terminals
- zsh support
- Clicking a file path in terminal should open a file #1037
https://github.com/Microsoft/vscode/issues/1037—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/vscode/issues/143#issuecomment-213581854
Marius Cristea
Please, everyone: use GitHub's new "Reactions" feature. Please don't crowd out the discussion with "+1", "Cool", "Awesome", or "Nice".
GitHub doesn't show the grey smiley face icon for Reactions on mobile browsers. On iOS, you can tap the share arrow then "Request Desktop Site" to see them.
@Tyriar I assume the shell will be configurable? This branch should try to be shell & os neutral as possible, I hope...
@factormystic that's the plan; configurable and work on all OS'. The feature branch currently is only tested on Linux but I expect it to work on OS X as well.
the .bashrc thing worries me. it worries me because on windows, i still want my plain old (but recently upgraded in w10) cmd.exe used instead. all my system vars and such that i've setup for my dev environment on windows, etc.
Atom's terminal-panel package that @willin linked also works on Windows, so maybe look there for inspiration
Awesome! thanks
On Fri, Apr 22, 2016 at 7:41 PM Bob Majdak Jr [email protected]
wrote:
the .bashrc thing worries me. it worries me because on windows, i still
want my plain old (but recently upgraded in w10) cmd.exe used instead.—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/vscode/issues/143#issuecomment-213627296
not worried about it working /on/ windows. i am worried about it working /with/ windows.
@factormystic @bobmajdakjr I clarified that Windows support is indeed the plan in the main comment. It uses pty.js and term.js which I believe play nicely with cmd.
Multiple terminals per opened project will be needed. And npm/gulp/other task runers should be integrated with it.
You mentioned this will be implemented as a panel. +1 Split panels for the terminals and also for debug and console panels. Anyone know if there's an issue for split panels at the bottom?
@GJSmith3rd This is the closest I can find https://github.com/Microsoft/vscode/issues/2806 - making panel positions configurable.
Awesome!
This is great news! Obviously, integrating a terminal emulator is like endeavoring to create a completely new product. It's not _just_ a feature. I'm curious about where we should set our expectations, long-term.
Some specific things: I use tabs in iterm2 to run multiple processes. Is a feature like this planned or will we have to use screen/tmux tabs? Will there be any integration with the editor itself? "Open terminal from here", "Run file in terminal", access from extensions, etc.?
@jvandyke the libs being used allow the system shell to be leveraged so there is no reinventing of the wheel going on at the moment. The kitchen sink metaphor that @joaomoreno used is spot on and I don't think we would be pursuing this if we had to implement everything from scratch.
Multiple terminals/tabs are definitely a feature I would expect, it's in the beyond section. Integration/extensions certainly seem to have some compelling use cases, it's probably a bit far out to speculate on when that would come and in what form.
Now, that feature is gonna make it the best ide on linux. Awesome, thanks
Finally. +1
Cool!
Yes, very cool. Love it.
I can't wait to see it!
+1 from the uservoice !
Awesome... Thx ;)
+1
+1
While performing Windows tests, test it with ConEmu application also.
It's very powerful multitab terminal emulator.
Please & Thanks.
@pflannery Which command do you use to properly attach vscode within ConEmu?
Regular -new_window
flag actually opens a command prompt then creates a new Window for vscode 😕
@bbenoist right button mouse click on conemu tabbar , "Attach to" feature, then pick already running app.
But it's not related to topic - it's about integrating console to vscode, not the integrating app to conemu.
UPD I tried to split consoles and got same error...
@all People interested in running shell commands from current version of vscode (without any extra window) can take a look at Shell which is an small extension I built weeks ago.
@koutsenko I know its kind of off-topic but some could have been be interested it it anyway. #143 is about productivity when using both vscode and a terminal.
In that sense, I believe that ConEmu's splitting options and alternatives on other platforms such as Xmonad and Awesome are worth being notified to people :wink:
Sorry if some felt polluted by my question. I have opened an issue (#5941) to move the discussion around my problem out.
It would be nice if the integrated terminal could be configured, e.g. to ZSH
@bbenoist I've written a gist for conemu here - https://gist.github.com/pflannery/8d28d1d5e17cc3b15ab5861639fa2e5a
waiting, fed up with webtorm nasty terminal.
Hi all, here is an update on the current state of the terminal and next steps.
The terminal can be triggered using ctrl+` or by triggering the View: Toggle Terminal
command in the command palette. It should work on all platforms, there are a few caveats on Windows though.
Windows defaults to use powershell, the reason for this is that cmd
on Windows 10 does not work out of the box.
To get cmd
to work on Windows 10 you need to open cmd
, go to properties and check "Use legacy console".
Then add the settings value in VSCode:
"terminal.integrated.shell.windows": "cmd.exe"
The new Windows 10 cmd and by extension Windows 10 bash is not currently supported.
$SHELL
is the default terminal on Linux and Mac, bash and zsh should both work, you can explicitly set this using the "terminal.integrated.shell.unixLike"
configuration value.
The plan is to test and fix the bigger issues before this lands in the stable May release (v1.2.0), the issues big enough to be considered blockers are marked with integrated-terminal and important. It should land in the next insiders build.
If you find an issue once you start playing with the terminal, if you could do a cursory search on the integrated terminal tag first to help prevent duplicates that would be great. :+1: reactions on issues you experience and want fixed are also very useful!
After the terminal lands and the major problems are ironed out, the next big thing I'd like to focus on is allowing multiple terminals at a time (#6458).
Thanks for your patience everyone, I'm going to close this issue as the basic terminal has landed :fireworks:
Then add the settings value in VSCode:
"integratedTerminal.shell.windows": "cmd.exe"
How to do that?
@whitecolor F1, type "settings", enter should open your user settings.json file, you add it there.
Hm I added setting, mark use legacy terminal in cmd settings.
I press ctrl+
but it just jumps next tab. An I have no
view` menu at all in the UI.
@whitecolor it will land in stable in early June and in the Insiders build in a few days.
ok, will it support multiple terminals per opened project?
@whitecolor only a single terminal per vscode windows in Stable, #6458 tracks multiple terminals.
This feature should definitely be built. I was debugging some ruby code and I had to interact with the terminal to enter some input that the program needs and bam! No terminal for me to interact with.
After trying again on Windows 10 with the new cmd, it seems to work just fine. As such I think I'll make the default %COMSPEC%
which points at cmd by default. This makes it consistent with the open in (external) terminal command. https://github.com/Microsoft/vscode/issues/6886
in chinese system show confusiton code
Version 1.2.0 insider
@builden What does it show when you run the same command in the native terminal outside of vscode?
@Tyriar
@builden thanks, looks like the CJK chars are stacked on top of each other. Looks like it was just filed here https://github.com/Microsoft/vscode/issues/7036
@Tyriar Great
have another question:
{ "key": "ctrl+`", "command": "workbench.action.terminal.toggleTerminal" },
this shortcut is invalidation
@builden what keyboard layout are you using?
@Tyriar like this
@builden So the key next to 1 doesn't work? Works from the testing I've done on Mac/Windows/Linux using US keyboard layout (which seems to be the same).
@Tyriar i change shortcut string can work fine
@Tyriar I have find the reason, ctrl+` have used by other application
@builden was it cmder that's using the keybinding?
@Tyriar It's my Chinese input application "QQ Pinyin"
@builden ah, I think that's pretty command for keybindings to break when an IME is active.
@Tyriar I have closed the IME keybinding, but another person is hard to find which app have binded the command
@Tyriar how to use in os x
{ "key": "ctrl+shift+t", "command": "launcher.terminal" }
no use
@Tyriar In Windows, I can't copy string from terminal page, I think this feature is necessary
@willin try this:
{ "key": "ctrl+shift+t", "command": "workbench.action.terminal.toggleTerminal" },
@builden polishing the copy and paste experience is planned for the June release https://github.com/Microsoft/vscode/issues/6451
Thanks everyone for your contributions! I'm going to lock the conversation to prevent pinging all the participants for smaller issues. If you find any other problems please check out the existing issue list and create a new one if necessary.
See https://github.com/Microsoft/vscode/issues/7302#issuecomment-225097257 for the proposed default keybindings used by the terminal.
You can see a glimpse of what's coming in v1.3.0 in the June test plan: https://github.com/Microsoft/vscode/issues/8222
Most helpful comment
Hi all, I've started work on the integrated terminal and have a prototype up and running (branch), this will likely be integrated into the product in the May release.
Prototype
Here's what it looks like so far:
Some things to call out:
.bashrc
is parsed and auto-complete works as you would expectInitial milestone
Here is a rough todo list for the initial milestone, not all of these will necessarily make it in for the May release:
Features
Customize background and foreground colors#6450Copy and paste#6451Add toggle terminal to menu#6452Support and test on Windows#6453 #6454Bugs
exit
)Prevent certain keybindings from triggering while in terminal?#6455Determine terminal character size in a font-agnostic way#6456Custom colors can be overridden in some cases (open and close#6457vim
)Beyond
Here are some of the ideas that will eventually be turned into issues/feature requests later on:
exit
ed? #6460