This Eclipse plugin allows to open a shell window or file manager from the popup menu in the navigation tree or editor view. Additionally it is possible to run selected file in the shell, copy file or directory path or run user defined external tools. Key shortcuts and multiple selections are also supported!
Installation:
Eclipse Markeplace: https://marketplace.eclipse.org/content/easyshell
OR
Use update site: https://anb0s.github.io/EasyShell
OR
Download EasyShell from GitHub OR Download EasyShell from SourceForge
extract it to “eclipse\dropin” folder and restart.
Features:
The plugin is platform independent in principal. It just launches a (configurable) system command to open the shell, file explorer or other user defined command. It also copies path etc. to clipboard. Just open context menu for an Eclipse editor or selected resource in some view:
Keyboard-shortcuts:
ATTENTION For EasyShell v2.2 and newer all shortcuts are starting with Alt + E and after releasing one of the letters A, E, C, D, X, O, R, U must be used:
Alt + E, A: Main popup menu shows all commands and multiple commands can be selected (EasyShell v2.1 and older: Alt + E)
Alt + E, E: Main popup menu shows all commands and one commands can be directly selected (EasyShell v2.1 and older: Alt + Shift + E)
Shortcuts that executes the command directly if only one defined or opens a popup menu like Alt + E, E reduced for category:
Alt + E, O: Open - open or show in shell
Alt + E, R: Run - execute in shell
Alt + E, X: Explore - open and select in file browser
Alt + E, C: Clipboard - copy to clipboard
Special and not available if no user defined categories are available:
Alt + E, U: User - user defined category
Special and not available for all OS:
Alt + E, D: Default - open with default application
Supported OS and commands:
The following platform, shell combinations and tools are supported as selections available in the preferences page. The user can define own commands and menues or just adapt the predefined ones!
Windows:
- Terminals
- Command prompt (known as DOS shell or cmd.exe) also as admin
- PowerShell (also as admin)
- Windows Terminal
- Bash
- Cygwin: https://cygwin.com
- Git for Windows 1.x/2.x: https://git-for-windows.github.io
- Msys2 / MinGW32 / MinGW64: https://www.msys2.org
- Console:
- Console2: https://sourceforge.net/projects/console
- ConsoleZ: https://github.com/cbucher/console
- ConEmu: https://conemu.github.io
- Cmder: https://github.com/cmderdev/cmder
- PowerCmd: https://www.powercmd.com
- File Browsers
- Explorer
- TotalCommander: https://www.ghisler.com
- DoubleCommander: https://doublecmd.sourceforge.io
- Q-Dir (Quad Explorer): https://www.softwareok.de/?seite=Freeware/Q-Dir
Linux:
- Terminals
- XDG Open
- KDE Konsole
- Gnome Terminal
- Xfce Terminal
- MATE Terminal
- LX Terminal
- Sakura Terminal
- ROXTerm
- Pantheon Terminal
- Guake
- Enlightenment Terminology
- File Browsers
- Konqueror
- Pantheon
- PCManFM
- Nautilus
- Dolphin
- Nemo
- Thunar
- Caja
- Krusader
- DoubleCommander: https://doublecmd.sourceforge.io
- Midnight Commander: https://midnight-commander.org
- Sunflower: https://sunflower-fm.org
MAC OS X
- Terminals
- Open
- Terminal
- iTerm
- File Browsers
- Finder
All OS
- Open with / Edit
- Eclipse - Full Path : line number
- Copy to clipboard:
- Full Path
- Full Path Unix (@Windows)
- Qualified Name
- … more configurable…
If path to your tool is not added to PATH variable, please add it or adapt the command in EasyShell!
Preferences:
But you can configure any shell or command you like as long as you can figure out how to run a command to open the shell with given parameters or execute the tool you want.
The following substitution variables are available for building the command:
-
${easyshell:resource_loc}
= absolute path of file or directory -
${easyshell:resource_name}
= name of file or directory -
${easyshell:resource_basename}
= name of file without extension -
${easyshell:resource_extension}
= extension of file name (without ‘.’) -
${easyshell:resource_path}
= relative path of file or directory (to workspace) -
${easyshell:resource_loc_path}
= relative location path of file or directory (to workspace) -
${easyshell:resource_project_path}
= relative path of file or directory (to project) -
${easyshell:resource_project_loc_path}
= relative location path of file or directory (to project) -
${easyshell:resource_line_number}
= line number (within view or editor) -
${easyshell:selected_text_start_line}
= selected text start line (within view or editor), it’s equal to${easyshell:resource_line_number}
-
${easyshell:selected_text_end_line}
= selected text end line (within view or editor) -
${easyshell:selected_text_length}
= selected text length (within view or editor) -
${easyshell:selected_text_offset}
= selected text offset (within view or editor) -
${easyshell:selected_text}
= selected text (within view or editor) -
${easyshell:container_loc}
= absolute path of file directory or directory itself -
${easyshell:container_name}
= name of file directory or directory itself -
${easyshell:container_path}
= relative path of file directory or directory itself (to workspace) -
${easyshell:container_loc_path}
= relative location path of file’s parent directory or directory itself (to workspace) -
${easyshell:container_project_path}
= relative path of file’s parent directory or directory itself (to project) -
${easyshell:container_project_loc_path}
= relative location path of file’s parent directory or directory itself (to project) -
${easyshell:parent_loc}
= absolute path of parent directory, for files it’s equal to${easyshell:container_loc}
-
${easyshell:parent_name}
= name of parent directory, for files it’s equal to${easyshell:container_name}
-
${easyshell:parent_path}
= relative path to workspace of parent directory, for files it’s equal to${easyshell:container_path}
-
${easyshell:parent_loc_path}
= relative location path of parent directory (to workspace); for files it’s equal to${easyshell:container_loc_path}
-
${easyshell:parent_project_path}
= relative path of parent directory (to project); for files it’s equal to${easyshell:container_project_path}
-
${easyshell:parent_project_loc_path}
= relative location path of parent directory (to project); for files it’s equal to${easyshell:container_project_loc_path}
-
${easyshell:project_loc}
= absolute path of project -
${easyshell:project_name}
= name of project -
${easyshell:project_path}
= relative path to workspace of project -
${easyshell:project_loc_name}
= location name (folder) of project -
${easyshell:project_parent_loc}
= absolute path of project’s parent -
${easyshell:workspace_loc}
= absolute path of workspace -
${easyshell:workspace_loc_name}
= location name (folder) of workspace -
${easyshell:windows_drive}
= drive letter of file or directory on Windows -
${easyshell:qualified_name}
= full qualified (class) name -
${easyshell:line_separator}
= line separator, e.g. ‘\n’ (Unix) or ‘\r\n’ (Windows) -
${easyshell:path_separator}
= path separator, e.g. ‘:’ (Unix) or ‘;’ (Windows) -
${easyshell:file_separator}
= file separator, e.g. ‘/’ (Unix) or ‘\’ (Windows) -
${easyshell:script_bash}
= Bash script (internal) - and all other available variables in Eclipse
The following substitution variables are available for building the menu name:
-
${easyshell:command_category}
= command category -
${easyshell:command_type}
= command type -
${easyshell:command_name}
= command name -
${easyshell:command_os}
= command operating system