Eclipse HotKey: วิธีสลับระหว่างแท็บต่างๆ


672

ฉันจะสลับระหว่างหน้าต่างที่เปิดใน Eclipse ได้อย่างไร มีCtrl+ F6แต่ถามฉันว่าฉันต้องการอันใด แต่ฉันต้องการสลับมันเหมือนแท็บในเบราว์เซอร์หรือหน้าต่างในระบบปฏิบัติการ ( Cmd/ Win+ Tab) โดยไม่ต้องเลือกไฟล์จากรายการ วิธีทำสิ่งนี้ง่ายๆใน Eclipse

ฉันพยายามกำหนดปุ่มลัดสำหรับกิจกรรม:

  • ข้างหน้า
  • ไปข้างหน้าประวัติศาสตร์
  • หน้าต่อไป

แต่มันไม่ทำงานอย่างที่ฉันต้องการ


3
เพิ่มทางลัดเฉพาะระบบปฏิบัติการในคำตอบของฉัน แต่คุณไม่สามารถกำหนดใหม่ได้
VonC

คำตอบ:


902
  • CTRL+ E(สำหรับรายการแก้ไข)
  • CTRL+ F6(สำหรับการสลับไปยังเครื่องมือแก้ไขถัดไปผ่านรายการ)
    คุณสามารถกำหนดทางลัดอื่นให้กับปุ่ม 'ตัวแก้ไขถัดไป'

เป็นทางลัดสองทางอย่างเป็นทางการ แต่ทั้งสองอย่างเกี่ยวข้องกับรายการที่แสดง

CTRL+ Page Up/ CTRL+ Page Downสามารถวนการแก้ไขโดยไม่แสดงรายการ

สิ่งที่น่าสนใจสำหรับทางลัดชุดสุดท้ายนั้นคือ:
ไม่มีการระบุไว้ในทางลัด Eclipse Keys
พวกเขาอาจจะได้รับมรดกจากบรรณาธิการหลายทำให้พวกเขาทางลัด OS ที่เฉพาะเจาะจง


เกี่ยวกับทางลัดบน Mac OS (OSX), Matt Ballบ่นในเดือนกันยายน 2011 เพื่อไม่สามารถทำการแมปใหม่CTRL+ Page Up/ CTRL+ Page Down:

มันทำให้ฉันถั่วไม่สามารถพลิกแท็บเปิดได้เหมือนที่ฉันทำในทุก ๆ โปรแกรมแท็บอื่น ๆ ใน OS X ( - Leftและ- Right)

ในเดือนมีนาคม 2012 อาเธอร์ตอบ:

ฉันเพิ่งดาวน์โหลด Eclipse รุ่นล่าสุด (3.7+) ฉันสามารถผูก "แท็บก่อนหน้า / ถัดไป" กับ ( - Leftและ- Right) เมื่ออยู่ในโปรแกรมแก้ไขซึ่งฉันค่อนข้างแน่ใจว่าฉันไม่สามารถทำได้มาก่อน
ดังนั้นฉันเดาว่าพวกเขาได้ยินคุณ
มันใช้งานได้อย่างที่คุณคาดไว้แท็บเริ่มจากซ้ายไปขวาและในทางกลับกันไม่ได้อยู่บนพื้นฐานประวัติศาสตร์หรือไร้สาระบางอย่างเช่นนั้น

แมตต์บอลยืนยัน:

โอ้ว้าวเลือก"แก้ไขซอร์สโค้ด Java" ใช้งานได้จริง !
ตอนนี้โชคไม่ดีที่นี่หมายความว่าฉัน SOL ถ้าฉันนำทางไปยังไฟล์ที่ไม่ใช่ Java (JSP, XML, JS, ฯลฯ )
การแก้ไขสำหรับนี้คือการ "คัดลอกคำสั่ง" สำหรับคู่นี้และเลือกทั้งหมด "whens" ที่ฉันต้องการ
อย่างน้อยตอนนี้มันทำงานได้อย่างสวยงามสำหรับไฟล์ Java และ JSP
นี่เป็น PITA ที่สำคัญในการตั้งค่า แต่เป็นเพียงครั้งเดียว

ค่ากำหนดส่งออกของเขามีให้ที่นี่เพื่อให้คุณลอง
เมื่อนำเข้าแล้วคุณจะเห็นเอกสารทุกประเภทที่เกี่ยวข้อง:

การเชื่อมโยงคีย์ Mac Os


7
บน OSX ให้แทนที่ CTRL ด้วย CMD สำหรับการกระทำของแป้นพิมพ์สองรายการแรก แต่คุณจะต้องใช้ CTRL กับ PgUp หรือ PgDown เพื่อหมุนเวียนไปยังบรรณาธิการ ทางลัด KB ที่เป็นประโยชน์อีกชุดที่ฉันเพิ่งพบขณะลองทำตามคำแนะนำด้านล่าง: คุณสามารถใช้ ALT + Up หรือ ALT + Down เพื่อย้ายโค้ดทั้งบรรทัด
ไทเลอร์

