Eclipse HotKey: làm thế nào để chuyển đổi giữa các tab?


672

Làm thế nào tôi có thể chuyển đổi giữa các cửa sổ đã mở trong Eclipse? Có Ctrl+ F6, nhưng nó hỏi tôi muốn cái nào, nhưng tôi muốn chuyển nó như các tab trong trình duyệt hoặc cửa sổ trong hệ điều hành ( Cmd/ Win+ Tab) mà không cần chọn tệp từ danh sách. Làm thế nào để làm điều này dễ dàng trong Eclipse?

Tôi đã cố gắng gán hotkey cho các sự kiện:

  • ở đằng trước
  • lịch sử chuyển tiếp
  • Trang tiếp theo

nhưng nó không hoạt động theo cách tôi muốn.


3
Đã thêm các phím tắt dành riêng cho hệ điều hành trong câu trả lời của tôi, nhưng bạn không thể xác định lại chúng.
VonC

Câu trả lời:


902
  • CTRL+ E(cho danh sách biên tập viên)
  • CTRL+ F6(để chuyển sang trình chỉnh sửa tiếp theo thông qua danh sách)
    Bạn có thể gán một phím tắt khác cho phím 'Trình chỉnh sửa tiếp theo'.

là hai phím tắt chính thức, nhưng cả hai đều liên quan đến một danh sách đang được hiển thị.

CTRL+ Page Up/ CTRL+ Page Downcó thể chuyển qua các trình soạn thảo mà không hiển thị danh sách.

Điều thú vị với bộ phím tắt cuối cùng đó là:
chúng không được liệt kê trong các phím tắt Eclipse được xác định.
Chúng có thể được kế thừa từ trình soạn thảo nhiều trang, biến chúng thành một lối tắt cụ thể cho hệ điều hành .


Về các phím tắt trên Mac OS (OSX), Matt Ball đã phàn nàn vào tháng 9 năm 2011 về việc không thể ánh xạ lại CTRL+ Page Up/ CTRL+ Page Down:

Nó khiến tôi không thể lướt qua các tab đang mở vì tôi có thể trong hầu hết các chương trình được gắn thẻ khác trong OS X ( - Left- Right).

Chà, vào tháng 3 năm 2012, Arthur đã trả lời:

, Tôi vừa tải xuống phiên bản mới nhất của Eclipse (3.7+). Tôi đã có thể liên kết "tab Trước / Tiếp theo" với ( - Left- Right) khi ở Trình chỉnh sửa, điều mà tôi khá chắc chắn là tôi không thể làm trước đây.
Vì vậy, tôi đoán họ đã nghe thấy bạn.
Nó hoạt động đúng như bạn mong đợi, các tab đi từ trái sang phải và ngược lại, không phải trên cơ sở lịch sử hoặc một số điều vô nghĩa như thế.

Matt Ball xác nhận:

oh wow, chọn "Chỉnh sửa nguồn Java" thực sự hiệu quả !
Bây giờ, thật không may, điều này có nghĩa là tôi là SOL nếu tôi điều hướng vào một tệp không phải là Java (JSP, XML, JS, v.v.).
Cách khắc phục cho vấn đề này là "sao chép lệnh" cho cặp này và chọn tất cả "whens" mà tôi muốn .
Cho đến nay, nó ít nhất hoạt động tốt cho các tệp Java và JSP.
Đây là một Pita chính để thiết lập, nhưng nó chỉ là một lần.

Sở thích xuất khẩu của anh ấy có sẵn ở đây để bạn thử.
Sau khi nhập, bạn sẽ thấy, đối với tất cả các loại tài liệu có liên quan:

Mac Os ràng buộc chính


7
Trên OSX, thay thế CTRL bằng CMD cho hai hành động bàn phím đầu tiên. Nhưng bạn vẫn sẽ cần sử dụng CTRL với PGUp hoặc PGDown để chuyển qua các trình soạn thảo. Một bộ phím tắt KB hữu ích khác mà tôi vừa tìm thấy khi thử một số gợi ý bên dưới: bạn có thể sử dụng ALT + Lên hoặc ALT + Xuống để di chuyển toàn bộ dòng mã.
Tyler

