New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Integrated Shell/Terminal Access #14490

Open
Peteous opened this Issue May 18, 2017 · 29 comments

Comments

Projects
None yet
@Peteous

Peteous commented May 18, 2017

Prerequisites

Description

Windows 10 now has a bash terminal running on an Ubuntu underpinning. I want to access this terminal using Atom. There are some packages which report to do this on Mac and/or Linux, but nothing that I've found for Windows. I think Atom should have shell functionality built in like Sublime Text or Microsoft Visual Studio Code. The later even allows you to choose which shell to use based on which shells are installed, including windows power shell, CMD, or bash.

Steps to Reproduce

  1. Open Atom
  2. Write Code
  3. Go to commit
  4. Nowhere to commit
  5. Have to open separate terminal window
  6. Be sad

Expected behavior: [What you expect to happen]

  1. Press some sort of key combo (whether ctrl+` or ctrl+Shift+P and type Terminal)
  2. get access to terminal in window or pane
  3. Terminal automatically changes directory to current directory of file that you're working on

Actual behavior: [What actually happens]

  1. Nothing (currently)
  2. Have to open terminal app seperately an change directory manually

Reproduces how often: [What percentage of the time does it reproduce?]
100%

Versions

1.17

Additional Information

Please consult Microsoft's Visual Studio Code editor for how to implement an integrated terminal well

@zorn-v

This comment has been minimized.

zorn-v commented May 22, 2017

@smlmrkhlms

This comment has been minimized.

smlmrkhlms commented May 31, 2017

Is this on the roadmap?

@austincondiff

This comment has been minimized.

austincondiff commented Jun 2, 2017

I would love to see this happen as well, especially with the newly introduced panes!

My typical setup on the mac consists of a fullscreen atom window, then i split screen with a Hyper terminal window to the right. It would be much better if a terminal was always open to the project folder in the right pane. I could collapse or expand the pane anytime as needed.

image
image
image

@Peteous

This comment has been minimized.

Peteous commented Jun 2, 2017

Absolutely would be perfect in the new panes interface.

@zorn-v

This comment has been minimized.

zorn-v commented Jun 2, 2017

Peoples are you tried platformio-ide-terminal ?
With "windows bash" (but not cmd or PS) it not so perfect (history not work) but other things is great - many terminals etc.

@austincondiff

This comment has been minimized.

austincondiff commented Jun 2, 2017

@zorn-v It looks like this plugin doesn't utilize Atoms new pane UI. It adds it's own bar at the bottom which looks messy and inconsistent.

I am looking for a more built-in solution. I strongly believe there is a strong use case to build a terminal like Hyper in Atom's core plugins. The terminal would be hackable and/or customizable. It would at least adhere to the currently installed syntax theme.

@zorn-v

This comment has been minimized.

zorn-v commented Jun 2, 2017

I suggest what you want. But its not so simply to make "windows console".
Just compare how implemented terminal in above package... (I fix binaries for windows when atom x64 for windows was released and I know what I'm talking about)
Styles etc. you may implement in your "user style"
Is it HACKABLE editor or not ? 😸

@austincondiff

This comment has been minimized.

austincondiff commented Jun 2, 2017

It is not impossible, as proved by Hyper. It is based on Electron I believe. (www.hyper.is)

@austincondiff

This comment has been minimized.

austincondiff commented Jun 2, 2017

I can appreciate the git gui and github integration that they built into atom, however it would also be nice to build in a terminal for more control while they are at it.

@austincondiff

This comment has been minimized.

austincondiff commented Jun 2, 2017

Just imagine quickly typing out touch index.html or mkdir client. Much easier than right clicking, add file, typing in the filename, pressing enter, etc.

@zorn-v

This comment has been minimized.

zorn-v commented Jun 2, 2017

I dont say that it imposible. I just say that it not so easy as you can think.

@zorn-v

This comment has been minimized.

zorn-v commented Jun 2, 2017

If it already implemented somewere in similar project does not mean "JUST DO IT"

@zorn-v

This comment has been minimized.

zorn-v commented Jun 2, 2017

But I also want in it 😄
But for now is enough platformio-ide-terminal (on windows machine minimal work)
For composer update php -S localhost:1234 -t web etc. its enought
But many terminals is great. In one you use server, in another something like grunt watch and third one for making Symfony console comands

@zorn-v

This comment has been minimized.

zorn-v commented Jun 2, 2017

Just imagine quickly typing out

Seems I dont undestand you. What problem to start "bash" (on win 10) or just to configure it in configuration ?
Seems you just not tried it.

@Mr-Chilly

This comment has been minimized.

Mr-Chilly commented Jun 9, 2017

platformio-ide-terminal I have found to be buggy. I had to 'faff' to get anything other than cmd working, finally got cmder working but things like copy and paste are glitchy. Swapping panes isn't intuitive either.
It's great to get by with, but nothing beats first-class shell integration.

you'd have thought it would be top priority nowadays! fingers crossed!

@50Wliu

This comment has been minimized.

Member

50Wliu commented Jun 12, 2017

Some people (@DamnedScholar in particular) have been recommending termination as a great terminal package which is less buggy than platformio-ide-terminal and terminal-plus.

@austincondiff

This comment has been minimized.

austincondiff commented Jun 12, 2017

I just found this... https://atom.io/packages/atom-terminal-tab

I still think a more built-in integrated solution is a no brainer, but this might do for now.

@austincondiff

This comment has been minimized.

austincondiff commented Jun 12, 2017

Atom Terminal Tab uses xterm.js - https://github.com/jsmecham/xterm.js

Just in case anyone was looking to build this into Atom.

@ShayBox

This comment has been minimized.

ShayBox commented Sep 13, 2017

I think Atom needs its own built-in or Official package for this, not only for reliability, but so other plugins can use it as a dependency, like build or atom-runner, they can integrate with it instead of using their own popup.

@TJProgrammer

This comment has been minimized.

TJProgrammer commented Apr 8, 2018

An issue closed because the terminal isn't bult-in in atom: #13451

@zorn-v

This comment has been minimized.

zorn-v commented Apr 8, 2018

Maybe it is wrong ?
Terminal in programmer text editor is MUST HAVE.
Yes I know about problems, but....
Currently only "platform io ide terminal" worth a look

@Mr-Chilly

This comment has been minimized.

Mr-Chilly commented Apr 9, 2018

tbh guys, I'm sorry to say I'm now on VSCode - as it has a near perfect built in terminal

@jgaehring

This comment has been minimized.

jgaehring commented Apr 25, 2018

is there a process for proposing that platformio-ide-terminal (or a fork of it, or another terminal package) be made a core package?

@laughedelic

This comment has been minimized.

laughedelic commented Apr 26, 2018

Atom IDE UI has got a terminal since the v0.11.0 release. I think it still requires quite some polishing, but on the first glance works pretty well overall.

@amejia1

This comment has been minimized.

amejia1 commented May 5, 2018

I too would love to see Atom provide a built-in terminal emulator. In the meantime, I've been using atom-xterm which I wrote myself. Still, I now reference this issue in the README for those that would rather see Atom provide a built-in terminal (which does not have to be atom-xterm BTW).

Here are some of the reasons I think Atom should have a built-in terminal package by default, based on my workflow and what I've been able to implement in atom-xterm.

  • Open terminals inside the Atom workspace.
  • Having the ability for terminals to open bash (or any program) with the current working directory set to the main project.
  • Open as many terminals as needed inside the Atom workspace.
  • Place terminals anywhere in the workspace (i.e. left dock, right dock, bottom dock, and the main workspace).
  • Have Atom reopen terminals as they were before Atom was exited.
  • Profiles support, that is, support for saving and loading what commands with args and other options you want to run in a terminal (thus making good use of Atom's feature for reopening terminals).
  • Notifications of when output was received per terminal in the Atom workspace.
  • Notifications of when commands have finished along with their exit codes, within Atom.
@jasmith79

This comment has been minimized.

jasmith79 commented Oct 4, 2018

There are (at least) two kinds of programmers: those who view their text editor as a simple tool to be included in a suite of tools, and those who live in their text editor. There are plenty of plugins to integrate file browsers, chat clients, debuggers, etc. into vim/neovim, emacs is of course a loving paean to the second sort, etc. etc. In vim/emacs I have not only the full power of a shell, but the full power of my shell with all of my customizations at my fingertips, no alt-tab et. al. While simultaneously having the full power of my text editor (with all my customizations).

If atom is going to replace the classic editors it needs to have a compelling story wrt terminal integration/emulation and 6 different userland plugins 4 of which haven't had an update in 3 years is not a good story. I love a lot of things about atom especially for front end work, but this is keeping it from being my full-time editor.

And that's a shame, because atom is gorgeous, useful, extensible, but more than that: the out-of-box experience is almost unparalleled. If I had to recommend a text editor to a beginner tomorrow it would be atom. But that hypothetical noob isn't going to get very far without gcc/npm/gem/pip/lein/etc. and now I have to explain yet another tool (the terminal emulator) running yet another tool (the shell) so they can use yet another tool (the compiler/debugger/package manager).

@PerBothner

This comment has been minimized.

PerBothner commented Oct 9, 2018

Please try atom-domterm, which is a wrapper for DomTerm. See the web-sites for a summary of features; this article is good introduction to DomTerm in general, though it only touches on atom-domterm.

I am actively developing DomTerm - I'm currently working on better integration with line input editors (such as bash's readline), aiming for much of the functionality of UpTerm/FinalTerm.

Installing atom-domterm currently requires downloading and installing domterm; atom-domterm then starts up and communicates with the domterm executable (a C program). It would be nice to be able to do this automatically and/or have the server be an npm application. That isn't my area of expertise, but I'll be happy to work with anyone who wants to work on that.

I have not tried running atom-domterm under Windows, but domterm works well (using Electron or a web browser), assuming WSL (Windows System for Linux) is installed. Now that Windows has native pty support, one can imagine porting domterm to native (non-WSL) Windows, but I have not looked into it.

@jasmith79

This comment has been minimized.

jasmith79 commented Oct 12, 2018

@PerBothner crashes atom, whether opening view, or trying to split into pane.

Atom 1.31.2 64bit Mac OS X High Sierra.

I made an issue on the atom-domterm repo.

@PerBothner

This comment has been minimized.

PerBothner commented Oct 12, 2018

Thanks for trying atom-domterm. See the the issue for discussion. (I don't have access to Mac OS, so I can't test on that platform.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment