編集:あなたの改訂された質問は、私の答えが対処しなかったいくつかの重要な詳細を追加します。phils は、この問題にアプローチする 1 つの方法を提供しています。もう 1 つはyasnippetを使用することです。スニペット テンプレートに任意の Lisp コードを含めることができるため、次のようにすることができます。
# -*- mode: snippet -*-
# name: foobars
# key: fbf
# binding: direct-keybinding
# --
`(foo-bar-for-the-win)`
関数が何も返さなかったことを確認する必要があります。そうしないと、関数がバッファーに挿入されます。私は省略モードを使用していないので、これが競合を引き起こすかどうかはわかりません。yas/snippet を実行するには少し実験が必要ですが、セットアップが完了すると非常に便利です。
元の答え: 好きな関数にスペースをバインドできます。すべての句読点キーを同じ関数または異なる関数にバインドできます。
(define-key your-mode-map " " 'your-choice-function)
カスタム モード マップ内でこれを行うと、モードを切り替えたときに通常の動作に戻ることができます。グローバルにスペースを self-insert 以外に設定するのは役に立ちません。