5
ไม่มีโอกาสที่ตอนนี้จะมีวิธีการแมปใหม่CTRL+Page Up/ CTRL+Page Downใน Indigo มีหรือไม่? มันทำให้ฉันถั่วไม่สามารถพลิกแท็บเปิดได้เหมือนที่ฉันทำในทุก ๆ โปรแกรมแท็บอื่น ๆ ใน OS X ( ⌘-Leftและ⌘-Right)
Matt Ball

24
บนแป้นพิมพ์ OSX แบบไม่ขยาย: fn + ctrl + up_arrow / down_arrow โดยค่าเริ่มต้น
Ben Flynn

1
@ MДΓΓБДLLบน OS X ฉันเพิ่งดาวน์โหลด Eclipse เวอร์ชันล่าสุด ฉันสามารถผูก "แท็บก่อนหน้า / ถัดไป" กับ (Left- ซ้ายและ⌘-ขวา) เมื่ออยู่ในโปรแกรมแก้ไขซึ่งฉันค่อนข้างแน่ใจว่าฉันไม่สามารถทำได้มาก่อน ดังนั้นฉันเดาว่าพวกเขาได้ยินคุณ มันใช้งานได้อย่างที่คุณคาดไว้แท็บเริ่มจากซ้ายไปขวาและในทางกลับกันไม่ได้อยู่บนพื้นฐานประวัติศาสตร์หรือไร้สาระบางอย่างเช่นนั้น
Arthur

1
@ MДΓΓБДLLอุ๊ย ... ผมคิดว่าผมควรจะบอกว่าฉันอยู่ใน Eclipse สำหรับC / C ++ ขอโทษฉันไม่ได้ใจ ใช้งานไม่ได้กับ "การแก้ไขซอร์ส Java" หรือไม่ ถ้านั่นทำให้ความเจ็บปวดของคุณลดลงเมื่อฉันอยู่ที่แท็บขวาสุด⌘-ขวาจะไม่พาฉันไปที่ซ้ายสุด ... นอกจากนี้ฉันยังได้รับ "ข้อผิดพลาดที่ผิดพลาด" ที่น่ารำคาญจริงๆ (แสดงข้อผิดพลาด แต่ ทุกอย่างคอมไพล์อย่างสมบูรณ์) ตั้งแต่การอัพเดท หวังว่าคุณจะไม่ได้รับเช่นกัน!
Arthur

191

หากคุณไปที่การตั้งค่า (เช่นหน้าต่าง→การตั้งค่า) และดูทั่วไป→คีย์

จากนั้นค้นหา“ แท็บถัดไป” และ“ แท็บก่อนหน้า” คุณสามารถทำการแมปใหม่ได้

คำสั่งแท็บถัดไปในการตั้งค่า Eclipse ก่อนที่จะปฏิเสธ


15
ฉันได้เพิ่ม "แท็บถัดไป" -> "Ctrl + Tab" "แท็บก่อนหน้า" -> "Ctrl + Shift + Tab" เหมือนใน Firefox
Bruno Bieri

19
นี่ไม่ใช่สิ่งที่ถูกต้อง สิ่งนี้จะวนไปตามแท็บต่างๆตามลำดับที่ปรากฏบนแถบแท็บและสลับไปที่การสั่งซื้อล่าสุด
Hafthor

ใช้งานได้ดียกเว้นตัวแก้ไขเลย์เอาต์ Android ซึ่งดูเหมือนว่าจะดูดซับ / ละเว้นคำสั่งเหล่านี้ มันเป็นอะไรบางอย่างเสมอ!
Scott Biggs

25
@Hafthor: ฉันคุ้นเคยกับ Notepad ++ ดังนั้นฉันจึงต้องการให้ Ctrl + Tab สลับไปมาระหว่างแท็บ / บรรณาธิการที่ใช้งานล่าสุด ในการดำเนินการนี้ให้ลบค่าเริ่มต้น Ctrl + F6 จากคำสั่ง "ตัวแก้ไขถัดไป" และ Ctrl + Shift + F6 จากคำสั่ง "ตัวแก้ไขก่อนหน้า" และแทรก Ctrl + Tab และ Ctrl + Shift + Tab สำหรับคำสั่งเหล่านั้นแทน โปรดทราบว่าฉันต้องลบคำสั่งเก่าด้วยเหตุผลบางอย่าง (ซึ่งฉันไม่จำเป็นต้องทำในกรณีอื่นที่ฉันเปลี่ยนกุญแจ) แต่ดีใจที่มันใช้งานได้ทันที! นอกจากนี้ในขณะที่เล่นไปรอบ ๆ Eclipse (Juno) ทำหน้าที่แปลก ๆ และฉันไม่สามารถสลับแท็บโดยใช้คีย์ผสมที่มีการเปลี่ยนแปลงหรือปกติ แต่การรีสตาร์ทได้รับการแก้ไข
FriendFX

