TM Terminal

Add this URL to your Eclipse Installation to reach this solution's update site.

2024-03 (4.31)

https://download.eclipse.org/tools/cdt/releases/11.5

2023-12 (4.30)

https://download.eclipse.org/tools/cdt/releases/11.4

2023-09 (4.29)

https://download.eclipse.org/tools/cdt/releases/11.3

2023-06 (4.28)

https://download.eclipse.org/tools/cdt/releases/11.2

2023-03 (4.27)

https://download.eclipse.org/tools/cdt/releases/11.1

2022-12 (4.26)

https://download.eclipse.org/tools/cdt/releases/11.0

2022-09 (4.25), 2022-06 (4.24)

https://download.eclipse.org/tools/cdt/releases/10.7

2022-03 (4.23)

https://download.eclipse.org/tools/cdt/releases/10.6

2021-12 (4.22)

https://download.eclipse.org/tools/cdt/releases/10.5

2021-09 (4.21)

https://download.eclipse.org/tools/cdt/releases/10.4

2021-06 (4.20)

https://download.eclipse.org/tools/cdt/releases/10.3

2021-03 (4.19)

https://download.eclipse.org/tools/cdt/releases/10.2

2020-12 (4.18), 2021-03 (4.19)

https://download.eclipse.org/tools/cdt/releases/10.1

2020-09 (4.17)

https://download.eclipse.org/tools/cdt/releases/10.0

2020-06 (4.16), 2020-03 (4.15)

https://download.eclipse.org/tools/cdt/releases/9.11/

2019-12 (4.14), 2019-09 (4.13), 2019-06 (4.12), 2019-03 (4.11), 2018-12 (4.10), 2018-09 (4.9), Photon (4.8), Oxygen (4.7), Neon (4.6), Mars (4.5), Luna (4.4), Kepler (4.3), Juno (4.2, 3.8), 2024-03 (4.31)

https://download.eclipse.org/tm/terminal/marketplace

Learn more...
Solution Description

A fully working command-line Terminal inside Eclipse. Just press Ctrl+Alt+T to open a local command prompt (Terminal). That's all - it just works :) Previous sessions are remembered and auto-reconnected on quit and restart. Supports Windows, Linux and Mac. For additional options or remote sessions, use Ctrl+Alt+Shift+T or click the "Terminal" toolbar button. Supports SSH, Telnet or Serial line. Full ANSI cursor control, readline and coloring, Use vi, emacs or similar programs on any remote host. In the Terminal, type Alt+Up to maximize or restore it. Use Alt+Right for quick access to other Eclipse views. Type Ctrl+PgUp/PgDn to switch between multiple Terminal Tabs. See Preferences > Terminal for additional options like registering custom shell environments (like Git Bash, Cygwin, or just custom PATH settings).

Enhancements and Fixes are now listed in the CDT New and Noteworthy document's Terminal section 

Found an issue? - Please report an issue!

Interested in requesting enhancements, or participating? Read the contribution guide.

Brought to you by the Eclipse CDT Committers with help from winpty@github, and many other Community Members.

Additional Details

Eclipse Versions: 2024-03 (4.31), 2023-12 (4.30), 2023-09 (4.29), 2023-06 (4.28), 2023-03 (4.27), 2022-12 (4.26), 2022-09 (4.25), 2022-06 (4.24), 2022-03 (4.23), 2021-12 (4.22), 2021-09 (4.21), 2021-06 (4.20), 2021-03 (4.19), 2020-12 (4.18), 2020-09 (4.17), 2020-06 (4.16), 2020-03 (4.15), 2019-12 (4.14), 2019-09 (4.13), 2019-06 (4.12), 2019-03 (4.11), 2018-12 (4.10), 2018-09 (4.9), Photon (4.8), Oxygen (4.7), Neon (4.6), Mars (4.5), Luna (4.4), Kepler (4.3), Juno (4.2, 3.8)

Platform Support: Windows, Mac, Linux/GTK

Organization Name: Eclipse Foundation

Development Status: Production/Stable

Date Created: Thursday, May 15, 2014 - 04:49

License: EPL 2.0

Date Updated: Sunday, March 10, 2024 - 12:57

Submitted by: Martin Oberhuber

Screenshot
Date Ranking Installs Clickthroughs
March 2024 74/688 529 20
February 2024 93/687 373 34
January 2024 96/691 401 34
December 2023 106/671 330 21
November 2023 92/686 489 22
October 2023 97/673 436 15
September 2023 97/663 434 30
August 2023 99/673 382 16
July 2023 94/668 431 26
June 2023 96/669 459 17
May 2023 87/671 574 23
April 2023 87/667 540 25
View Data for all Listings

