Eclipse Foundation Member
TM Terminal

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

Oxygen (4.7)
Neon (4.6)
Mars (4.5)
Luna (4.4)
Kepler (4.3)
Juno (4.2, 3.8)
Photon (4.8)
2018-09 (4.9)
2018-12 (4.10)


Learn more...

Details Group Tabs

Details

A fully working command-line Terminal inside Eclipse (renamed from "TCF Terminals").

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 in 4.0 20150430 (Mars M7):

  • Restructured from TCF into TM to simplify code, reduce plugins and promote contributions

Enhancements and Fixes in 1.2.1 (Luna SR2) - full list at http://eclip.se/3E

  • Faster access to local Terminal: Ctrl+Alt+T works on selection or active editor, while Ctrl+Alt+Shift+T provides an option dialog to use for remote terminals. Also, added "Show In" (Alt+Shift+W) support for many perspectives [435158, 435015]
  • New Preference for the default startup directory of the local terminal, and custom "Show-In" menus [454965, 435014]
  • Additional xterm emulation support for copy-and-paste across line breaks [453393, 458218, 458398, 458402]
  • Reduced dependencies - Terminal pulls in fewer plugins now
  • Fixed typing accent, umlaut and other non-English characters in the Terminal [448144]
  • Fixed restoring encoding of terminal sessions after restart [443046]
  • Fixed race condition that caused initial wrapping at 80 chars sometimes [435107, 460303]

Found an issue? - Please report a bug!

Interested in requesting enhancements, or participating?

Brought to you by the Eclipse TCF and Eclipse TM Committers from Wind River, with help from winpty@github, Mirko Raner, CDT, and many other Community Members.

Additional Details
Eclipse Versions: 
Oxygen (4.7), Neon (4.6), Mars (4.5), Luna (4.4), Kepler (4.3), Juno (4.2, 3.8), Photon (4.8), 2018-09 (4.9), 2018-12 (4.10)
Platform Support: 
Windows, Mac, Linux/GTK
Organization Name: 
Date Created: 
Thu, 2014-05-15 04:49
Development Status: 
Production/Stable
License: 
EPL
Date Updated: 
Tue, 2018-11-27 10:22
Screenshots
Metrics
DateRankingInstallsClickthroughs
December 201886/902588 (0.2%)30
November 201884/9391253 (0.2%)42
October 201888/9431214 (0.19%)34
September 201897/941976 (0.19%)35
August 201899/939992 (0.19%)28
July 2018107/940929 (0.17%)64
June 2018103/947888 (0.18%)39
May 2018114/954872 (0.16%)32
April 2018102/946959 (0.17%)45
March 2018102/9611011 (0.18%)32
February 201895/940924 (0.2%)44
January 2018111/945843 (0.17%)75
View Data for all Listings
Errors
External Install Button

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
Monday, December 17, 2018 - 04:27
nbeddoe's picture

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.

jdanielutk's picture

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!

moberhuber's picture

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.

jdanielutk's picture

Martin.

Thanks for the response.

Per your request, I have submitted bug #476709
https://bugs.eclipse.org/bugs/show_bug.cgi?id=476709

Let me know if you have questions.

Cheers,

John

sbergersst's picture

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?

moberhuber's picture

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.

ileitao's picture

I've tried to install from marketplace but when the "Confirm the Selected Features" appear under Tm Terminal 4.0 20150430 (Mars M7) http://download.eclipse.org/tm/terminal/marketplace there's only a feature (org.eclipse.tm.terminal.feature) which I cannot install

moberhuber's picture

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 !

jwannheden's picture

Even though I have configured the custom shell in the preferences, a new Terminal does not start it automatically. (Example: Git bash).

moberhuber's picture

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

ttruckle's picture

I configured git bash on my windows7 PC in Eclipse/Mars

I even restarted eclipse but I do not see the entry for the git command in the "show in" submenu regardless whether I click on a Project, a folder or on a resource.

what could have gone wrong?

bye
TT

jwannheden's picture

As commented in the Bugzilla issue.

nmayrjg7's picture

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.

moberhuber's picture

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 :)

jhohwiller's picture

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.

moberhuber's picture

Hello Jörg, the default binding for JDT "Open Type" is [ctrl][shift][t] -- our bindings with [ctrl][alt] are usually unbound.
Perhaps you've been using a custom configuration, or your host has been remapping modifiers in a nonstandard way ?

jhohwiller's picture

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)

moberhuber's picture

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

dshahemp's picture

I found this plugin very helpful especially when you have to use windows shell extensively. I give this plugin 5 stars.

wbeaton's picture

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...

pverest's picture

Finally local terminal for Windows and Linux, see http://stackoverflow.com/questions/1562600/is-there-an-eclipse-plugin-to...

Please vote for Git Bash on Windows support
https://bugs.eclipse.org/bugs/show_bug.cgi?id=435014