1
ฉันได้เพิ่ม "แท็บถัดไป" -> "Ctrl + Tab" "แท็บก่อนหน้า" -> "Ctrl + Shift + Tab" เหมือนใน Visual Studio
Memet Olsen

103

สลับเช่น Windows ในระบบปฏิบัติการ ( ไปที่หน้าต่างที่ผ่านมาซึ่งมีโฟกัสอยู่ )

CTRL-F6ใน Eclipse เช่นALT-TAB (บน windows) แสดงรายการแท็บ / หน้าต่างที่พร้อมใช้งาน (ถ้าคุณเก็บCTRL/ ALTกดปุ่ม) และไฮไลต์แท็กที่คุณจะข้ามไปเมื่อคุณปล่อยคีย์นี้ คุณไม่ต้องเลือกหน้าต่าง หากคุณต้องการข้ามหลายแท็บพร้อมกันCTRLกดปุ่มค้างไว้แล้วแตะTABปุ่ม นี่เป็นพฤติกรรมที่เหมือนกันกับALT-TABบน Windows

ในแง่นี้CTRL- SHIFT-F6ในคราสคือALT- SHIFT-TABอะนาล็อก ส่วนตัวฉันเปลี่ยนการเชื่อมเหล่านี้ใน Eclipse เป็นเหมือน Visual Studio เช่นCTRL-TABและCTRL- SHIFT-TABและฉันทำเช่นนี้:

หน้าต่าง> การตั้งค่า> ทั่วไป> คีย์

จากนั้นตั้งค่า "ถัดไปแก้ไข" = Ctrl+Tabและ "แก้ไขก่อนหน้านี้" = Ctrl+ShiftTab + อย่าลืมคลิก "ยกเลิกการผูกคำสั่ง" ก่อนตั้งค่าการโยงใหม่

สลับเหมือนเบราว์เซอร์ ( ไปที่แท็บทางด้านขวาของแท็บปัจจุบัน )

นี่คือCTRL-PageDownไปทางขวาCTRL-PageUpไปทางซ้าย เมื่อคุณไปที่ส่วนท้ายของรายการแท็บ (พูดแท็บขวาสุด) จากนั้นลองอีกครั้งอีกครั้ง Eclipse จะไม่วนไปยังแท็บแรก (ซ้ายสุด) เหมือนกับที่เบราว์เซอร์ส่วนใหญ่ต้องการ


12
นี่เป็นคำตอบที่ไม่ได้รับการจัดอันดับมากที่สุดในชุดข้อความนี้ โดยเฉพาะอย่างยิ่งเมื่อจูโนเปลี่ยนแท็บที่แสดงว่าเป็นรายการจริงและไม่ใช่บรรณาธิการที่ใช้ล่าสุด
Jason Axelson

ใช้งานได้ 90% ของเวลา มันล้มเหลวหากเคอร์เซอร์เมาส์ของคุณปรากฏขึ้นที่รายการแท็บปรากฏขึ้น แท็บที่โชคร้ายจะปรากฏขึ้นที่ด้านหน้าของเคอร์เซอร์จะถูกเลือก
User1

Eclipse เวอร์ชัน 3.6.2 ใช้งานได้ 100% ไม่ว่าเมาส์จะอยู่ที่ใด หลังจากนั้นพฤติกรรมตามธรรมชาติของ Eclipse จะถูกแมปไปยังคีย์ที่แตกต่างกันอีกครั้ง! ไม่ได้พยายามรุ่น Eclipse โบราณ แต่ ...
Robino

1
คุณไม่จำเป็นต้องยกเลิกการผูกคำสั่ง "ตัวแก้ไขถัดไป" เพียงแค่คลิก "คัดลอกคำสั่ง" CTRL-TABและแก้ไขคัดลอกและผูกมัน
Gillfish

1
เตือนความจำที่ยกเลิกการผูกเป็นกุญแจสำคัญ ใน eclipse 2019-03 มันไม่ทำงานจนกว่าคำสั่งดั้งเดิมจะถูกลบออกดูเหมือนว่าจะไม่รองรับการเชื่อมต่อหลายครั้งอีกต่อไป
เลียมสตีล

55

