<p>I have been using Eclipse as an IDE for a short amount of time (about 3 months of full use) and almost every day I learn about some shortcut or feature that I had absolutely no idea about.  For instance, just today I learned that <kbd>Ctrl</kbd>+<kbd>3</kbd> was the shortcut for a Quick Access window.</p>

<p>I was wondering what your most useful/favorite Eclipse features are.  With the IDE being so big, it would be helpful to learn about the more commonly used parts of the program.</p>

[{'answer_id': 20561, 'author': 'N8g', 'author_id': 1104, 'author_profile': 'https://Stackoverflow.com/users/1104', 'pm_score': 4, 'selected': False, 'text': '<p><kbd>Ctrl</kbd>-<kbd>Alt</kbd> (<kbd>up</kbd>/<kbd>down</kbd>)  Copy selected line(s) above or below current line.<br>\n<kbd>Alt</kbd> (<kbd>up</kbd>/<kbd>down</kbd>)  Move current (or multiple selected) lines up or down<br>\n<kbd>Ctrl</kbd>-<kbd>Shift</kbd>-<kbd>R</kbd>   Bring up the resource window, start typing to find class/resource<br>\n<kbd>Ctrl</kbd>-<kbd>O</kbd>    Bring up all methods and fields for the current class. Hitting it again will bring up all methods and fields for current class and super classes.<br>\n<kbd>Ctrl</kbd>-<kbd>/</kbd> or <kbd>Ctrl</kbd>-<kbd>Alt</kbd>-<kbd>C</kbd> Comment single or multiple lines with //<br>\n<kbd>Ctrl</kbd>-<kbd>Shift</kbd>-<kbd>/</kbd>   Comment selected lines with /* */<br>\n<kbd>Ctrl</kbd>-<kbd>.</kbd>    Take you to the next error or warning line  </p>\n'}, {'answer_id': 20572, 'author': 'Michael Sharek', 'author_id': 1958, 'author_profile': 'https://Stackoverflow.com/users/1958', 'pm_score': 0, 'selected': False, 'text': "<p>I find the project-specific settings useful in Eclipse 3.3.</p>\n\n<p>For example, if you have several developers working on a project who have different code styles for curly braces, line spacing, number of imports etc. then you can specify the style settings for the project.  Then you can configure the save actions so that the code is automatically formatted when a file is saved.  The result is everyone's code is formatted the same before it's checked in.</p>\n"}, {'answer_id': 20574, 'author': 'Ian Patrick Hughes', 'author_id': 2213, 'author_profile': 'https://Stackoverflow.com/users/2213', 'pm_score': 2, 'selected': False, 'text': '<p>I am also a fan of Eclipse, however since I spend a majority of my time in Visual Studio, I will suggest that you read Eric Sink\'s series of articles "C# to Java" (parts 1-4). Not only is Eric always an entertaining read, but this brief series covers some awesome Eclipse insight for those who have not been into Eclipse or have been away from it for a while:\n<br><br>\n<a href="http://www.ericsink.com/entries/java_eclipse_1.html" rel="nofollow noreferrer">From C# to Java: Part 1</a>\n<br>\n<a href="http://www.ericsink.com/entries/java_eclipse_2.html" rel="nofollow noreferrer">From C# to Java: Part 2</a>\n<br>\n<a href="http://www.ericsink.com/entries/java_eclipse_3.html" rel="nofollow noreferrer">From C# to Java: Part 3</a>\n<br> \n<a href="http://www.ericsink.com/entries/java_eclipse_4.html" rel="nofollow noreferrer">From C# to Java: Part 4</a></p>\n'}, {'answer_id': 20631, 'author': 'Cheekysoft', 'author_id': 1820, 'author_profile': 'https://Stackoverflow.com/users/1820', 'pm_score': 7, 'selected': True, 'text': '<p>My most commonly used features are</p>\n\n<p><kbd>ctrl</kbd>+<kbd>1</kbd> quick-fix / spell-checker</p>\n\n<p>opening files</p>\n\n<ul>\n<li><kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>t</kbd> load class file by classname</li>\n<li><kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>r</kbd> load any file by filename</li>\n</ul>\n\n<p>matches are made on the start of the class/filename. start your search pattern with a * to search anywhere within the filename/classname.</p>\n\n<p>Formatting</p>\n\n<ul>\n<li><kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>f</kbd> Format source file\n  (set up your formatting style in Window | preferences | java | code style | formatter)</li>\n<li><kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>o</kbd> Organise imports</li>\n</ul>\n\n<p>Generated code</p>\n\n<ul>\n<li><kbd>alt</kbd>+<kbd>s</kbd>,<kbd>r</kbd> to generate getters and setters</li>\n<li><kbd>alt</kbd>+<kbd>s</kbd>,<kbd>v</kbd> to insert method signatures for overidden methods from superclass or interface</li>\n</ul>\n\n<p>Refactorings</p>\n\n<ul>\n<li><kbd>alt</kbd>+<kbd>shift</kbd>+<kbd>l</kbd> Extract text-selection as local variable (really handy in that it determines and inserts the type for you.</li>\n<li><kbd>alt</kbd>+<kbd>shift</kbd>+<kbd>m</kbd> Extract text-selection as a method</li>\n<li><kbd>alt</kbd>+<kbd>shift</kbd>+<kbd>i</kbd> inline selected method</li>\n</ul>\n\n<p>Running and debugging.</p>\n\n<p><kbd>alt</kbd>+<kbd>shift</kbd>+<kbd>x</kbd> is a really handy prefix to run stuff in your current file.</p>\n\n<ul>\n<li><kbd>alt</kbd>+<kbd>shift</kbd>+<kbd>x</kbd>, <kbd>t</kbd> run unit tests in current file</li>\n<li><kbd>alt</kbd>+<kbd>shift</kbd>+<kbd>x</kbd>, <kbd>j</kbd> run main in current file</li>\n<li><kbd>alt</kbd>+<kbd>shift</kbd>+<kbd>x</kbd>, <kbd>r</kbd> run on server</li>\n</ul>\n\n<p>There are more. The options are shown to you in the lower-right popup after hitting <kbd>alt</kbd>+<kbd>shift</kbd>+<kbd>x</kbd>.</p>\n\n<p><kbd>alt</kbd>+<kbd>shift</kbd>+<kbd>x</kbd> can be switched for <kbd>alt</kbd>+<kbd>shift</kbd>+<kbd>d</kbd> in all the above examples to run in the debugger.</p>\n\n<p>Validation</p>\n\n<p>As of the recent Ganymede release, you can now switch of validation in specified files and folders. I\'ve been waiting for this feature for ages.</p>\n\n<ul>\n<li>Go to Project | Properties | Validation</li>\n<li>click on the ... button in the settings column of the validator you want to shut up</li>\n<li>Add a rule to the <em>exclude group</em></li>\n</ul>\n\n<p>code navigation</p>\n\n<ul>\n<li>hold down <kbd>ctrl</kbd> to make all variables, methods and classnames hyperlinks to their definitions.</li>\n<li><kbd>alt</kbd>+<kbd>left</kbd> to navigate back to where you clicked <kbd>ctrl</kbd></li>\n<li><kbd>alt</kbd>+<kbd>right</kbd> to go "forwards" again</li>\n</ul>\n'}, {'answer_id': 20804, 'author': 'abyx', 'author_id': 573, 'author_profile': 'https://Stackoverflow.com/users/573', 'pm_score': 2, 'selected': False, 'text': '<p>One key feature: <kbd>Shift</kbd>+<kbd>Alt</kbd>+<kbd>T</kbd> for the refactoring menu.</p>\n'}, {'answer_id': 20849, 'author': 'David Schlosnagle', 'author_id': 1750, 'author_profile': 'https://Stackoverflow.com/users/1750', 'pm_score': 2, 'selected': False, 'text': '<p>A lot of the key bindings depend on the perspective and view currently active.</p>\n\n<p>My most used ones for the Java perspective:</p>\n\n<ul>\n<li><kbd>ctrl</kbd>-<kbd>shift</kbd>-<kbd>r</kbd> open resource</li>\n<li><kbd>ctrl</kbd>-<kbd>shift</kbd>-<kbd>t</kbd> open type</li>\n<li><kbd>ctrl</kbd>-<kbd>1</kbd> quick fix/refactor</li>\n<li><kbd>ctrl</kbd>-<kbd>j</kbd> incremental search</li>\n<li><kbd>ctrl</kbd>-<kbd>h</kbd> search in files (select a base directory and set scope to selected resources)</li>\n<li><kbd>ctrl</kbd>-<kbd>o</kbd> list methods</li>\n<li><kbd>ctrl</kbd>-<kbd>alt</kbd>-<kbd>h</kbd> open call hierarchy</li>\n<li><kbd>ctrl</kbd>-<kbd>shift</kbd>-<kbd>l</kbd> list shortcut keys</li>\n<li>hit <kbd>ctrl</kbd>-<kbd>shift</kbd>-<kbd>l</kbd> again to go directly to preferences to change key mappings</li>\n</ul>\n'}, {'answer_id': 20963, 'author': 'David Koelle', 'author_id': 2197, 'author_profile': 'https://Stackoverflow.com/users/2197', 'pm_score': 2, 'selected': False, 'text': '<ul>\n<li><kbd>Ctrl</kbd>-<kbd>shift</kbd>-<kbd>T</kbd>, but only type the initial characters (and even a few\nmore) of the class you\'re looking\nfor.  For example, you can type\n"NetLi" to find NetworkListener</li>\n<li>In the Search window, <kbd>Ctrl</kbd>-<kbd>.</kbd> takes you to the first leaf of a tree branch</li>\n<li><kbd>Alt</kbd>-<kbd>/</kbd> is Word Completion.  Slightly different from <kbd>Ctrl</kbd>-<kbd>space</kbd></li>\n</ul>\n'}, {'answer_id': 20976, 'author': 'David Koelle', 'author_id': 2197, 'author_profile': 'https://Stackoverflow.com/users/2197', 'pm_score': 6, 'selected': False, 'text': "<p>This is cool: If someone has emailed you a stack trace, you can copy and <strong>paste the stack trace into Eclipse's Console window</strong>.  You can then click on class names in the stack trace as if your own code had generated it.</p>\n"}, {'answer_id': 21025, 'author': 'serg10', 'author_id': 1853, 'author_profile': 'https://Stackoverflow.com/users/1853', 'pm_score': 4, 'selected': False, 'text': '<p>In terms of actual features, rather than shortcuts, I strongly recommend taking a look at <a href="http://www.eclipse.org/mylyn/" rel="noreferrer"><strong>Mylyn</strong></a>.</p>\n\n<p>It essentially skins Eclipse with a task focussed view.  It tracks the files you touch when working on a task, and focusses many aspects of the UI onto the resources that it decides are relevant to the job in hand.  Eclipse can be somewhat busy to look at, especially with a big multi module project, and Mylyn helps cut through the cruft.  The  connectivity to issue tracking software and source control repositories is also excellent.</p>\n\n<p>In my experience, it polarises opinion amongst those who try working with it, which is probably a sign that it is offering something interesting...  Don\'t mean to sound like a fanboy - it is definitely worth a look though.</p>\n'}, {'answer_id': 21218, 'author': 'Johannes K. Lehnert', 'author_id': 2367, 'author_profile': 'https://Stackoverflow.com/users/2367', 'pm_score': 2, 'selected': False, 'text': "<p>I'd like to add two additional shortcuts:</p>\n\n<ul>\n<li><p><kbd>CTRL</kbd>+<kbd>F6</kbd>   Switch between open editors (<kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>F6</kbd> to scroll through the list in the opposite direction)</p></li>\n<li><p><kbd>CTRL</kbd>+<kbd>F11</kbd> start program in debug mode</p></li>\n<li><p><kbd>F11</kbd> start program in normal mode</p></li>\n</ul>\n"}, {'answer_id': 154671, 'author': 'Spencer Kormos', 'author_id': 8528, 'author_profile': 'https://Stackoverflow.com/users/8528', 'pm_score': 2, 'selected': False, 'text': "<p><kbd>Ctrl</kbd>-<kbd>Shift</kbd>-<kbd>M</kbd> while the cursor is on a class name in your java file, will specifically add that and only that class to your imports.  This is different from <kbd>Ctrl</kbd>-<kbd>Shift</kbd>-<kbd>O</kbd> which will not only add those imports not already defined, but will also remove imports not currently needed, something you might not necessarily want to do.</p>\n\n<p>I forgot about [<kbd>Ctrl</kbd>+<kbd>2</kbd> -> <kbd>r</kbd>] scope variable rename. Place the cursor in the variable you wish to rename, press <kbd>Ctrl</kbd>+<kbd>2</kbd>, then <kbd>r</kbd>, then type the new name watching all instances of that variable get renamed at the same time.</p>\n\n<p>It's <em>awesome</em> at refactoring Hungarian Notation.</p>\n"}, {'answer_id': 1956515, 'author': 'Charles Ma', 'author_id': 11708, 'author_profile': 'https://Stackoverflow.com/users/11708', 'pm_score': 3, 'selected': False, 'text': "<p>Eclipse auto refresh isn't on by default so if you make changes to a file outside of eclipse, the change won't be reflected in your build. this is very annoying if you just did an svn/git update/rebase and things aren't working the way they're supposed to.</p>\n\n<p>Turn it on in windows->preferences->workspace and tick Refresh Automatically. </p>\n"}, {'answer_id': 3572442, 'author': 'Alex', 'author_id': 426699, 'author_profile': 'https://Stackoverflow.com/users/426699', 'pm_score': 4, 'selected': False, 'text': "<p><kbd>CTRL</kbd>+<kbd>PAGE DOWN</kbd> / <kbd>CTRL</kbd>+<kbd>PAGE UP</kbd> to switch between opened editors</p>\n\n<p><kbd>CTRL</kbd>+<kbd>E</kbd> to also switch between opened editors (allows to type the name)</p>\n\n<p><kbd>CTRL</kbd>+<kbd>O</kbd> is extremely important for me. You don't longer need the Outline View then (you can close it which will give you more space). Then, you can type a method name or just the beginning of it and you quickly can get to it. I also use it to inspect what stuff is available. For example: <kbd>CTRL</kbd>+<kbd>O</kbd> and then type get ... now I see all getters.</p>\n\n<p><kbd>F3</kbd> while an element is selected in the code: brings you to its definition or it's source. e.g. used on a method call it brings you into the source code of that method.</p>\n\n<p><kbd>CTRL</kbd>+<kbd>M</kbd> to maximize the current window</p>\n\n<p>As already said, <kbd>CTRL</kbd>+<kbd>3</kbd> is extremely good. It basically allows you to use Eclipse completely without a mouse. Just type <kbd>CTRL</kbd>+<kbd>3</kbd> and then package explorer for example.</p>\n\n<p><kbd>CTRL</kbd>+<kbd>F8</kbd> cycle trough perspectives</p>\n\n<p><kbd>CTRL</kbd>+<kbd>L</kbd> allows to type a line number and brings you directly to that line.</p>\n\n<p><kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>G</kbd> searches for all references to the selected element in the workspace.</p>\n\n<p>And not a shortcut: In the project settings under Java Editor you can find Save Actions. This allows you to set up the project so that the code is automatically cleaned up and formatted when you save a file. That's very good it safes you from constantly pressing <kbd>CTRL</kbd>+<kbd>O</kbd> and <kbd>CTRL</kbd>+<kbd>F</kbd>.</p>\n"}, {'answer_id': 3783867, 'author': 'serg', 'author_id': 20128, 'author_profile': 'https://Stackoverflow.com/users/20128', 'pm_score': 3, 'selected': False, 'text': '<p><strong>Local History</strong> </p>\n\n<p>It\'s a great feature. Eclipse has its own mini-CVS for all files in a project. If you want to revert some change you made, or even restore deleted file - you can right click on the project and select "Restore from Local History".</p>\n\n<p>Just saved my ass *tears of joy*</p>\n'}, {'answer_id': 3919007, 'author': 'Romain Linsolas', 'author_id': 26457, 'author_profile': 'https://Stackoverflow.com/users/26457', 'pm_score': 4, 'selected': False, 'text': "<p>A shortcut that I use everyday is <kbd>Ctrl</kbd>+<kbd>K</kbd>. In your editor (not only Java file), simply select a text (like a variable, a function, etc.), and then use this shortcut to go to the next occurrence of this text in the current editor.\nIt's faster than using the <kbd>Ctrl</kbd>+<kbd>F</kbd> shortcut...</p>\n\n<p>Note also that you can use <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>K</kbd> to search backwards.</p>\n"}, {'answer_id': 4102092, 'author': 'oshai', 'author_id': 411965, 'author_profile': 'https://Stackoverflow.com/users/411965', 'pm_score': 1, 'selected': False, 'text': '<p>I use a lot of the above and also like for quick search: <kbd>CTRL</kbd>+<kbd>J</kbd> then type what I am looking for, then <kbd>CTRL</kbd>+<kbd>K</kbd> for next occurrence.</p>\n'}, {'answer_id': 4740399, 'author': 'karlphillip', 'author_id': 176769, 'author_profile': 'https://Stackoverflow.com/users/176769', 'pm_score': 3, 'selected': False, 'text': '<p><kbd>CTRL</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> to <strong>jump to the matching bracket</strong>/parenthesis.</p>\n'}, {'answer_id': 6038500, 'author': 'CromTheDestroyer', 'author_id': 371623, 'author_profile': 'https://Stackoverflow.com/users/371623', 'pm_score': 2, 'selected': False, 'text': '<p><kbd>alt</kbd>-<kbd>shift</kbd>-<kbd>a</kbd> is extremely useful in a few situations.</p>\n'}, {'answer_id': 6306143, 'author': 'lostiniceland', 'author_id': 67015, 'author_profile': 'https://Stackoverflow.com/users/67015', 'pm_score': 2, 'selected': False, 'text': '<ul>\n<li><p><kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>X</kbd> selected text becomes <strong>UPPERCASE</strong></p></li>\n<li><p><kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>Y</kbd> selected text becomes <strong>lowercase</strong></p></li>\n</ul>\n'}, {'answer_id': 6560207, 'author': 'Jakub', 'author_id': 428399, 'author_profile': 'https://Stackoverflow.com/users/428399', 'pm_score': 1, 'selected': False, 'text': '<p><kbd>Shift</kbd>+<kbd>Alt</kbd>+<kbd>b</kbd> for the simple navigation row over the editor.</p>\n'}, {'answer_id': 8158036, 'author': 'James Drinkard', 'author_id': 543572, 'author_profile': 'https://Stackoverflow.com/users/543572', 'pm_score': 1, 'selected': False, 'text': '<p>Lately I\'ve been using the <a href="http://www.mousefeed.com/" rel="nofollow">MouseFeeds</a> plugin to automatically tell me what the key stroke combinations are.  That way by repetition I remember them better.</p>\n\n<p>This <a href="http://blog.mousefeed.com/" rel="nofollow">link</a> has a better picture and description of what it looks like and does.</p>\n'}, {'answer_id': 19623660, 'author': 'Lukas Eder', 'author_id': 521799, 'author_profile': 'https://Stackoverflow.com/users/521799', 'pm_score': 1, 'selected': False, 'text': '<p>I\'ve just released this blog post about <a href="http://blog.jooq.org/2013/10/27/top-5-useful-hidden-eclipse-features/" rel="nofollow noreferrer">Top 5 Useful Hidden Eclipse Features</a>. It contains:</p>\n\n<ol>\n<li>Favorites: Types and members that will always show up in auto-completion</li>\n<li><a href="https://stackoverflow.com/a/19334338/521799">The awesome block selection mode</a>: For multi-line editing</li>\n<li>The EGit staging view: Much better than git itself</li>\n<li>Type filters: To remove awt and <code>java.lang.Object</code> stuff from auto-completion</li>\n<li><a href="https://stackoverflow.com/a/12949810/521799">Formatter tags</a>: To delimit code sections that shouldn\'t be auto-formatted</li>\n</ol>\n'}, {'answer_id': 19867356, 'author': 'Jeevs', 'author_id': 1730726, 'author_profile': 'https://Stackoverflow.com/users/1730726', 'pm_score': 1, 'selected': False, 'text': '<p><kbd>Alt</kbd>+<kbd>left</kbd> and <kbd>Alt</kbd>+ <kbd>right</kbd> will navigate you forward and back. </p>\n'}]
['https://Stackoverflow.com/questions/20529', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/2329/']