5
Không có cơ hội mà bây giờ có một cách để ánh xạ lại CTRL+Page Up/ CTRL+Page Downở Indigo, phải không? Nó khiến tôi không thể lướt qua các tab đang mở vì tôi có thể trong hầu hết các chương trình được gắn thẻ khác trong OS X ( ⌘-Left⌘-Right).
Matt Ball

24
Trên bàn phím OSX không mở rộng: fn + ctrl + up_arrow / down_arrow theo mặc định.
Ben Flynn

1
@ MITTΓΓerlITTLL Trên OS X, tôi vừa tải xuống phiên bản mới nhất của Eclipse. Tôi đã có thể liên kết "tab Trước / Tiếp theo" với (⌘-Trái và-Phải) khi ở Trình chỉnh sửa, điều mà tôi khá chắc chắn là tôi không thể làm trước đây. Vì vậy, tôi đoán họ đã nghe thấy bạn. Nó hoạt động đúng như bạn mong đợi, các tab đi từ trái sang phải và ngược lại, không phải trên cơ sở lịch sử hoặc một số điều vô nghĩa như thế.
Arthur

1
@ MITTΓΓerlITTLL ouch ... Tôi đoán tôi nên nói rằng tôi đã ở trên Eclipse cho C / C ++ . Xin lỗi, tôi đã không nghĩ đến. Nó không hoạt động với "Chỉnh sửa nguồn Java"? Nếu điều đó có thể làm giảm nỗi đau của bạn, khi tôi ở tab ngoài cùng bên phải, Right-Right sẽ không đưa tôi đến bên trái ... Ngoài ra, tôi đang nhận được "lỗi sai" thực sự khó chịu (lỗi được hiển thị nhưng mọi thứ biên dịch hoàn hảo) kể từ khi cập nhật. Hy vọng bạn không nhận được điều đó quá!
Arthur

191

Nếu bạn đi đến Tùy chọn (ví dụ: Cửa sổ → Tùy chọn) và xem Chung → Phím

và sau đó tìm kiếm cho Tab kế tiếp Tab và và trước đó Tab, bạn có thể sắp xếp lại chúng.

Lệnh Tab tiếp theo trong Tùy chọn Eclipse, trước khi đóng lại


15
Tôi đã thêm "tab tiếp theo" -> "Ctrl + Tab" "tab trước" -> "Ctrl + Shift + Tab" giống như trong Firefox
Bruno Bieri

19
Đây không phải là điều chính xác. Điều này chỉ xoay vòng qua các tab theo thứ tự chúng xuất hiện trên thanh tab so với gần đây nhất được chuyển sang thứ tự.
Hafthor

Hoạt động tuyệt vời, ngoại trừ trình chỉnh sửa bố cục Android, dường như hấp thụ / bỏ qua các lệnh này. Luôn luôn là một cái gì đó!
Scott Biggie

25
@Hafthor: Tôi đã quen với Notepad ++, vì vậy tôi muốn Ctrl + Tab chuyển đổi giữa các tab / trình chỉnh sửa hoạt động cuối cùng . Để thực hiện việc này, hãy xóa Ctrl + F6 mặc định khỏi "Trình chỉnh sửa tiếp theo" và Ctrl + Shift + F6 khỏi các lệnh "Trình chỉnh sửa trước" và chèn Ctrl + Tab và Ctrl + Shift + Tab cho các lệnh đó. Lưu ý rằng tôi phải xóa các lệnh cũ vì một số lý do (điều mà tôi không cần phải làm trong các trường hợp khác khi tôi thay đổi khóa), nhưng rất vui vì nó hoạt động ngay bây giờ! Ngoài ra, trong khi chơi xung quanh, Eclipse (Juno) đã hành động kỳ lạ và tôi không thể chuyển đổi các tab bằng cách sử dụng bất kỳ tổ hợp phím thông thường hoặc thay đổi nào, nhưng khởi động lại đã khắc phục điều đó.
FriendFX

1
Tôi đã thêm "tab tiếp theo" -> "Ctrl + Tab" "tab trước" -> "Ctrl + Shift + Tab" giống như trong Visual Studio
Memet Olsen 16/12/13

103

Chuyển đổi như Windows trong HĐH ( đi đến cửa sổ có tiêu điểm cuối cùng )