คุณสามารถใช้ALT+ Leftเพื่อไปที่แท็บก่อนหน้าของคุณหรือALT+ Rightเพื่อไปข้างหน้า วิธีนี้ใช้การสลับแท็บเหมือนประวัติดังนั้นจะไปที่แท็บก่อนหน้าที่คุณเปิดและส่งต่อหากคุณ "ย้อนกลับ" หนึ่งครั้งหรือมากกว่า ฉันรู้ แต่มันก็ใช้งานได้ดี คุณสามารถ "รีเซ็ต" ประวัติได้ตลอดเวลาโดยคลิกผ่านทุกแท็บหนึ่งครั้ง


5
ไม่มีประโยชน์เมื่อมีการกระทำที่บันทึกไว้ในประวัติเช่นไปที่การกำหนดวิธีการในคลาสเดียวกัน
SiN

สิ่งนี้เคยเป็นประโยชน์สำหรับ eclipse helios งานนี้ตามที่ SiN พูดถึง
Toskan

2
ฉันชอบพฤติกรรมที่ไปสู่การกระทำเช่นไปที่การกำหนดเมธอดมันเป็นวิธีที่มีประโยชน์ในการย้อนกลับไปข้างหน้าเมื่อสำรวจไฟล์จำนวนมาก
อิบราฮิม

1
ใช้งานได้ดีเมื่อขี่จักรยานไปมาระหว่างการแก้ไขหน้าต่าง ฉันชอบที่จะแยกหน้าจอของฉันใน 2 และวิธีอื่น ๆ เพียงรอบ 1 การจัดกลุ่มแท็บ (ยกเว้น ctrl-F6 แต่ฉันพบว่ายุ่งยาก)
Jlange


13

CTRL+ F6ใช้งานได้ดี หากคุณต้องการที่จะสลับไปยังแท็บถัดไป / ก่อนหน้านี้ที่คุณต้องทำCTRL+ Page Down/ +CTRLPage Up