Unsuccessful Installs

Unsuccessful Installs in the last 7 Days: 0

Download last 500 errors (CSV)

Marketplace Drag to Install Button

By adding the following code below to your website you will be able to add an install button for TM Terminal.

HTML Code:

Markdown Syntax:

Output:

Drag to your running Eclipse* workspace. *Requires Eclipse Marketplace Client

Reviews Add new review

Hi~ Martin!
Thanks for your effort for this great Terminal in Eclipse.

One thing I want is the feature of changing background color for Terminal.

In reply to by Hyeongseok Heo

Thanks Harry :) You can invert the Terminal colors in Preferences > Terminal to get a black background. That's also set automatically with Dark Theme. Setting "any" background color would not quite feel right to me, since the remote side really requests colors through ANSI codes ... on the other hand, the request has come a couple times, so we'd appreciate a contribution along these lines.

Hello. I was wondering if you can start a terminal from a run configuration and pass arguments to make a connection?

In reply to by Robert S. Liotta

Hi Robert, we don't have an integration of Terminal with the Launch Configuration / External Tool Launches as of today. The older RSE Terminal did have that a couple years ago, so maybe some code could be re-used; contributions would be welcome, ideally by first filing an enhancement request on bugzilla to discuss the details :)

In reply to by nimo mayr

This issue, as well as a workaround, is now tracked on
https://bugs.eclipse.org/bugs/show_bug.cgi?id=479591
It currently looks like due to using eclipse-installer, an old version of cdt.core was picked up from the user's bundlePool. The issue will not happen when downloading a full EPP package, or when installing the terminal from the Marketplace.

Your plug in was the final missing piece from my Eclipse set up. You've turned it into the perfect C++ development environment. I can run custom apps and debuggers from within Eclipse now. Thanks.

Martin - Great work here. Really liking this plugin.

Quick question: Is there a way that I can configure the plugin to stretch the width of the terminal screen to match the Eclipse View width? Right now, the terminal allows me to type commands on the first 80 characters and then it wraps (to the front of the same line... ugh). Ideally, what I am looking for is a setting that will allow the terminal to use all of the columns displayed available by the width of the enclosing Eclipse View panel ...~200 characters or more. Is this possible? Thanks for the info. Cheers!

In reply to by John Daniel

Hi John, auto-resizing to width of the Eclipse view works fine for me on Linux and Windows local, as well as SSH.
What is your host OS, and what is your terminal connector ? - I suggest filing a bug for what you see. On Linux, typing "resize" in the Terminal may print interesting information.

Great work, thanks for the plugin. On the screenshot the cmd shell background is black. For me it's always white, where can I change it?

In reply to by Stefan Berger

Hi Stefan, you can switch to a "Dark Terminal" by using "Preferences : Terminal : Invert Colors".

It should also work automatically when you choose "Preferences : Appearance : Theme : Dark", but it seems that got broken with the recent TM 4.0 Refactoring. I've filed https://bugs.eclipse.org/bugs/show_bug.cgi?id=467985 for that issue.

In reply to by Ivo Leitao

Hi Ivo, I just tried with a fresh Eclipse LunaSR2 JEE package on Linux x86_64, used Help > Marketplace to install Terminal into it ... no issues, works fine for me. Can you please report a bug on http://eclip.se/4a and let us know the exact version of Luna you use, your host platform, as well as any error messages from Window > Show View > Other > Error Log. Thanks !

In reply to by Johan Wannheden

Hi Johan,

many thanks for your feedback. I think your request is a known issue, as of today the custom shells only affect the rightclick > Show In menu which makes them a bit hard to use. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=460496 and check whether the proposal matches your needs.

Thanks!
Martin

I am using Eclipse Luna SR2 and installed this plugin (v 1.3.0.201...). It does not work. When open a new local terminal, the following error is shown:

