特定のサーバーとデータベースに接続された *SQL* バッファーが Emacs で既に開かれているとします。ここで、他の SQL バッファー プロセスをアクティブに保ちながら、別のサーバーとデータベースに接続することを目的としています。
元の SQL バッファーを強制終了せずに新しい *SQL* バッファー プロセスを作成するにはどうすればよいでしょうか? これはできますか?既存のバッファの接続情報を代わりに変更する方法はありますか?
さらに、私のような誰かが接続の別の表現が好きなら、これが私のものです。これは、「driver://user@server/database」という私のSQLバッファの名前です。
(defun sql-make-alternate-buffer-name ()
(concat (concat (prin1-to-string sql-interactive-product) "://")
(if (string= "" sql-user)
(if (string= "" (user-login-name))
()
(concat (user-login-name) "/"))
(concat sql-user "@"))
(concat sql-server "/")
(if (string= "" sql-database)
(if (string= "" sql-server)
(system-name)
sql-server)
sql-database)))
sql-interactive-mode-hook を実行する sql-interactive-mode で作成されたSQLバッファーなので、手動で sql-rename-buffer を実行する必要はありません。
(add-hook 'sql-interactive-mode-hook
(lambda () (sql-rename-buffer)))