1

Jedit 用のプラグインの作成に関するチュートリアルを教えてもらえますか? Jedit を SAS のエディターとして使用する夢があります。現在、構文の強調表示を行っていますが、アイデアをより肉付けすることで改善されている、または改善される可能性があると感じています。

いくつかの質問:

  1. Jedit でタブ補完を有効にできますか?
  2. 特定の構文で開始および終了する「環境」を指定できますか? (たとえば、"keep" という単語は、行間では意味がありますが、行間では意味がdata xxx;ありrun;ません。したがって、それを強調表示すると、経験の浅いコーダーには逆に有益ですproc sort data=xxx;run;
  3. 変数を作業場所に保存して、ドロップダウン メニューから参照できますか (データセット内の変数名など)。
  4. シェル/ターミナルからコードを実行し、.log ファイルをパイプして Jedit メッセージ ウィンドウに戻すことはできますか?
4

1 に答える 1

1
  1. MicrosoftのIntellisenseやオートコンプリートのようなものについて話しているのですか?もしそうなら、オートコンプリートへの貧乏人の近似は、単語の一部を入力した後にキーボードショートカットctrl+を使用することです。b開いているすべてのバッファからのすべての単語に基づいて単語を完成させます。 オートコンプリートの詳細については、この質問を参照してください。

  2. 構文の強調表示では、コードのさまざまなチャンクに対してデリゲート構文を作成して、さまざまなルールに従って強調表示されるようにすることができます。jeditのmodeディレクトリにある「delegate」のgrep。

  3. 何が欲しいのか正確にはわかりませんが、jeditはテキストから最新のコピーを追跡します。Emacsはこれを「キルリング」と呼んでいます。私のjeditセットアップでは、++にバインドしPaste Previous...ました。これがデフォルトのショートカットバインディングだと思います。これにより、テキストチャンクの最後の最大20コピーが表示され、使用するコピーテキストチャンクを選択できます。ctrle ctrlv

  4. はい、シェルでタスクを実行し、それらをjeditにパイプで戻すことができます。 この質問を参照してください。 以下はbk edit、バッファをリロードする方法です。シェルからの出力は取得しませんが、シェルコマンドを実行します。

    import javax.swing.JOptionPane;
    import java.io.File;
    File f = new File(buffer.getPath());
    String SCCS_path = f.getParent()+"/SCCS";
    String bk_path =  "/usr/local/bin/bk";
    if ( !new File(SCCS_path).exists()) {
        bk_path = "/usr/bin/bk";
    }
    Runtime.getRuntime().exec(
        bk_path+ " edit "+
        buffer.getPath());
    Thread.currentThread().sleep(2000);
    buffer.reload(view);
    

ところで、マクロはjeditで非常に強力です。jeditで行っていることをMacros->で記録Record Macro...すると、同等のスクリプトが生成されます。

于 2013-01-22T20:12:12.773 に答える