2012-04-20 3 views
3

私はschemeに精通していますが、emacs(VIMからの切り替え)とelispには慣れています。SwankサーバへのEmacs/Slime Key Binding/Sendingコマンド

私は次の操作を実行する方法を知っている:

    • のCC IWB =インデントバッファ全体
    • F2 =が
  • 使用をオン/オフ折りたたみなりバインディング簡単なキーを作りますemacsからスライム
  • Cx 2のようないくつかの基本キー、pareditキー、いくつかの基本的な移動キー
  • 0123私はF3が等しくなるようにしたい

私はもう少し高度な何かをして助けを必要と

下のウィンドウにCxの2モード

  • にはemacsを入れ

    • を、「スライムREPLに切り替え『<(テスト/実行を)『コマンドを送信し、バッファ』スライムREPL」に
    • をバッファリングする』 - これは
    をelispのためではなく、スワンクサーバに送信されることを意図して、注意してください

    私にスクリプトを書くよう人々に依頼するのは恐ろしい形式です。しかし誰かがそれを行うことができれば、私はそれからかなり早く学ぶだろう。 [そして、あなたの事例を勉強してより複雑なスクリプトを作成することができます。]

    ありがとう!

    私はスライムを使用していないが、それは、私は次のようにトリックを行うかもしれないと思うだろうのcomintモードを使用すると仮定し
  • +0

    あなたは 'C-X 2 'モードではないことに注意してください。 'split-window-below'という関数を呼び出します。確かに、この区別は、少しだけ任意のモードの関数は他の関数と同じ能力を持ち、 'menu-bar-mode'のようなグローバルなマイナーモードはバッファではなくフレームに影響を与えると考えられますが、モードは主に*バッファ*、そして慣習的には常に '-mode'で終わる関数名を持ちます。モードはEmacsにとって非常に重要な部分なので、その用語を使って他の関数を参照しないと少し混乱することはありません。 – phils

    +0

    ああ、あなたは間違いなく優れたビルトインのチュートリアル「C-h t」を実行する必要があります。その後、その用語が含まれているQ&Aを検索すると便利です。http://stackoverflow.com/search?q=[emacs]+tutorial – phils

    +1

    @phils:おそらくこれは私の傲慢なものです。 emacs _using_チュートリアルではなく、良いemacs _scripting_チュートリアルを知っていますか?私はemacsに移植したいと思っているvim_scriptの動作の10年分の価値がありますが、これまでのところ基本的なことさえもほとんど得ることができませんでした。私が本当に望むのは、emacs実行モデルの概要です。 –

    答えて

    2

    これは正確に何をしたいではなく、さらに微調整のための良い出発点でなければなりません:

    (defun slime-run-test() 
        (interactive) 
        (slime-interactive-eval "(test/run)") 
        (slime-pop-to-buffer (slime-output-buffer) t)) 
    
    (global-set-key (kbd "<f3>") 'slime-run-test) 
    
    +0

    あります。私は良い方法があるだろうと知っていた:) – phils

    +0

    うまく働いた。ありがとう! –

    1

    (defun my-slime-test-run() 
        (interactive) 
        (delete-other-windows) 
        (split-window-below) 
        (with-selected-window (next-window) 
        (switch-to-buffer "slime-repl") 
        (goto-char (point-max)) 
        (insert "(test-run)") 
        (comint-send-input))) 
    
    (global-set-key (kbd "<f3>") 'my-slime-test-run) 
    

    があり、これを行うには良い方法は、おそらくですが、うまくいけば、それが与えますエディタでタスクを実行するためのelisp関数の書き方について少し洞察します(そして、関数がエディタ命令のセットと非常によく似ていることに注意してください)。使用するキーストロークを同等のものに変換すれば、コードを書いたり、全くコードを書いたりせずに、単にキーボードマクロを保存して&を記録するだけです)。その関数内の関数/マクロ呼び出しの任意の文書を取得する

    使用C-Hname-of-the-function F RET。キーバインドのために

    、私はEmacsはそのキーを参照し、その後​​に引数としてその文字列を使用する方法をチェック(とあなたが見つけるためにそのシーケンスを使用することができますどのように注意することがChのKF3を使用任意のキーシーケンスにバインドされた関数の名前。必要に応じてコード内で利用できます)。

    あなたがまだそれらを知らないのであれば、多くのことははるかに明白ではありませんが、これだけのコードベースで期待されることです。

    素晴らしいところは、あなたが探しているものがわからない場合、あなたは常にChのでパターンに一致する関数名を検索することができるということです(と同様に、変数、値、ライブラリの、およびドキュメント; M-:(info "(emacs) Apropos")RETこの機能の詳細については、を参照してください)。特定のマニュアルの中には、情報マニュアル(インデックス付 - Iまたはi)を入力するか、info-aproposコマンドを使用してすべてのマニュアルを一度に検索してください。

    本当にあなたができることの1つは、Emacsの自己文書化の性質を使って、あなたがまだ知らないことに対する答えを見つける方法を学ぶことです。

    +0

    これは実際に役立ちます。それはデザインの背後にある "直感"を示しています。ありがとう! –

    関連する問題