2012-02-01 33 views
0

これは私が前回の編集者でずっとずっとEclipseで私を夢中にさせてくれた小さな事の一つです。カーソルをウィンドウの一番中央の行に移動したいと思っています。それによって私はではないは、 "Recenter"コマンドを意味します。このコマンドは、カーソルをそのまわりに置いて、そのラインを中心にします。私はカーソル自体を、現在ウィンドウの中央にある新しい行に移動したいと思います。それはできますか?Eclipseでカーソルをウィンドウの中央に配置しますか?

+0

Eclipseではこれをデフォルトで実行できません。しかし、それを行うためのプラグインがあるかどうかを調べることができます。それを達成する最も近い方法は、Ctrl + Lを使用してダイアログを開き、ジャンプする行の番号を入力することです。 –

+0

いいえ、Eclipseのようなものは何もありません。しかし、私は非常に興味があります(パワーユーザーと、プログラマーのためのツールを開発する時に私の生活を支えた人)、エディタウィンドウの中央に「地理的に」ある行にジャンプしたときにあなたが実際にやっていることは何ですか?おそらく、あなたが失ってしまったと感じるあらゆる効率を取り戻すのに役立つEclipseの他の機能があります。 –

+0

たとえばvimエディタでは、これはMコマンドで実現します。 「画面の真ん中付近にあるものを編集したい」以外の嫌な動機はありません。画面の上部と下部の同様のコマンドも良いでしょう(vimではそれぞれHとL)。 –

答えて

0

これを行うためのハンドラexecute()メソッドのコードは次のとおりです。それはかなり簡単にコマンドにバインドされ、plugin.xmlファイルを介してバインドすることができます。

public Object execute(ExecutionEvent event) throws ExecutionException { 
    IEditorPart editorPart = HandlerUtil.getActiveEditorChecked(event); 
    ITextOperationTarget target = (ITextOperationTarget) editorPart 
     .getAdapter(ITextOperationTarget.class); 
    if (!(target instanceof ITextViewer)) return null; 
    ITextViewer textViewer = (ITextViewer) target; 
    int topIndex = textViewer.getTopIndex(); 
    int bottomIndex = textViewer.getBottomIndex(); 
    int middle = (topIndex + bottomIndex)/2; 
    IDocument doc = textViewer.getDocument(); 
    try { 
    IRegion widgetLineInformation = doc.getLineInformation(middle); 
    int widgetOffset = widgetLineInformation.getOffset(); 
    textViewer.getTextWidget().setSelection(widgetOffset); 
    } catch (BadLocationException e) { 
    return null; 
    } 
    return null; 
} 
関連する問題