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.
Reviews Sign in to post reviews
background colors
Submitted by Stefan Berger on Thu, 2015-05-21 02:58
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?
Use Preferences : Terminal : Invert Colors
Submitted by Martin Oberhuber on Fri, 2015-05-22 05:42
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.
Cannot install in eclipse Luna
Submitted by Ivo Leitao on Sun, 2015-05-17 05:06
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
Works for me, please file a bug for getting more info
Submitted by Martin Oberhuber on Wed, 2015-05-20 12:23
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 !
Terminal does not start with custom shell
Submitted by Johan Wannheden on Fri, 2015-05-08 05:35
Even though I have configured the custom shell in the preferences, a new Terminal does not start it automatically. (Example: Git bash).
Known issue, custom shells are for Rightclick > Show In only
Submitted by Martin Oberhuber on Tue, 2015-05-12 04:10
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
custom shell not visible in "show in"
Submitted by Timothy Truckle on Tue, 2015-06-30 08:25
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
"Show In" doesn't work on Java projects
Submitted by Martin Oberhuber on Tue, 2015-06-30 15:25
See https://bugs.eclipse.org/bugs/show_bug.cgi?id=467048
Good proposal
Submitted by Johan Wannheden on Fri, 2015-05-22 02:13
As commented in the Bugzilla issue.
java.lang.NoClassDefFoundError: org/eclipse/cdt/utils/pty/PTY$Mo
Submitted by Nimo Mayr on Thu, 2015-04-30 04:21
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.
How exactly did you install ?
Submitted by Martin Oberhuber on Thu, 2015-04-30 15:14
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 :)
[ctrl][alt][t] is already bound to open type
Submitted by Jörg Hohwiller on Mon, 2015-04-13 08:36
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.
Hello Jörg, the default
Submitted by Martin Oberhuber on Fri, 2015-04-17 07:03
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 ?
Exception in vanilla Eclipse Luna SR2
Submitted by Jörg Hohwiller on Mon, 2015-04-13 08:33
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)
Exception due to incomplete install ?
Submitted by Martin Oberhuber on Fri, 2015-04-17 07:09
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
This plugin made my life lot easier
Submitted by Digant Shah on Mon, 2014-10-27 12:17
I found this plugin very helpful especially when you have to use windows shell extensively. I give this plugin 5 stars.
Works like a charm on Kepler
Submitted by Wayne Beaton on Tue, 2014-05-20 15:19
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...
Hooray!
Submitted by Paul Verest on Thu, 2014-05-15 22:35
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