CTRL-F6 trong Eclipse, như ALT-TAB (trên các cửa sổ), hiển thị danh sách các tab / cửa sổ khả dụng (nếu bạn giữ phím CTRL/ ALTphím bị chán nản) và làm nổi bật cái bạn sẽ nhảy đến khi bạn buông phím này. Bạn không phải chọn cửa sổ. Nếu bạn muốn duyệt qua nhiều tab cùng một lúc, CTRLnhấn và giữ TABnút này. Đây là hành vi giống hệt với ALT-TAB trên Windows.

Theo nghĩa này, CTRL- SHIFT-F6 trong nhật thực là ALT- SHIFT-TAB tương tự. Cá nhân, tôi thay đổi các ràng buộc này trong Eclipse giống như Visual Studio. Tức là CTRL-TABCTRL- SHIFT-TAB và tôi làm như thế này:

Cửa sổ> Tùy chọn> Chung> Phím

Sau đó đặt "Trình chỉnh sửa tiếp theo" = Ctrl+Tab và "Trình chỉnh sửa trước" = Ctrl+ Shift+Tab . Đừng quên nhấp vào "Hủy liên kết lệnh" trước khi đặt ràng buộc mới.

Chuyển đổi như trình duyệt ( đi đến tab bên phải của tab hiện tại )

Đây là CTRL-PageDown đi bên phải, CTRL-PageUp đi bên trái. Thật khó chịu, khi bạn đi đến cuối danh sách các tab (nói là tab bên tay phải) và sau đó cố gắng đi lại một lần nữa, Eclipse không quay vòng đến tab đầu tiên (ngoài cùng bên trái) như hầu hết các trình duyệt.


12
Đây là câu trả lời được đánh giá thấp nhất trong chủ đề này. Đặc biệt là khi Juno thay đổi các tab được hiển thị là một danh sách thuần túy chứ không phải các trình soạn thảo được sử dụng gần đây.
Jason Axelson

Điều này hoạt động 90% thời gian. Sẽ không thành công nếu con trỏ chuột của bạn xuất hiện ở nơi danh sách các tab bật lên. Bất cứ thứ gì xui xẻo xuất hiện trước con trỏ đều được chọn.
dùng1

Phiên bản Eclipse 3.6.2 hoạt động 100% mọi lúc, mọi lúc mọi nơi. Rốt cuộc, hành vi tự nhiên của Eclipse được ánh xạ lại thành các khóa khác nhau! Chưa từng thử các phiên bản Eclipse cổ xưa ...
Robino

1
Bạn không phải hủy liên kết lệnh "Trình chỉnh sửa tiếp theo". Chỉ cần nhấp vào "Sao chép lệnh" và chỉnh sửa bản sao và liên kết nó với CTRL-TAB.
Gillfish

1
Lời nhắc nhở không ràng buộc là chìa khóa. Trong nhật thực 2019-03, nó không hoạt động cho đến khi lệnh ban đầu bị xóa, dường như nó không còn hỗ trợ nhiều ràng buộc nữa.
Liam Steele

55

Bạn có thể sử dụng ALT+ Leftđể chuyển đến tab trước đó hoặc ALT+ Rightđể chuyển tiếp. Tuy nhiên, phương pháp này đang sử dụng chuyển đổi tab như lịch sử, do đó, nó sẽ chuyển đến tab trước đó bạn đã mở và chuyển tiếp nếu bạn đã "quay lại" một lần hoặc nhiều hơn. Một chút kỳ lạ, tôi biết, nhưng nó hoạt động. Bạn luôn có thể "đặt lại" lịch sử bằng cách nhấp qua mỗi tab một lần.


5
Không hữu ích khi có các hành động được ghi lại trong lịch sử, chẳng hạn như đi đến định nghĩa phương thức trong cùng một lớp.
SiN

điều này từng rất hữu ích, đối với nhật thực nhật thực, điều này hoạt động như SiN đã đề cập
Toskan

2
Tôi thực sự thích hành vi mà nó đi đến các hành động như đi đến định nghĩa phương thức, đó là một cách hữu ích để quay lại và điều hướng khi điều hướng xung quanh rất nhiều tệp.
Ibrahim

