;;; ravi-init-repl.el --- REPL utilities ;; Copyright (C) 2014 ;; Author: ;; Keywords: ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; Read-eval-print-loop support ;;; Code: (use-package comint :defer t :config (progn (bind-key "" 'comint-previous-matching-input-from-input comint-mode-map) (bind-key "" 'comint-next-matching-input-from-input comint-mode-map) ) ) (use-package octave-mod :mode ("\\.m\\'" . octave-mode) :init (progn (defun ravi/octave-shell-switch-to-shell () "Make sure that `inferior-octave-buffer' exists and is displayed." (interactive) (if (get-buffer inferior-octave-buffer) (pop-to-buffer (get-buffer inferior-octave-buffer)) (inferior-octave nil))) ) ) (use-package repl-toggle :config (progn (setq rtog/mode-repl-alist '((python-mode . python-shell-switch-to-shell) (octave-mode . ravi/octave-shell-switch-to-shell) (emacs-lisp-mode . ielm))) (setq rtog/goto-buffer-fun 'pop-to-buffer) (add-hook 'python-mode-hook 'rtog/activate) (add-hook 'octave-mode-hook 'rtog/activate) (add-hook 'emacs-lisp-mode-hook 'rtog/activate) ; The default keybinding is not great (unbind-key "C-c C-z" repl-toggle-mode-map) (bind-key "" 'rtog/toggle-repl repl-toggle-mode-map) ) :diminish repl-toggle-mode :ensure t) (provide 'ravi-init-repl) ;;; ravi-init-repl.el ends here