2
ใช่ฉันมักจะใช้อันนี้ อย่างไรก็ตามเมื่อตัวแก้ไขเสนอมุมมองแบบทวีคูณ (ตัวอย่างเช่นเมื่อคุณทำงานกับXMLหรือpropertiesไฟล์) มันจะสลับระหว่างมุมมองที่แตกต่างกันและคุณจะไม่สามารถสลับระหว่างแท็บต่าง ๆ ได้อีก :(
Romain Linsolas

"CTRL + F6 ใช้ได้ดี" ไม่ทำอะไรเลยบน Eclipse Photon ใน Windows
ChrisJJ

10

เริ่มต้นคือ+Ctrl F6คุณสามารถเปลี่ยนได้โดยไปที่การตั้งค่าหน้าต่าง ฉันมักจะเปลี่ยนเป็นCtrl+ Tabเหมือนกับที่เราใช้ในการสลับแท็บในเบราว์เซอร์และสิ่งอื่น ๆ


ฉันไม่ใช่ผู้ลงคะแนน แต่ฉันถามความสามารถของคุณในการจับคู่คีย์กับ Ctrl + Tab บน Windows Vista โดยใช้ Eclipse Indigo มันเป็นไปไม่ได้! ถ้าฉันกด Tab มันก็จะเปลี่ยนโฟกัสไปที่ปุ่มและรายการแบบหล่นลง
tom_mai78101

@ tom_mai78101 ขออภัยฉันไม่ทราบปัญหานี้กับ Windows Vista คุณสามารถลองทำแผนที่ที่แตกต่างกันตามที่คุณเลือกแม้ว่าจะประสบความสำเร็จใน XP
asgs

6

ตัวอย่างลำดับ KeyBinding ที่กำหนดเอง: CTRL + TAB เพื่อสลับระหว่างโมดูล visilble หรือทิศทางการส่งต่อทิศทางโดยใช้ Eclipse RCP

คุณกด CTRL + TAB ครั้งที่สองเพื่อเปิดตัวแก้ไขอื่นและปิดตัวแก้ไขก่อนหน้าโดยใช้ RCP Eclipse

package rcp_demo.Toolbar;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
import rcp_demo.Editor.EmployeeEditor;
import rcp_demo.Editor.EmployeeEditorInput;
import rcp_demo.Editor.ProductEditor;
import rcp_demo.Editor.ProductEditorInput;
import rcp_demo.Editor.UserEditor;
import rcp_demo.Editor.UserEditorInput;

public class Forward_Editor extends AbstractHandler{

    static String Editor_name;  //  Active Editor name store in Temporary 
    static int cnt;             //  close editor count this variable
    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {

        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
        IWorkbenchPage page = window.getActivePage();

        UserEditorInput std_input = new UserEditorInput();
        EmployeeEditorInput emp_input=new EmployeeEditorInput();
        ProductEditorInput product_input=new ProductEditorInput();

        IEditorReference[] editors = page.getEditorReferences();

        //Blank Editor Window to execute..
        if(editors.length==0)
        {
            //First time close editor can open Student_Editor
            if(cnt==1 && Editor_name.equals("Student_Editor"))
            {
                try {
                    page.openEditor(emp_input, EmployeeEditor.Id);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("EMP>>Len:: "+editors.length+"..EDi::"+Editor_name);
                } catch (PartInitException e) {
                    e.printStackTrace();
                }       
            }
            //First time close editor can open Employee_Editor
            else if(cnt==1 && Editor_name.equals("Employee_Editor"))
            {
                try {
                    page.openEditor(product_input,ProductEditor.ID);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("PRO>>Len:: "+editors.length+"..EDi::"+Editor_name); 
                } catch (PartInitException e) {e.printStackTrace();
                }
            }
            //First time close editor can open Product_Editor
            else if(cnt==1 && Editor_name.equals("Product_Editor"))
            {
                try {
                    page.openEditor(std_input, UserEditor.ID);
                    System.out.println("student Editor open");
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("Close::"+Editor_name);
                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
            //First Time call // empty editors 
            else{
                try {
                    page.openEditor(std_input, UserEditor.ID);
                    System.out.println("student Editor open");
                    Editor_name=page.getActiveEditor().getTitle();
                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
        }//End if condition

        //AvtiveEditor(Student_Editor) close to open Employee Editor
        else if(page.getActiveEditor().getTitle().equals("Student_Editor"))
        {
            try {
                //page.closeAllEditors(true);
                page.closeEditor(page.getActiveEditor(), true);
                page.openEditor(emp_input, EmployeeEditor.Id);
                cnt=1;
                Editor_name=page.getActiveEditor().getTitle();
                System.out.println("EMP>>Len:: "+editors.length+"..EDi::"+Editor_name);
            } catch (PartInitException e) {
                e.printStackTrace();
            }
        }
        //AvtiveEditor(Employee_Editor) close to open Product Editor
        else if(page.getActiveEditor().getTitle().equals("Employee_Editor"))
        {
            try {
                page.closeAllEditors(true);
                page.openEditor(product_input,ProductEditor.ID);

                cnt=1;
                Editor_name=page.getActiveEditor().getTitle();
                System.out.println("PRO>>Len:: "+editors.length+"..EDi::"+Editor_name);

            } catch (PartInitException e) {
                e.printStackTrace();
            }
        }
        //AvtiveEditor(Product_Editor) close to open Student Editor
        else if(page.getActiveEditor().getTitle().equals("Product_Editor"))
        {
            try {
                page.closeAllEditors(true);
                page.openEditor(std_input, UserEditor.ID);
                cnt=1;
                Editor_name=page.getActiveEditor().getTitle();
                System.out.println("stud>>Len:: "+editors.length+"..EDi::"+Editor_name);
            } catch (PartInitException e) {
                e.printStackTrace();
            }
        }
        //by default open Student Editor
        else 
        {
            try {
                page.closeAllEditors(true);
                page.openEditor(std_input, UserEditor.ID);
                cnt=1;
                Editor_name=page.getActiveEditor().getTitle();
                System.out.println("stud_else>>Len:: "+editors.length+"..EDi::"+Editor_name);
            } catch (PartInitException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}

>Custom KeyBinding sequence example : <kbd> SHIFT + TAB </kbd> to switch between visilble Modules or Editors **Backword** direction using Eclipse RCP.


package rcp_demo.Toolbar;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
import rcp_demo.Editor.EmployeeEditor;
import rcp_demo.Editor.EmployeeEditorInput;
import rcp_demo.Editor.ProductEditor;
import rcp_demo.Editor.ProductEditorInput;
import rcp_demo.Editor.UserEditor;
import rcp_demo.Editor.UserEditorInput;

public class Backword_Editor extends AbstractHandler{

    static String Editor_name;   // Active Editor name store in Temporary 
    static int cnt;

    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {

        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
        IWorkbenchPage page = window.getActivePage();
        //Three object create in EditorInput 
        UserEditorInput std_input = new UserEditorInput();
        EmployeeEditorInput emp_input=new EmployeeEditorInput();
        ProductEditorInput product_input=new ProductEditorInput();

        IEditorReference[] editors = page.getEditorReferences();
        System.out.println("Length : "+editors.length);

        if(editors.length==0)
        {
            //First time close editor can open Student_Editor
            if(cnt==1 && Editor_name.equals("Product_Editor"))
            {
                try {
                    page.openEditor(emp_input, EmployeeEditor.Id);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("EMP>>Len:: "+editors.length+"..EDi::"+Editor_name);
                } catch (PartInitException e) {
                    e.printStackTrace();
                }               
            }
            //First time close editor can open Employee_Editor
            else if(cnt==1 && Editor_name.equals("Employee_Editor"))
            {
                try {
                    page.openEditor(std_input, UserEditor.ID);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("Student>>Len:: "+editors.length+"..student::"+Editor_name);

                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
            //First time close editor can open Product_Editor
            else if(cnt==1 && Editor_name.equals("Student_Editor"))
            {
                        try {
                            page.openEditor(product_input,ProductEditor.ID);
                            cnt=1;
                            Editor_name=page.getActiveEditor().getTitle();
                            System.out.println("PRO>>Len:: "+editors.length+"..EDi::"+Editor_name);

                        } catch (PartInitException e) {
                            e.printStackTrace();
                        }
            } 
            //First Time or empty editors to check this condition
            else{
                try {
                    page.openEditor(product_input,ProductEditor.ID);
                    System.out.println("product Editor open");
                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
        }
        //AvtiveEditor(Product_Editor) close to open Employee Editor
        else if(page.getActiveEditor().getTitle().equals("Product_Editor"))
        {
            System.out.println("Product:: "+page.getActiveEditor().getTitle());
            try {
                page.closeAllEditors(true);
                page.openEditor(emp_input, EmployeeEditor.Id);
                cnt=1;
                Editor_name=page.getActiveEditor().getTitle();
                System.out.println("Employee Editor open");
            } catch (PartInitException e) {
                e.printStackTrace();
            }
        }
        //AvtiveEditor(Employee_Editor) close to open Student Editor
        else if(page.getActiveEditor().getTitle().equals("Employee_Editor"))
        {
            System.out.println("Emp:: "+page.getActiveEditor().getTitle());
            try {
                page.closeAllEditors(true);
                page.openEditor(std_input, UserEditor.ID);
                cnt=1;
                Editor_name=page.getActiveEditor().getTitle();
                System.out.println("student Editor open");
            } catch (PartInitException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        //AvtiveEditor(Student_Editor) close to open Product Editor
        else if(page.getActiveEditor().getTitle().equals("Student_Editor"))
        {
            System.out.println("Product:: "+page.getActiveEditor().getTitle());
            try {
                page.closeAllEditors(true);
                page.openEditor(product_input,ProductEditor.ID);
                cnt=1;
                Editor_name=page.getActiveEditor().getTitle();
                System.out.println("product Editor open");
            } catch (PartInitException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        //by default open Student Editor
        else 
        {
            try {
                page.closeAllEditors(true);
                page.openEditor(product_input,ProductEditor.ID);
                cnt=1;
                Editor_name=page.getActiveEditor().getTitle();
                System.out.println("product Editor open");
            } catch (PartInitException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return null;
    }
}

ตัวอย่างลำดับ KeyBinding ที่กำหนดเอง: SHIFT + TAB เพื่อสลับระหว่างโมดูล visilble หรือ Editors Backwordโดยใช้ Eclipse RCP

package rcp_demo.Toolbar;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
import rcp_demo.Editor.EmployeeEditor;
import rcp_demo.Editor.EmployeeEditorInput;
import rcp_demo.Editor.ProductEditor;
import rcp_demo.Editor.ProductEditorInput;
import rcp_demo.Editor.UserEditor;
import rcp_demo.Editor.UserEditorInput;

public class Backword_Editor extends AbstractHandler{

    static String Editor_name;   // Active Editor name store in Temporary 
    static int cnt;

    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {

        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
        IWorkbenchPage page = window.getActivePage();
        //Three object create in EditorInput 
        UserEditorInput std_input = new UserEditorInput();
        EmployeeEditorInput emp_input=new EmployeeEditorInput();
        ProductEditorInput product_input=new ProductEditorInput();

        IEditorReference[] editors = page.getEditorReferences();
        System.out.println("Length : "+editors.length);

        if(editors.length==0)
        {
            //First time close editor can open Student_Editor
            if(cnt==1 && Editor_name.equals("Product_Editor"))
            {
                try {
                    page.openEditor(emp_input, EmployeeEditor.Id);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("EMP>>Len:: "+editors.length+"..EDi::"+Editor_name);
                } catch (PartInitException e) {
                    e.printStackTrace();
                }               
            }
            //First time close editor can open Employee_Editor
            else if(cnt==1 && Editor_name.equals("Employee_Editor"))
            {
                try {
                    page.openEditor(std_input, UserEditor.ID);
                    cnt=1;
                    Editor_name=page.getActiveEditor().getTitle();
                    System.out.println("Student>>Len:: "+editors.length+"..student::"+Editor_name);

                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
            //First time close editor can open Product_Editor
            else if(cnt==1 && Editor_name.equals("Student_Editor"))
            {
                        try {
                            page.openEditor(product_input,ProductEditor.ID);
                            cnt=1;
                            Editor_name=page.getActiveEditor().getTitle();
                            System.out.println("PRO>>Len:: "+editors.length+"..EDi::"+Editor_name);

                        } catch (PartInitException e) {
                            e.printStackTrace();
                        }
            } 
            //First Time or empty editors to check this condition
            else{
                try {
                    page.openEditor(product_input,ProductEditor.ID);
                    System.out.println("product Editor open");
                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
        }
        //AvtiveEditor(Product_Editor) close to open Employee Editor
        else if(page.getActiveEditor().getTitle().equals("Product_Editor"))
        {
            System.out.println("Product:: "+page.getActiveEditor().getTitle());
            try {
                page.closeAllEditors(true);
                page.openEditor(emp_input, EmployeeEditor.Id);
                cnt=1;
                Editor_name=page.getActiveEditor().getTitle();
                System.out.println("Employee Editor open");
            } catch (PartInitException e) {
                e.printStackTrace();
            }
        }
        //AvtiveEditor(Employee_Editor) close to open Student Editor
        else if(page.getActiveEditor().getTitle().equals("Employee_Editor"))
        {
            System.out.println("Emp:: "+page.getActiveEditor().getTitle());
            try {
                page.closeAllEditors(true);
                page.openEditor(std_input, UserEditor.ID);
                cnt=1;
                Editor_name=page.getActiveEditor().getTitle();
                System.out.println("student Editor open");
            } catch (PartInitException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        //AvtiveEditor(Student_Editor) close to open Product Editor
        else if(page.getActiveEditor().getTitle().equals("Student_Editor"))
        {
            System.out.println("Product:: "+page.getActiveEditor().getTitle());
            try {
                page.closeAllEditors(true);
                page.openEditor(product_input,ProductEditor.ID);
                cnt=1;
                Editor_name=page.getActiveEditor().getTitle();
                System.out.println("product Editor open");
            } catch (PartInitException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        //by default open Student Editor
        else 
        {
            try {
                page.closeAllEditors(true);
                page.openEditor(product_input,ProductEditor.ID);
                cnt=1;
                Editor_name=page.getActiveEditor().getTitle();
                System.out.println("product Editor open");
            } catch (PartInitException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return null;
    }
}

ลำดับของคีย์

M1 หมายถึง CTRL

M2 หมายถึง SHIFT

plugin.xml


<extension point="org.eclipse.ui.commands">
        <command
                defaultHandler="rcp_demo.Toolbar.Forward_Editor"
                id="RCP_Demo.Toolbar.Forward_editor_open_cmd"
                name="Forward_Editor">
        </command>
        <command
                defaultHandler="rcp_demo.Toolbar.Backword_Editor"
                id="RCP_Demo.Toolbar.backwards_editor_open_cmd"
                name="Backword_Editor">
        </command>
    </extension>
<extension point="org.eclipse.ui.bindings">
        <key
                commandId="RCP_Demo.Toolbar.Forward_editor_open_cmd"
                schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
                sequence="M1+TAB">
        </key>  
        <key
                commandId="RCP_Demo.Toolbar.backwards_editor_open_cmd"
                schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
                sequence="M2+TAB">
        </key>              
</extension>

5

สคริปต์ AutoHotKey 3 บรรทัด (บน Windows และอื่น ๆ ):

#IfWinActive ahk_class SWT_Window0
^+Tab::^PgUp
^Tab::^PgDn

วางไว้ในโฟลเดอร์เริ่มต้นของคุณ (บันทึกเป็น * .ahk ต้องมีการติดตั้ง AutoHotKey) และแท็บ Eclipse จะทำงานเหมือน Chrome หรือ Firefox


3

แก้ไข !!

เปลี่ยน Scheme เป็น Microsoft Visual Studio

หน้าต่าง> การตั้งค่า> ทั่วไป> คีย์

มองหาแบบเลื่อนลงแบบแผน

เวอร์ชันคราสของฉัน:

Eclipse Java EE IDE สำหรับนักพัฒนาเว็บ

เวอร์ชัน: Juno Service Release 1 Build id: 20120920-0800


3

ไม่มีใครเคยอ่านคำตอบของฉัน แต่อย่างไรก็ตาม ... ถ้าคุณอยู่บน Mac OS X คุณจะต้องชอบท่าทางสัมผัสหลายสัมผัสสำหรับการนำทางประวัติศาสตร์ใน Eclipse: http://sourceforge.net/apps/mediawiki/eclipsemultitch/


1
ฉันอ่านรายการทั้งหมดทุกวัน ;) และ "Eclipse Multi-Touch" ดูดีดังนั้น +1 แต่ดูเหมือนว่าไม่ได้ใช้งานตั้งแต่ปี 2010 มันจะยังคงทำงานกับ Eclipse 4.x ล่าสุดเช่น Juno หรือไม่
VonC

2

บน windows ถ้าคุณมีเมาส์ 5 ปุ่มคุณสามารถใช้ด้านหน้าและด้านหลังแทนและALT+LeftALT+Right




1

คุณสามารถตั้งค่าคีย์ลัดในการตั้งค่า -> ทั่วไป -> คีย์ (หรือเพียงพิมพ์ "คีย์" ลงในฟิลด์ตัวกรองที่ด้านบนของกล่องโต้ตอบการตั้งค่า

เมื่อเลือกส่วนคีย์แล้วให้หาแท็บถัดไปและแท็บก่อนหน้าและกำหนดปุ่มลัดของคุณเองโดยคลิกในฟิลด์ "การผูก" จากนั้นพิมพ์ฮอตคีย์ของคุณ

กด Apply หรือตกลงเพื่อเสร็จสิ้นกระบวนการ


1

ฉันอ้างคำตอบของ VonC เพิ่มบางอย่าง

  • Ctrl+ PgUp( PgDn) เพื่อสลับระหว่างแท็บในสแต็กปัจจุบัน (ทั้งบรรณาธิการและมุมมอง)
  • Ctrl+ Eเพื่อสลับระหว่างแท็บในสแต็กปัจจุบันโดยใช้รายการที่กรอง
  • Ctrl+ F6เพื่อสลับระหว่างตัวแก้ไขไม่ว่าสแต็กใด
  • Ctrl+ F7เพื่อสลับระหว่างมุมมองไม่ว่าสแต็กใด

นอกจากนี้ยังมีBug 206299เปิดให้ขอใช้Ctrl+ Tabสำหรับการเปลี่ยนแท็บแทนCtrl+ PgUp( PgDn)

  • เนื่องจากจะเป็นการทำลายการเข้าถึงผู้ใช้ควรตั้งค่าสำหรับสิ่งนี้ อาจจะมีคำถามในแบบสอบถามต้อนรับระหว่างการติดตั้ง Oomph

หากไม่พอใจคุณสามารถกำหนดตัวเองกุญแจผูกพันจากหน้าต่าง> การตั้งค่า> ทั่วไป> คีย์


1

ด้วยเหตุผลบางอย่างการตั้งค่า Eclipse ของฉันจึงเสียหายฉันจึงต้องแก้ไขไฟล์/.plugins/org.eclipse.e4.workbench/workbench.xmiด้วยตนเอง

ก่อนหน้านี้ฉันต้องตั้งค่าCtrl+ Tabเป็นการสลับแท็บเหมือนเบราว์เซอร์และแม้กระทั่งการรีเซ็ตการเชื่อมโยงคีย์ทั้งหมดในการกำหนดค่าตามความชอบของ Eclipse จะไม่กำจัดทางลัด ฉันเปิดไฟล์ดังกล่าวข้างต้นและลบ<bindings>องค์ประกอบที่มีเครื่องหมาย<tags>type:user</tags>ที่เกี่ยวข้องกับทางลัดที่ไม่ทำงาน


1

จากขวาไปซ้าย: ctrl+ shift+ 9 หรือ ctrl+ shift+ Page Upหรือctrl+Page Up

จากซ้ายไปขวา: ctrl+ shift+ 3หรือctrl+ shift+ Page Downหรือctrl+Page Down


0

หากคุณต้องการสลับระหว่างการเลือกแท็บปัจจุบันและแท็บก่อนหน้าของคุณการใช้CTRL+ F6จะเป็นการสลับไปมา หากต้องการนำทางไปยังแท็บอื่น ๆ ในประวัติของคุณคุณต้องใช้ปุ่มUP/ DOWNในขณะที่หน้าต่างบรรณาธิการเปิดอยู่ สิ่งนี้ใช้ได้กับ Helios (Eclipse 3.6) ไม่แน่ใจว่าสิ่งนี้เป็นจริงสำหรับ Eclipse รุ่นเก่าหรือไม่


0

การจองCTRLและกดF6จนกว่าคุณจะถึงบรรณาธิการที่คุณต้องการแล้วปล่อย UI ไม่สวยเท่าการเลือกหน้าต่าง แต่ฟังก์ชั่นเหมือนกัน


0

บนเครื่อง SLES12 คุณสามารถใช้Ctrl+ PageUpและCtrl+ PageDownเพื่อนำทางระหว่างแท็บโดยค่าเริ่มต้น คุณสามารถเปลี่ยนคีย์เหล่านี้ได้จากหน้าต่างการตั้งค่าโดยการเรียกดูในส่วน "คีย์" ในหมวดหมู่ "ทั่วไป" กระบวนการนี้ได้รับการอธิบายอย่างดีจาก Victor และ VonC ด้านบน


0

ฉันจะสลับระหว่างหน้าต่างที่เปิดอยู่ใน Eclipse ได้อย่างไร

CTRL + F7 ทำงานที่นี่ - Eclipse Photon บน Windows

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.