1
Điều này hoạt động tuyệt vời khi đạp xe qua lại giữa các cửa sổ chỉnh sửa. Tôi muốn chia màn hình của mình thành 2 và các phương pháp khác chỉ phân nhóm 1 tab, (ngoại trừ ctrl-F6, nhưng tôi thấy điều đó cồng kềnh).
Jlange


13

CTRL+ F6là tốt để sử dụng. Nếu bạn muốn chuyển sang tab tiếp theo / trước đó, bạn cần thực hiện CTRL+ Page Down/ CTRL+ Page Up.


2
Có, tôi thường sử dụng cái này. Tuy nhiên, khi trình chỉnh sửa đề xuất nhiều chế độ xem (ví dụ: khi bạn làm việc trên một tệp XMLhoặc propertiestệp), nó sẽ chuyển giữa các chế độ xem khác nhau và bạn không thể chuyển đổi giữa các tab nữa :(
Romain Linsolas

"CTRL + F6 là tốt để sử dụng." Không có gì ở đây, trên Eclipse Photon trong Windows.
ChrisJJ

10

Mặc định là Ctrl+ F6. Bạn có thể thay đổi nó bằng cách vào tùy chọn Window . Tôi thường thay đổi nó thành Ctrl+ Tab, giống như chúng ta sử dụng trong việc chuyển đổi các tab trong trình duyệt và các thứ khác.


Tôi không phải là người bỏ phiếu, nhưng tôi nghi ngờ khả năng của bạn trong việc ánh xạ một ràng buộc chính với Ctrl + Tab với nhau trên Windows Vista, sử dụng Eclipse Indigo. Thật không thể tin được! Nếu tôi nhấn Tab, nó chỉ đơn giản là thay đổi tiêu điểm trên các nút và danh sách thả xuống.
tom_mai78101

@ tom_mai78101 Xin lỗi, tôi không biết vấn đề này với Windows Vista. Bạn có thể thử một ánh xạ khác cho lựa chọn của mình, mặc dù nó thành công trong XP.
asgs

6

Ví dụ trình tự KeyBinding tùy chỉnh: CTRL + TAB để chuyển đổi giữa các Mô-đun hoặc Trình chỉnh sửa hướng chuyển tiếp bằng cách sử dụng RCP của Eclipse.

bạn nhấn CTRL + TAB lần thứ hai để mở trình soạn thảo khác và đóng trình soạn thảo trước đó bằng 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;
    }
}

Ví dụ trình tự KeyBinding tùy chỉnh: SHIFT + TAB để chuyển đổi giữa các Mô-đun có thể nhìn thấy được hoặc Trình chỉnh sửa hướng Backword bằng cách sử dụng RCP của 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 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;
    }
}

Trình tự chính

Nghĩa là CTRL

Nghĩa là 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

Tập lệnh AutoHotKey 3 dòng (trên Windows, dù sao):

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

Đặt cái này vào thư mục khởi động của bạn (lưu nó dưới dạng * .ahk, phải cài đặt AutoHotKey) và các tab Eclipse sẽ hoạt động như Chrome hoặc Firefox.


3

Đã giải quyết !!

Thay đổi lược đồ thành Microsoft Visual Studio

Cửa sổ> Tùy chọn> Chung> Phím

Tìm kiếm thả xuống Scheme

Phiên bản nhật thực của tôi:

IDE Java EE của Eclipse dành cho các nhà phát triển web.

Phiên bản: Juno Service Release 1 Build id: 20120920-0800


3

Không ai sẽ đọc câu trả lời của tôi, nhưng dù sao ... Nếu bạn ở trên Mac OS X, bạn sẽ thích các cử chỉ đa chạm để điều hướng lịch sử trong Eclipse: http://sourceforge.net/apps/mediawiki/eclipsemultitch/


1
Tôi đọc tất cả các mục mỗi ngày ;) Và "Multi-Touch Eclipse" trông rất đẹp, nên +1. Nhưng có vẻ như không hoạt động kể từ năm 2010. Nó có còn hoạt động với Eclipse 4.x gần đây như Juno không?
VonC

2

Trên cửa sổ nếu bạn có chuột 5 nút, bạn có thể sử dụng tiến và lùi thay cho ALT+LeftALT+Right.