org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: org/eclipse/cdt/utils/pty/PTY$Mode
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:62)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:247)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:229)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:149)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:825)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:701)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$6(HandledContributionItem.java:685)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:613)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4199)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1467)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1490)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1475)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1279)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4042)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3669)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
Caused by: java.lang.NoClassDefFoundError: org/eclipse/cdt/utils/pty/PTY$Mode
at org.eclipse.tcf.te.ui.terminals.local.launcher.LocalLauncherDelegate.createTerminalConnector(LocalLauncherDelegate.java:300)
at org.eclipse.tcf.te.ui.terminals.services.TerminalService.createTerminalConnector(TerminalService.java:252)
at org.eclipse.tcf.te.ui.terminals.services.TerminalService.executeServiceOperation(TerminalService.java:169)
at org.eclipse.tcf.te.ui.terminals.services.TerminalService.openConsole(TerminalService.java:267)
at org.eclipse.tcf.te.ui.terminals.local.launcher.LocalLauncherDelegate.execute(LocalLauncherDelegate.java:212)
at org.eclipse.tcf.te.ui.terminals.internal.handler.LaunchTerminalCommandHandler.execute(LaunchTerminalCommandHandler.java:85)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:294)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
... 40 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.cdt.utils.pty.PTY$Mode cannot be found by org.eclipse.tcf.te.ui.terminals.local_1.3.0.201502201446
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:382)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 53 more

Another thing is: Why reinventing a new terminal view? Would be nice to integrate the host terminal within the eclipse view. For example, when opening a word-document within eclipse, then a new window opens with the associated host application within eclipse. How can I make this work with the terminal on mac os? I want to have the host terminal of mac os within the eclipse-window, so I have not switch from one app to another.

In reply to by nimo mayr

Hello Nimo,

Your backtrace seems to indicate a missing CDT Fragment. Which Eclipse Luna SR2 package did you start from, and how, exactly, did you install ? - Only installing from the Marketplace Repo is supported at this time and ensures all dependencies are there:

http://download.eclipse.org/tm/terminal/marketplace

For follow-up on your issue, please file a bug at http://eclip.se/4a

Regarding the suggestion to embed the native terminal, I'm afraid that native terminals generally don't support the OLE / DDE APIs that Word has for these kind of things. But we hope that you'll like our integrated Terminal too :)

I do not understand why you are using a standard key-binding that is already in use by eclipse (JDT).
Please consider a different default to avoid clashes. All Java developers are used to [ctrl][alt][t] opening the "open type" popup.

I just downloaded a fresh Eclipse Luna SR2 JEE Edition for Win64 and TCF. When I open a terminal I get this error:
java.lang.ClassNotFoundException: org.eclipse.tcf.te.runtime.services.interfaces.ITerminalService cannot be found by org.eclipse.tcf.te.ui.terminals_1.2.0.201405271222
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:432)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:568)
at org.eclipse.tcf.te.runtime.services.ServiceManager.loadServices(ServiceManager.java:116)
at org.eclipse.tcf.te.runtime.services.AbstractServiceManager.(AbstractServiceManager.java:300)
at org.eclipse.tcf.te.runtime.services.ServiceManager.(ServiceManager.java:40)
at org.eclipse.tcf.te.runtime.services.ServiceManager$LazyInstance.(ServiceManager.java:33)
at org.eclipse.tcf.te.runtime.services.ServiceManager.getInstance(ServiceManager.java:47)
at org.eclipse.tcf.te.ui.terminals.local.launcher.LocalLauncherDelegate.execute(LocalLauncherDelegate.java:127)
at org.eclipse.tcf.te.ui.terminals.internal.handler.LaunchTerminalCommandHandler.execute(LaunchTerminalCommandHandler.java:86)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:294)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:247)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:229)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:149)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:286)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:507)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:558)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:378)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.java:324)
at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:86)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1060)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1112)
at org.eclipse.swt.widgets.Text.sendKeyEvent(Text.java:1734)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1108)
at org.eclipse.swt.widgets.Widget.wmKeyDown(Widget.java:1831)
at org.eclipse.swt.widgets.Text.wmKeyDown(Text.java:3025)
at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Control.java:4975)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4642)
at org.eclipse.swt.widgets.Text.windowProc(Text.java:2610)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2549)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
at org.eclipse.equinox.launcher.Main.main(Main.java:1438)

In reply to by Jörg Hohwiller

Hello Jörg, as per your log "org.eclipse.tcf.te.ui.terminals_1.2.0.201405271222" is way too old, so I suspect you created an inconsistent install somehow. The Terminal works fine on top of Luna SR2 JEE, but you need to install it from this Marketplace Listing. Only then will you get the TCF updates from the Mars Stream that Terminal needs to function.
The Update Site as per the download button is currently http://download.eclipse.org/tools/tcf/terminals_lunasr2

In the process of installing on Eclipse Kepler, I opted to update several TM features (the other option being to install an older version of the terminal support). It works well so far...