1

Một cách để làm điều đó là sử dụng Plugin VI , sau đó bạn chỉ cần làm: n (và: N) để đi giữa các tệp.

Đó là những gì tôi làm.


1

Bạn có thể đặt các phím nóng trong Tùy chọn -> Chung -> Phím (hoặc chỉ nhập "phím" vào trường bộ lọc ở đầu hộp thoại Tùy chọn.

Khi phần Khóa được chọn, hãy tìm Tab tiếp theo và Tab trước và gán cho chúng phím nóng của riêng bạn bằng cách nhấp vào trường "Binding" và sau đó nhập phím nóng của bạn.

Nhấn Áp dụng hoặc OK để kết thúc quá trình.


1

Tôi trích dẫn phản hồi của VonC, thêm một cái gì đó.

  • Ctrl+ PgUp( PgDn) để chuyển giữa các tab trong ngăn xếp hiện tại (cả trình chỉnh sửa và chế độ xem)
  • Ctrl+ Eđể chuyển giữa các tab trong ngăn xếp hiện tại, sử dụng danh sách được lọc
  • Ctrl+ F6để chuyển đổi giữa các biên tập viên, bất kể ngăn xếp nào
  • Ctrl+ F7để chuyển giữa các chế độ xem, bất kể ngăn xếp nào

Ngoài ra, còn có Bug 206299 mở để yêu cầu sử dụng Ctrl+ Tabđể chuyển đổi tab thay vì Ctrl+ PgUp( PgDn).

  • Vì điều này sẽ phá vỡ khả năng truy cập, người dùng nên đặt ưu tiên cho việc này. Có lẽ nên có một câu hỏi trong Bản câu hỏi chào mừng trong quá trình cài đặt Oomph.

Nếu không hài lòng, bạn có thể tự gán cho mình Binding Key, từ Window> Preferences> General> Keys .


1

Vì một số lý do, các cài đặt Eclipse của tôi bị hỏng nên tôi phải chỉnh sửa thủ công tệp /.plugins/org.eclipse.e4.workbench/workbench.xmi

Trước đây tôi phải đặt Ctrl+ Tabthành chuyển đổi tab giống như Trình duyệt và thậm chí đặt lại tất cả các ràng buộc chính trong các tùy chọn Eclipse sẽ không thoát khỏi các phím tắt (chúng cũng không được hiển thị ở bất kỳ đâu). Tôi đã mở tệp được đề cập ở trên và loại bỏ các <bindings>yếu tố được đánh dấu có <tags>type:user</tags>liên quan đến các phím tắt không hoạt động.


1

Phải sang trái: ctrl+ shift+ 9 hoặc ctrl+ shift+ Page Uphoặc ctrl+Page Up

Trái sang phải: ctrl+ shift+ 3hoặc ctrl+ shift+ Page Downhoặc ctrl+Page Down


0

Nếu bạn chỉ muốn chuyển đổi giữa các lựa chọn tab hiện tại và trước đây của mình, sử dụng CTRL+ F6sẽ chuyển bạn qua lại. Để điều hướng đến một tab trở lại trong lịch sử của bạn, bạn cần sử dụng các phím UP/ DOWNtrong khi cửa sổ Trình chỉnh sửa đang mở. Điều này hoạt động với Helios (Eclipse 3.6); không chắc điều này có đúng với các phiên bản cũ hơn của Eclipse không.


0

Giữ CTRLvà nhấn F6cho đến khi bạn đạt đến trình chỉnh sửa bạn muốn, sau đó phát hành. Giao diện người dùng không đẹp như lựa chọn cửa sổ, nhưng chức năng là như nhau.


0

Trên máy SLES12, bạn có thể sử dụng Ctrl+ PageUpCtrl+ PageDownđể điều hướng giữa các tab theo mặc định. Bạn luôn có thể thay đổi các phím này từ cửa sổ Tùy chọn bằng cách duyệt qua phần "phím" trong danh mục "Chung". Quá trình này được giải thích tốt bởi Victor và VonC ở trên.


0

Làm cách nào tôi có thể chuyển đổi giữa các cửa sổ đã mở trong Eclipse

CTRL + F7 hoạt động ở đây - Eclipse Photon trên Windows.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.