home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-06-20 | 44.2 KB | 1,299 lines |
- (setq ee-VERSION "1.23")
-
- ; Easy-Edit 1.23 GNU Emacs configuration
- ; 7/2/92
- ;
- ;
- ; Easy-edit novice screen editor for Unix systems with GNU emacs
- ;
- ; Copyright (C) 1992 Larry Broda
- ;
- ;
- ; 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. This program
- ; is an extension of GNU emacs; See the GNU General Public License
- ; for more details.
- ;
- ; This program is free software; you can redistribute it and/or modify
- ; it under the same terms as the GNU General Public License as
- ; published by the Free Software Foundation; either version 1, or
- ; (at your option) any later version.
- ;
- ;
- ;
- ; Easy-edit 1.23
- ; By Larry Broda
- ; Department of Psychology
- ; University of Illinois at Urbana-Champaign
- ; Email: lbroda@s.psych.uiuc.edu
- ; 4/13/92
- ;
- ; GNU emacs information:
- ; contact:
- ; Free Software Foundation
- ; 675 Massachusetts Avenu
- ; Cambridge, MA 02139
- ; USA
-
- (defconst ee-com-map nil
- "Keymap for easyedit")
- ;
- ; Function to give an error message for using an key out of context
- ;
- (defun ee-not-here ()
- "That key unbound at moment"
- (interactive)
- (ding))
-
- ;
- ;
- ;
-
- (defun ee-nofun ()
- "function to give an error for an unbound key"
- (interactive)
- (message "Not currently an easy-edit command" (ding))
- (sleep-for 2)
- (ee-message HELP_HELP))
-
-
- (defun ee-quit ()
- "Exit without saving"
- (interactive)
- (progn
- (if (buffer-modified-p (get-buffer "EDIT"))
- (progn
- (cond
- ((yes-or-no-p "Really quit and cancel changes? " )
- (message "Cancelling changes!")
- (sleep-for 1)
- (discard-input)
- (kill-emacs))
- ((ee-message HELP_HELP))))
- (message "No changes to cancel...")
- (sleep-for 1)
- (discard-input)
- (kill-emacs))))
-
- (defun ee-kill-to-eof ()
- "Delete from point to End of buffer"
- (interactive)
- (end-of-buffer)
- (delete-region (point) (mark)))
-
- (defun ee-move-block ()
- "Demark a block of text and copy or move it"
- (interactive)
- (if (> ee-BLOCK-MARK 0)
- (progn
-
- (let ((imsg "
- Type m to move the block (delete original)
- Type c to copy the block (leave original)
-
- Type ESC + when ready to insert the block at cursor
-
- ... you may continue to insert the block repeatedly
- until you mark another block.")
- (iprmpt "Choose m or c, please: "))
-
- (setq DELFLG (eq (ee-choosefrom-list imsg iprmpt '(?c ?m)) ?m)))
-
- (copy-to-register ?b ee-BLOCK-MARK (point) DELFLG)
- (setq ee-BLOCK-MARK 0)
- (message "type ESC + to insert block at cursor location")
- (setq ee-BLOCK-SAVED 'true)
- (ding))
-
- (setq ee-BLOCK-MARK (point))
- (setq ee-BLOCK-SAVED 'nil)
- (message "Move cursor to other end of text block and press ESC / again")
- (ding)
- (sleep-for 2)))
-
- ;
- ; Code from GNU Emacs: ee-query-replace and ee-perform-replace are modifications by
- ; Larry Broda, Dept. of Psychology/University of Illinois at C-U, of the
- ; functions query-replace and perform-replace from the GNU Emacs distribution, and are subject
- ; to all terms of the GNU Emacs Public License.
- ;
-
- (defun ee-query-replace (from-string to-string &optional arg)
- "\
- Replace some occurrences of FROM-STRING with TO-STRING.
- As each match is found, the user must type a character saying
- what to do with it.
- Preserves case in each replacement if case-replace and case-fold-search
- are non-nil and FROM-STRING has no uppercase letters.
- Third arg DELIMITED (prefix arg if interactive) non-nil means replace
- only matches surrounded by word boundaries."
- (interactive "sQuery replace: \nsQuery replace %s with: \nP")
- (ee-perform-replace from-string to-string t nil arg)
- (message "Done"))
-
- (defun ee-perform-replace (from-string to-string
- query-flag regexp-flag delimited-flag)
- (let ((nocasify (not (and case-fold-search case-replace
- (string-equal from-string
- (downcase from-string)))))
- (literal (not regexp-flag))
- (search-function (if regexp-flag 're-search-forward 'search-forward))
- (search-string from-string)
- (keep-going t)
- (lastrepl nil)) ;Position after last match considered.
- (if delimited-flag
- (setq search-function 're-search-forward
- search-string (concat "\\b"
- (if regexp-flag from-string
- (regexp-quote from-string))
- "\\b")))
- (push-mark)
- (push-mark)
- (while (and keep-going
- (not (eobp))
- (progn
- (set-mark (point))
- (funcall search-function search-string nil t)))
- ;; Don't replace the null string
- ;; right after end of previous replacement.
- (if (eq lastrepl (point))
- (forward-char 1)
- (undo-boundary)
- (if (not query-flag)
- (replace-match to-string nocasify literal)
- (let (done replaced)
- (while (not done)
- ;; Preserve the match data. Process filters and sentinels
- ;; could run inside read-char..
- ; (let ((data (match-data))
- ; (help-form
- ; '(concat "Query replacing "
- ; (if regexp-flag "regexp " "")
- ; from-string " with " to-string ".\n\n"
- ; (substitute-command-keys query-replace-help))))
- ; (setq char help-char)
- ; (while (= char help-char)
- ; (message "Query replacing %s with %s: " from-string to-string)
- ; (setq char (read-char))
- ; (if (= char ??)
- ; (setq unread-command-char help-char char help-char)))
- ; (store-match-data data))
-
-
- (message "Query replacing %s with %s: " from-string to-string)
- (setq char (read-char))
-
- (cond ((or (= char ?\e)
- (= char ?q))
- (setq keep-going nil)
- (setq done t))
- ((= char ?y)
- (or replaced
- (replace-match to-string nocasify literal))
- (setq done t))
- ((= char ?\.)
- (or replaced
- (replace-match to-string nocasify literal))
- (setq keep-going nil)
- (setq done t))
- ((= char ?!)
- (or replaced
- (replace-match to-string nocasify literal))
- (setq done t query-flag nil))
- ((= char ?n)
- (setq done t))
- ((= char ?\C-l)
- (recenter nil))
- (t
- (message "Not a choice")
- (ding)
- (sleep-for 2))))))
- (setq lastrepl (point))))
- (pop-mark)
- keep-going))
-
- (defun ee-search-replace ()
- "Do a text search/replace"
- (interactive)
- (setq sprompt (concat "Replace-> [" search-last-string "]: "))
- (setq sstring (read-string sprompt))
- (if (> (length sstring) 0)
- (setq search-last-string sstring)
- (setq sstring search-last-string))
-
- (if (> (length sstring) 0)
- (progn
- (setq rstring (read-string "Replace with-> "))
- (save-window-excursion
- (with-output-to-temp-buffer "*INFORMATION*"
- (save-excursion
- (set-buffer "*INFORMATION*")
- (erase-buffer))
- (princ " Search/Replace\n\n")
- (princ (concat "Replace all occurrences of " sstring " with " rstring "\n"))
- (princ "from the current position to the end of file.\n")
- (princ "(use confirm if you don't want to replace every occurrence)\n\n")
- (princ "Type y for confirm (will ask before doing each replacement)\n")
- (princ "Type n to do all replacements without confirming\n"))
- (setq SRFLG ?x)
- (while (not (ee-member SRFLG '(?y ?n)))
- (progn
- (let ((cursor-in-echo-area t))
- (message "Confirm replacements (y or n)? ")
- (ding)
- (setq SRFLG (downcase (read-char))))
- (let ((cursor-in-echo-area nil))
- (cond
- ((eq SRFLG ?y)
- (with-output-to-temp-buffer "*INFORMATION*"
- (save-excursion
- (set-buffer "*INFORMATION*")
- (erase-buffer))
- (princ "Choices for answering replace query: \n\n")
- (princ "(press ESC or q to stop the search/replace at any time)\n\n")
- (princ " y - do the replacement and continue searching\n")
- (princ " n - don't replace, but continue searching\n")
- (princ " . - Replace this occurrence and stop\n")
- (princ " q - Don't replace, and stop\n")
- (princ " ! - replace all occurrences from here on without confirming\n"))
- (ee-query-replace sstring rstring nil))
- ((eq SRFLG ?n) (replace-string sstring rstring))
- (t (message "Type y for confirm, n for no confirm, please")
- (sleep-for 2))))))))))
-
- (defun ee-insert-block ()
- "Insert block"
- (interactive)
-
- (if (null ee-BLOCK-SAVED )
- (progn
- (message "No block has been marked and saved with ESC /")
- (ding))
- (insert-register ?b)))
-
-
- (defun ee-recover ()
- "recover from an Emacs auto-save file"
- (interactive)
- (ee-recover-file EE_FILE_NAME)
- (auto-save-mode 1)
- (easyedit-mode))
-
- ;
- ; following function derived from GNU Emacs recover-file function, by
- ; Richard Stallman
- ;
- (defun ee-recover-file (file)
- "Visit file FILE, but get contents from its last auto-save file."
- (interactive "FRecover file: ")
- (setq file (expand-file-name file))
- (if (auto-save-file-name-p file) (error "%s is an auto-save file" file))
- (let ((file-name (let ((buffer-file-name file))
- (make-auto-save-file-name))))
- (cond ((not (file-newer-than-file-p file-name file))
- (error "Auto-save file %s not current" file-name))
- ((yes-or-no-p "Recover previous unsaved edits? " )
- (switch-to-buffer (find-file-noselect file t))
- (let ((buffer-read-only nil))
- (erase-buffer)
- (insert-file-contents file-name nil))
- (after-find-file nil))
- (t (error "Recovery cancelled.")))
- (setq buffer-auto-save-file-name nil)))
-
-
- (defun ee-check-recovery-file (file)
- "Print a nicer message if the save file is current"
- (interactive)
- (setq file (expand-file-name file))
- (if (auto-save-file-name-p file) (error "%s is an auto-save file" file))
- (let ((file-name (let ((buffer-file-name file))
- (make-auto-save-file-name))))
- (cond ((file-newer-than-file-p file-name file)
- (message "Found recovery file from unsaved edit; consider ESC R to recover.")
- (ding)
- (sleep-for 4)))))
-
- (defun ee-suspend-edit ()
- "suspend"
- (interactive)
- (progn
- (suspend-emacs EE_RESUME_MSG)
- (ee-message HELP_HELP)))
-
- (defun ee-create-help ()
- "Create the help window"
- (progn
- (setq EEHELPF
- (cond
- ((setq temp (getenv "EASYEDIT_HELP")) temp)
- (t "/usr/local/lib/easyedit/HELP-WINDOW")))
- (setq ALTERNATE_HELP (concat EEHELPF "-ADVANCED"))
- (setq EASYEDIT_MANUAL
- (cond
- ((setq temp (getenv "EASYEDIT_MANUAL")) temp)
- (t "/usr/local/lib/easyedit/HELP-MANUAL")))
- (if (string-equal (getenv "HELP_LEVEL") "advanced")
- (progn
- (setq temp ALTERNATE_HELP)
- (setq ALTERNATE_HELP EEHELPF)
- (setq EEHELPF temp)))
- (if (file-exists-p EEHELPF)
- (progn
- (setq ee-HWIN (split-window nil nil nil))
- (select-window ee-HWIN)
- (switch-to-buffer "HELP")
- (insert-file-contents EEHELPF)
- (setq buffer-read-only t)
- (select-window ee-EWIN))
- (message "HELP FILE NOT FOUND!")
- (ding)
- (sleep-for 3)
- (discard-input)
- (kill-emacs))))
-
- (defun ee-switch-help ()
- "toggle between the advanced and basic help files"
- (interactive)
- (if (not (file-exists-p ALTERNATE_HELP))
- (progn
- (message "Alternate help file not found!")
- (ding))
- (define-key ee-com-map "\e>" 'ee-not-manual)
- (define-key ee-com-map "\e<" 'ee-not-manual)
- (set-buffer "HELP")
- (setq buffer-read-only nil)
- (erase-buffer)
- (insert-file-contents ALTERNATE_HELP)
- (setq buffer-read-only t)
- (set-buffer "EDIT")
- (setq temp ALTERNATE_HELP)
- (setq ALTERNATE_HELP EEHELPF)
- (setq EEHELPF temp)))
-
- (defun ee-manual ()
- "replace HELP with MANUAL display"
- (interactive)
- (if (not (file-exists-p EASYEDIT_MANUAL))
- (progn
- (message "Easy-edit manual file not found!")
- (ding))
- (set-buffer "HELP")
- (let ((buffer-read-only nil))
- (erase-buffer)
- (insert-file-contents EASYEDIT_MANUAL))
- (set-buffer "EDIT")
- (define-key ee-com-map "\e>" 'ee-next-subject)
- (define-key ee-com-map "\e<" 'ee-previous-subject)
- (setq HELP_HELP "ESC F/B scroll fwd/bkwd; ESC H - restore HELP")
- (ee-message HELP_HELP)))
-
- (defun ee-insert-file ()
- "Insert file"
- (interactive)
- (setq ifile (read-string "File to insert: "))
- (if (> (length ifile) 0)
- (let ((default-directory "./"))
- (insert-file-contents ifile)))
- (ee-message HELP_HELP))
-
- (defun ee-search-forward ()
- "search forward"
- (interactive)
- (setq sprompt (concat "Find-> [" search-last-string "]: "))
- (setq sstring (read-string sprompt))
- (if (> (length sstring) 0) (setq search-last-string sstring))
- (search-forward search-last-string))
-
- (defun ee-search-backward ()
- "search forward"
- (interactive)
- (setq sprompt (concat "<-Find [" search-last-string "]: "))
- (setq sstring (read-string sprompt))
- (if (> (length sstring) 0) (setq search-last-string sstring))
- (search-backward search-last-string))
-
- (defun ee-message (ee_txt)
- "write an easy-edit message at bottom of screen"
- (interactive)
- (message (concat EE_FILE_NAME (concat EE_MODE (concat " ---- " ee_txt)))))
-
- (defun ee-upp-help ()
- "Scroll help window upwards"
- (interactive)
- (if (window-point ee-HWIN)
- (progn
- (select-window ee-HWIN)
- (setq HWSIZE (- (window-height) 1))
- (select-window ee-EWIN)
- (scroll-other-window (* -1 HWSIZE)))
- (message "No HELP window to scroll")
- (ding)
- (sleep-for 2))
- (ee-message HELP_HELP))
-
- (defun ee-downp-help ()
- "Scroll help window upwards"
- (interactive)
- (if (window-point ee-HWIN)
- (progn
- (select-window ee-HWIN)
- (setq HWSIZE (- (window-height) 1))
- (select-window ee-EWIN)
- (scroll-other-window HWSIZE))
- (message "No HELP window to scroll")
- (ding)
- (sleep-for 2))
- (ee-message HELP_HELP))
-
-
- (defun ee-upl-help ()
- "Scroll help window upwards"
- (interactive)
- (if (window-point ee-HWIN)
- (scroll-other-window -1)
- (message "No HELP window to scroll")
- (ding)
- (sleep-for 2))
- (ee-message HELP_HELP))
-
- (defun ee-downl-help ()
- "Scroll help window upwards"
- (interactive)
- (if (window-point ee-HWIN)
- (scroll-other-window 1)
- (message "No HELP window to scroll")
- (ding)
- (sleep-for 2))
- (ee-message HELP_HELP))
-
-
- (defun ee-kill-line (cnt)
- "Delete a line"
- (interactive "P")
- (progn
- (beginning-of-line)
- (kill-line (if (eq cnt nil) 1 cnt))))
-
- (defun ee-restore-help ()
- "restore a lost help window"
- (interactive)
- (progn
- (define-key ee-com-map "\e>" 'ee-not-manual)
- (define-key ee-com-map "\e<" 'ee-not-manual)
- (switch-to-buffer "EDIT")
- (delete-other-windows)
- (setq ee-HWIN (split-window nil nil nil))
- (select-window ee-HWIN)
- (switch-to-buffer "HELP")
- (let ((buffer-read-only nil))
- (erase-buffer)
- (insert-file-contents EEHELPF))
- (select-window ee-EWIN)
- (setq HELP_HELP "ESC F / ESC B -> HELP forward / backward")
- (ee-message HELP_HELP)))
-
- (defun ee-zap-help ()
- "Remove the HELP window"
- (interactive)
- (progn
- (delete-other-windows)
- (switch-to-buffer "EDIT")
- (setq HELP_HELP "To display HELP window: ESC H")
- (ee-message HELP_HELP)))
-
- ;
- ;
- ; display the *INFORMATION* window with the mesg "mesg", for
- ; duration seconds. If duration =0, display it until a character is typed
- ; if cmd is non-nil, execute the function
- ;
- (defun ee-INFO (mesg)
- (save-window-excursion
- (with-output-to-temp-buffer "*INFORMATION*"
- (save-excursion
- (set-buffer "*INFORMATION*")
- (erase-buffer)
- )
- (princ "\n\n")
- (princ mesg))
- (let ((cursor-in-echo-area t))
- (message "Type any character to continue: ")(read-char))
- ))
-
-
- ;
- ; this command displays "mesg" in a tien INFORMATION window,
- ; and prompts for a character which must be a member of choices, using
- ; the prompt string "prompt" to prompt for it
- ;
- (defun ee-choosefrom-list (mesg prompt choices)
- (progn
- (save-window-excursion
- (with-output-to-temp-buffer "*INFORMATION*"
- (save-excursion
- (set-buffer "*INFORMATION*")
- (erase-buffer)
- )
- (princ "\n\n")
- (princ mesg))
- (let ((cursor-in-echo-area t))
- (setq achar '(x))
- (while (not (ee-member achar choices))
- (message prompt)
- (ding)
- (setq achar (downcase (read-char)))))
- )
- achar))
-
- (defun ee-member (item list)
- "is item in list?"
- (cond
- ((null list) nil)
- ((eq item (car list)) list)
- (t (ee-member item (cdr list)))))
-
- (defun ee-status ()
- "status "
- (interactive)
- (progn
- (setq IMSG
- (concat (current-time-string) "
-
- You are editing " buffer-file-name "
-
- File editing status: " (cond ((buffer-modified-p (get-buffer "EDIT")) "Modified")
- (t "Not modified")) "
-
- (type ESC @ for easy-edit license information)"))
- (ee-INFO IMSG)))
-
- (defun ee-get-arg (mesg prompt)
- (let (char)
- (save-window-excursion
- (with-output-to-temp-buffer "*INFORMATION*"
- (save-excursion
- (set-buffer "*INFORMATION*")
- (erase-buffer)
- )
- (princ mesg))
- (let ((cursor-in-echo-area t))
- (read-string prompt))
- )))
-
- (defun ee-save-exit ()
- "save file and exit"
- (interactive)
- (progn
- (if (buffer-modified-p (get-buffer "EDIT"))
- (message (concat "Saving " EE_FILE_NAME))
- (message (concat EE_FILE_NAME " not modified")))
- (sleep-for 1)
- (save-buffer)
- (discard-input)
- (kill-emacs)))
-
- (defun ee-save-noexit ()
- "save file but do not exit"
- (interactive)
- (progn
- (if (buffer-modified-p (get-buffer "EDIT"))
- (message (concat "Saving " EE_FILE_NAME))
- (message (concat EE_FILE_NAME " not modified")))
- (sleep-for 1)
- (save-buffer)))
-
- (defun ee-saveto-file ()
- "save file and exit"
- (interactive)
- (let ((default-directory "./"))
- (progn
- (set-buffer "EDIT")
-
- (setq sprompt "Save to what filename: ")
- (setq savename (read-string sprompt))
- (if (> (length savename) 0)
- (progn
- (if (file-writable-p savename)
- (progn
- (setq SAVEFL
- (if (file-exists-p savename)
- (yes-or-no-p
- (concat savename " exists! Overwrite it? "))
- t))
- (if SAVEFL
- (progn
- (write-file savename)
- (message
- (concat savename " saved; "
- EE_FILE_NAME " unchanged"))
- (sleep-for 2)
- (discard-input)
- (kill-emacs))))
- (message (concat "Cannot create/write to " savename))))))))
-
-
- (defun ee-grow-EDIT ()
- "Enlarge EDIT window"
- (interactive)
- (cond
- ((window-point ee-HWIN)
- (progn
- (enlarge-window 1)
- (if (not (window-point ee-HWIN))
- (setq HELP_HELP "To restore HELP window: ESC H"))
- (ee-message HELP_HELP)))))
-
- (defun ee-next-subject ()
- "Move to the next subject in the manual"
- (interactive)
- (if (window-point ee-HWIN)
- (progn
- (select-window ee-HWIN)
- (forward-line)
- (if (not (re-search-forward "^=" nil t))
- (progn
- (beginning-of-buffer)
- (re-search-forward "^=" nil t)))
- (recenter 1)
- (ee-message HELP_HELP)
- (select-window ee-EWIN))))
-
- (defun ee-previous-subject ()
- "Move to the next subject in the manual"
- (interactive)
- (if (window-point ee-HWIN)
- (progn
- (select-window ee-HWIN)
- (forward-line -1)
- (if (not (re-search-backward "^=" nil t))
- (progn
- (end-of-buffer)
- (re-search-backward "^=" nil t)))
- (recenter 1)
- (ee-message HELP_HELP)
- (select-window ee-EWIN))))
-
- (defun ee-toggle-insert ()
- "toggle insert/overwrite modes"
- (interactive)
- (cond
- ((= EASYEDIT-INSERT 1)
- (overwrite-mode 1)
- (setq EASYEDIT-INSERT 0)
- (setq EE_MODE " *Overwrite*")
- (ee-message HELP_HELP))
- (t (overwrite-mode 0)
- (setq EASYEDIT-INSERT 1)
- (setq EE_MODE " *Insert*")
- (ee-message HELP_HELP))))
-
- ;
- ; elm easy editor setup
-
- (defun easyedit-mode ()
- "set easyedit mode"
- (if (eq major-mode 'easyedit-mode)
- (message "already in easyedit-mode" (ding))
- (setq mode-name "easy-edit")
- (setq major-mode "easyedit-mode")
- (use-local-map ee-com-map)
- (put 'switch-to-buffer 'disabled t)
- (put 'switch-to-buffer-other-window 'disabled t)
- (put 'other-window 'disabled t)
- (put 'kill-region 'disabled t)
- (put 'execute-extended-command 'disabled t)
- (setq HELP_HELP "ESC F / ESC B -> HELP forward / backward")
- (setq window-min-height 1)
- (setq fill-column 72)
- (setq EASYEDIT-INSERT 1)
- (setq EE_MODE " *Insert*")
- (setq search-last-string "")
- (setq make-backup-files nil)
- (setq require-final-newline t)
- (auto-fill-mode 1)
-
- (if (setq EE_RES_CMD (getenv "EE_RESUME_CMD"))
- (setq EE_RESUME_MSG (concat "echo Suspending easy-edit.... to resume type " EE_RES_CMD))
- (setq EE_RESUME_MSG (concat "echo Suspending easy-edit")))
-
- (ee-message HELP_HELP)))
-
- (if ee-com-map nil
- (setq ee-com-map (make-keymap))
-
- (define-key ee-com-map "\C-a" 'beginning-of-line)
- (define-key ee-com-map "\C-b" 'backward-char)
- (define-key ee-com-map "\C-c" 'abort-recursive-edit)
- (define-key ee-com-map "\C-d" 'scroll-up)
- (define-key ee-com-map "\C-e" 'end-of-line)
- (define-key ee-com-map "\C-f" 'forward-char)
- (define-key ee-com-map "\C-g" 'forward-word)
- (define-key ee-com-map "\C-h" 'backward-delete-char-untabify)
- ; i is the tab
- (define-key ee-com-map "\C-j" 'next-line)
- (define-key ee-com-map "\C-k" 'previous-line)
- (define-key ee-com-map "\C-l" 'ee-not-here)
- ; m is carriage return
- (define-key ee-com-map "\C-n" 'next-line)
- (define-key ee-com-map "\C-o" 'backward-word)
- (define-key ee-com-map "\C-p" 'previous-line)
- (define-key ee-com-map "\C-q" 'ee-search-backward)
- (define-key ee-com-map "\C-r" 'redraw-display)
- (define-key ee-com-map "\C-s" 'ee-search-forward)
- (define-key ee-com-map "\C-t" 'ee-status)
- (define-key ee-com-map "\C-u" 'scroll-down)
- (define-key ee-com-map "\C-v" 'next-line)
- (define-key ee-com-map "\C-w" 'kill-word)
- (define-key ee-com-map "\C-x" 'delete-char)
- (define-key ee-com-map "\C-y" 'yank)
- (define-key ee-com-map "\C-z" 'ee-suspend-edit)
-
- ; Make Sun and RT arrow keys work (at expense of back-paragraph (esc-[))
- (defconst ee-esc-map (make-sparse-keymap)
- " yea yea")
- (define-key ee-com-map "\e" ee-esc-map)
- (defconst esc-bracket-map (make-sparse-keymap)
- "*Keymap for ESC-[ encoded keyboard")
-
- (defconst esc-O-map (make-sparse-keymap)
- "*Keymap for ESC-O encoded keyboard")
- (define-key ee-esc-map "O" esc-O-map)
-
- (define-key ee-esc-map "[" esc-bracket-map) ; Install esc-bracket-map
- (define-key ee-esc-map "[A" 'previous-line) ; R8
- (define-key ee-esc-map "[B" 'next-line) ; R14
- (define-key ee-esc-map "[C" 'forward-char) ; R12
- (define-key ee-esc-map "[D" 'backward-char) ; R10
- (define-key ee-esc-map "OA" 'previous-line) ; R8
- (define-key ee-esc-map "OB" 'next-line) ; R14
- (define-key ee-esc-map "OC" 'forward-char) ; R12
- (define-key ee-esc-map "OD" 'backward-char)
- (define-key ee-esc-map "\e" 'abort-recursive-edit)
-
- (define-key ee-com-map "\eA" 'beginning-of-buffer)
- (define-key ee-com-map "\eb" 'ee-upp-help)
- (define-key ee-com-map "\eB" 'ee-upl-help)
- (define-key ee-com-map "\eC" 'ee-repeat-count)
- (define-key ee-com-map "\eD" 'ee-nofun)
- (define-key ee-com-map "\eE" 'end-of-buffer)
- (define-key ee-com-map "\ef" 'ee-downp-help)
- (define-key ee-com-map "\eF" 'ee-downl-help)
- (define-key ee-com-map "\eG" 'goto-line)
- (define-key ee-com-map "\eH" 'ee-restore-help)
- (define-key ee-com-map "\eI" 'ee-insert-file)
- (define-key ee-com-map "\eJ" 'ee-grow-EDIT)
- (define-key ee-com-map "\eK" 'ee-kill-to-eof)
- (define-key ee-com-map "\eL" 'ee-kill-line)
- (define-key ee-com-map "\eM" 'ee-manual)
- (define-key ee-com-map "\eN" 'ee-toggle-insert)
- ; ESC O used for cursor motion map
- (define-key ee-com-map "\eP" 'fill-paragraph)
- (define-key ee-com-map "\eQ" 'ee-quit)
- (define-key ee-com-map "\eR" 'ee-recover)
- (define-key ee-com-map "\eS" 'ee-save-exit)
- (define-key ee-com-map "\eT" 'ee-saveto-file)
- (define-key ee-com-map "\eU" 'undo)
- (define-key ee-com-map "\eV" 'ee-switch-help)
- (define-key ee-com-map "\eW" 'ee-save-noexit)
- (define-key ee-com-map "\eX" 'kill-line)
- (define-key ee-com-map "\eY" 'ee-search-replace)
- (define-key ee-com-map "\eZ" 'ee-zap-help)
- (define-key ee-com-map "\ea" 'beginning-of-buffer)
- (define-key ee-com-map "\ec" 'ee-repeat-count)
- (define-key ee-com-map "\ed" 'ee-list-dir)
- (define-key ee-com-map "\ee" 'end-of-buffer)
- (define-key ee-com-map "\eg" 'goto-line)
- (define-key ee-com-map "\eh" 'ee-restore-help)
- (define-key ee-com-map "\ei" 'ee-insert-file)
- (define-key ee-com-map "\ej" 'ee-grow-EDIT)
- (define-key ee-com-map "\ek" 'ee-kill-to-eof)
- (define-key ee-com-map "\el" 'ee-kill-line)
- (define-key ee-com-map "\em" 'ee-manual)
- (define-key ee-com-map "\en" 'ee-toggle-insert)
- ; ESC O used for cursor motion map
- (define-key ee-com-map "\eo" 'ee-nofun)
- (define-key ee-com-map "\ep" 'fill-paragraph)
- (define-key ee-com-map "\eq" 'ee-quit)
- (define-key ee-com-map "\er" 'ee-recover)
- (define-key ee-com-map "\es" 'ee-save-exit)
- (define-key ee-com-map "\et" 'ee-saveto-file)
- (define-key ee-com-map "\eu" 'undo)
- (define-key ee-com-map "\ev" 'ee-switch-help)
- (define-key ee-com-map "\ew" 'ee-save-noexit)
- (define-key ee-com-map "\ex" 'kill-line)
- (define-key ee-com-map "\ey" 'ee-search-replace)
- (define-key ee-com-map "\ez" 'ee-zap-help)
-
- (define-key ee-com-map "\e!" 'ee-unix-command)
- (define-key ee-com-map "\e>" 'ee-not-manual)
- (define-key ee-com-map "\e<" 'ee-not-manual)
- (define-key ee-com-map "\e@" 'ee-license)
- (define-key ee-com-map "\e#" 'ee-nofun)
- (define-key ee-com-map "\e$" 'ee-nofun)
- (define-key ee-com-map "\e%" 'ee-nofun)
- (define-key ee-com-map "\e^" 'ee-nofun)
- (define-key ee-com-map "\e&" 'ee-nofun)
- (define-key ee-com-map "\e*" 'ee-nofun)
- (define-key ee-com-map "\e(" 'ee-nofun)
- (define-key ee-com-map "\e)" 'ee-nofun)
- (define-key ee-com-map "\e_" 'ee-nofun)
- (define-key ee-com-map "\e+" 'ee-insert-block)
- (define-key ee-com-map "\e-" 'ee-nofun)
- (define-key ee-com-map "\e=" 'ee-nofun)
- (define-key ee-com-map "\e{" 'ee-nofun)
- (define-key ee-com-map "\e}" 'ee-nofun)
- (define-key ee-com-map "\e]" 'ee-nofun)
- (define-key ee-com-map "\e:" 'ee-nofun)
- (define-key ee-com-map "\e;" 'ee-nofun)
- (define-key ee-com-map "\e\"" 'ee-nofun)
- (define-key ee-com-map "\e~" 'ee-nofun)
- (define-key ee-com-map "\e'" 'ee-nofun)
- (define-key ee-com-map "\e`" 'ee-nofun)
- (define-key ee-com-map "\e\." 'ee-nofun)
- (define-key ee-com-map "\e\," 'ee-nofun)
- (define-key ee-com-map "\e?" 'ee-nofun)
- (define-key ee-com-map "\e/" 'ee-move-block)
- (define-key ee-com-map "\e|" 'ee-nofun)
- (define-key ee-com-map "\e\\" 'ee-nofun)
-
- ;
- ; DISABLE (or set) all esc/control sequecnes for minibuffer and regular editing
- ;
-
- (define-key ee-com-map "\e\C-a" 'ee-nofun)
- (define-key ee-com-map "\e\C-b" 'ee-nofun)
- (define-key ee-com-map "\e\C-c" 'ee-nofun)
- (define-key ee-com-map "\e\C-d" 'ee-nofun)
- (define-key ee-com-map "\e\C-e" 'ee-nofun)
- (define-key ee-com-map "\e\C-f" 'ee-nofun)
- (define-key ee-com-map "\e\C-g" 'ee-nofun)
- (define-key ee-com-map "\e\C-h" 'ee-nofun)
- (define-key ee-com-map "\e\C-i" 'ee-nofun)
- (define-key ee-com-map "\e\C-j" 'ee-nofun)
- (define-key ee-com-map "\e\C-k" 'ee-nofun)
- (define-key ee-com-map "\e\C-l" 'ee-nofun)
- (define-key ee-com-map "\e\C-m" 'ee-nofun)
- (define-key ee-com-map "\e\C-n" 'ee-nofun)
- (define-key ee-com-map "\e\C-o" 'ee-nofun)
- (define-key ee-com-map "\e\C-p" 'ee-nofun)
- (define-key ee-com-map "\e\C-q" 'ee-nofun)
- (define-key ee-com-map "\e\C-r" 'ee-nofun)
- (define-key ee-com-map "\e\C-s" 'ee-nofun)
- (define-key ee-com-map "\e\C-t" 'ee-nofun)
- (define-key ee-com-map "\e\C-u" 'ee-nofun)
- (define-key ee-com-map "\e\C-v" 'ee-nofun)
- (define-key ee-com-map "\e\C-w" 'ee-nofun)
- (define-key ee-com-map "\e\C-x" 'ee-nofun)
- (define-key ee-com-map "\e\C-y" 'ee-nofun)
- (define-key ee-com-map "\e\C-z" 'ee-nofun)
- (define-key ee-com-map "\e\C-!" 'ee-nofun)
- (define-key ee-com-map "\e\C->" 'ee-nofun)
- (define-key ee-com-map "\e\C-<" 'ee-nofun)
- (define-key ee-com-map "\e\C-@" 'ee-nofun)
- (define-key ee-com-map "\e\C-#" 'ee-nofun)
- (define-key ee-com-map "\e\C-$" 'ee-nofun)
- (define-key ee-com-map "\e\C-%" 'ee-nofun)
- (define-key ee-com-map "\e\C-^" 'ee-nofun)
- (define-key ee-com-map "\e\C-&" 'ee-nofun)
- (define-key ee-com-map "\e\C-*" 'ee-nofun)
- (define-key ee-com-map "\e\C-(" 'ee-nofun)
- (define-key ee-com-map "\e\C-)" 'ee-nofun)
- (define-key ee-com-map "\e\C-_" 'ee-nofun)
- (define-key ee-com-map "\e\C-+" 'ee-nofun)
- (define-key ee-com-map "\e\C--" 'ee-nofun)
- (define-key ee-com-map "\e\C-=" 'ee-nofun)
- (define-key ee-com-map "\e\C-{" 'ee-nofun)
- (define-key ee-com-map "\e\C-}" 'ee-nofun)
- (define-key ee-com-map "\e\C-]" 'ee-nofun)
- (define-key ee-com-map "\e\C-:" 'ee-nofun)
- (define-key ee-com-map "\e\C-;" 'ee-nofun)
- (define-key ee-com-map "\e\C-\"" 'ee-nofun)
- (define-key ee-com-map "\e\C-~" 'ee-nofun)
- (define-key ee-com-map "\e\C-'" 'ee-nofun)
- (define-key ee-com-map "\e\C-`" 'ee-nofun)
- (define-key ee-com-map "\e\C-\." 'ee-nofun)
- (define-key ee-com-map "\e\C-\," 'ee-nofun)
- (define-key ee-com-map "\e\C-?" 'ee-nofun)
- (define-key ee-com-map "\e\C-/" 'ee-nofun)
- (define-key ee-com-map "\e\C-|" 'ee-nofun)
- (define-key ee-com-map "\e\C-\\" 'ee-nofun)
-
- (define-key minibuffer-local-map "\e\C-a" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-b" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-c" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-d" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-e" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-f" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-g" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-h" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-i" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-j" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-k" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-l" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-m" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-n" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-o" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-p" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-q" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-r" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-s" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-t" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-u" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-v" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-w" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-x" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-y" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-z" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-!" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C->" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-<" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-@" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-#" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-$" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-%" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-^" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-&" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-*" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-(" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-)" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-_" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-+" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C--" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-=" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-{" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-}" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-]" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-:" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-;" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-\"" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-~" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-'" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-`" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-\." 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-\," 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-?" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-/" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-|" 'ee-nofun)
- (define-key minibuffer-local-map "\e\C-\\" 'ee-nofun)
-
-
- ; various escape sequecnes for arrow keys in minibuffer
- ; Make Sun and RT arrow keys work
- (defconst esc-bracket-map (make-sparse-keymap)
- "*Keymap for ESC-[ encoded keyboard")
- (progn
- (define-key esc-map "[" esc-bracket-map) ; Install esc-bracket-map
- (define-key esc-map "[A" 'previous-line) ; R8
- (define-key esc-map "[B" 'next-line) ; R14
- (define-key esc-map "[C" 'forward-char) ; R12
- (define-key esc-map "[D" 'backward-char) ; R10
- (define-key esc-map "[[" 'backward-paragraph)) ; the original esc-[
-
- (defconst esc-O-map (make-sparse-keymap)
- "*Keymap for ESC-[ encoded keyboard")
- (progn
- (define-key esc-map "O" esc-O-map) ; Install esc-O-map
- (define-key esc-map "OA" 'previous-line) ; R8
- (define-key esc-map "OB" 'next-line) ; R14
- (define-key esc-map "OC" 'forward-char) ; R12
- (define-key esc-map "OD" 'backward-char)) ; R10
-
- (define-key minibuffer-local-map "\C-a" 'beginning-of-line)
- (define-key minibuffer-local-map "\C-b" 'backward-char)
- (define-key minibuffer-local-map "\C-c" 'abort-recursive-edit)
- (define-key minibuffer-local-map "\C-d" 'ee-not-here)
- (define-key minibuffer-local-map "\C-e" 'end-of-line)
- (define-key minibuffer-local-map "\C-f" 'forward-char)
- (define-key minibuffer-local-map "\C-g" 'forward-word)
- (define-key minibuffer-local-map "\C-h" 'backward-delete-char-untabify)
- ; i is the tab
- (define-key minibuffer-local-map "\C-j" 'ee-not-here)
- (define-key minibuffer-local-map "\C-k" 'ee-not-here)
- (define-key minibuffer-local-map "\C-l" 'ee-not-here)
- ; m is carriage return
- (define-key minibuffer-local-map "\C-n" 'ee-not-here)
- (define-key minibuffer-local-map "\C-o" 'backward-word)
- (define-key minibuffer-local-map "\C-p" 'ee-not-here)
- (define-key minibuffer-local-map "\C-q" 'ee-not-here)
- (define-key minibuffer-local-map "\C-r" 'redraw-display)
- (define-key minibuffer-local-map "\C-s" 'ee-not-here)
- (define-key minibuffer-local-map "\C-t" 'ee-not-here)
- (define-key minibuffer-local-map "\C-u" 'ee-not-here)
- (define-key minibuffer-local-map "\C-v" 'ee-not-here)
- (define-key minibuffer-local-map "\C-w" 'kill-word)
- (define-key minibuffer-local-map "\C-x" 'delete-char)
- (define-key minibuffer-local-map "\C-y" 'yank)
- (define-key minibuffer-local-map "\C-z" 'ee-suspend-edit)
- (define-key minibuffer-local-map "\eA" 'ee-not-here)
- (define-key minibuffer-local-map "\eB" 'ee-not-here)
- (define-key minibuffer-local-map "\eC" 'ee-not-here)
- (define-key minibuffer-local-map "\eD" 'ee-list-dir)
- (define-key minibuffer-local-map "\eE" 'ee-not-here)
- (define-key minibuffer-local-map "\eF" 'ee-not-here)
- (define-key minibuffer-local-map "\eG" 'ee-not-here)
- (define-key minibuffer-local-map "\eH" 'ee-not-here)
- (define-key minibuffer-local-map "\eI" 'ee-not-here)
- (define-key minibuffer-local-map "\eJ" 'ee-not-here)
- (define-key minibuffer-local-map "\eK" 'ee-not-here)
- (define-key minibuffer-local-map "\eL" 'ee-kill-line)
- (define-key minibuffer-local-map "\eM" 'ee-not-here)
- (define-key minibuffer-local-map "\eN" 'ee-toggle-insert)
- (define-key minibuffer-local-map "\eP" 'ee-not-here)
- (define-key minibuffer-local-map "\eQ" 'ee-not-here)
- (define-key minibuffer-local-map "\eR" 'ee-not-here)
- (define-key minibuffer-local-map "\eS" 'ee-not-here)
- (define-key minibuffer-local-map "\eT" 'ee-not-here)
- (define-key minibuffer-local-map "\eU" 'undo)
- (define-key minibuffer-local-map "\eV" 'ee-not-here)
- (define-key minibuffer-local-map "\eW" 'ee-not-here)
- (define-key minibuffer-local-map "\eX" 'kill-line)
- (define-key minibuffer-local-map "\eY" 'ee-not-here)
- (define-key minibuffer-local-map "\eZ" 'ee-not-here)
- (define-key minibuffer-local-map "\ea" 'ee-not-here)
- (define-key minibuffer-local-map "\eb" 'ee-not-here)
- (define-key minibuffer-local-map "\ec" 'ee-not-here)
- (define-key minibuffer-local-map "\ed" 'ee-not-here)
- (define-key minibuffer-local-map "\ee" 'ee-not-here)
- (define-key minibuffer-local-map "\ef" 'ee-not-here)
- (define-key minibuffer-local-map "\eg" 'ee-not-here)
- (define-key minibuffer-local-map "\eh" 'ee-not-here)
- (define-key minibuffer-local-map "\ei" 'ee-not-here)
- (define-key minibuffer-local-map "\ej" 'ee-not-here)
- (define-key minibuffer-local-map "\ek" 'ee-not-here)
- (define-key minibuffer-local-map "\el" 'ee-kill-line)
- (define-key minibuffer-local-map "\em" 'ee-not-here)
- (define-key minibuffer-local-map "\en" 'ee-toggle-insert)
- (define-key minibuffer-local-map "\ep" 'ee-not-here)
- (define-key minibuffer-local-map "\eq" 'ee-not-here)
- (define-key minibuffer-local-map "\er" 'ee-not-here)
- (define-key minibuffer-local-map "\es" 'ee-not-here)
- (define-key minibuffer-local-map "\et" 'ee-not-here)
- (define-key minibuffer-local-map "\eu" 'undo)
- (define-key minibuffer-local-map "\ev" 'ee-not-here)
- (define-key minibuffer-local-map "\ew" 'ee-not-here)
- (define-key minibuffer-local-map "\ex" 'kill-line)
- (define-key minibuffer-local-map "\ey" 'ee-not-here)
- (define-key minibuffer-local-map "\ez" 'ee-not-here)
-
- (define-key minibuffer-local-map "\e!" 'ee-nofun)
- (define-key minibuffer-local-map "\e@" 'ee-nofun)
- (define-key minibuffer-local-map "\e#" 'ee-nofun)
- (define-key minibuffer-local-map "\e$" 'ee-nofun)
- (define-key minibuffer-local-map "\e%" 'ee-nofun)
- (define-key minibuffer-local-map "\e^" 'ee-nofun)
- (define-key minibuffer-local-map "\e&" 'ee-nofun)
- (define-key minibuffer-local-map "\e*" 'ee-nofun)
- (define-key minibuffer-local-map "\e(" 'ee-nofun)
- (define-key minibuffer-local-map "\e)" 'ee-nofun)
- (define-key minibuffer-local-map "\e_" 'ee-nofun)
- (define-key minibuffer-local-map "\e+" 'ee-nofun)
- (define-key minibuffer-local-map "\e-" 'ee-nofun)
- (define-key minibuffer-local-map "\e=" 'ee-nofun)
- (define-key minibuffer-local-map "\e{" 'ee-nofun)
- (define-key minibuffer-local-map "\e}" 'ee-nofun)
- (define-key minibuffer-local-map "\e]" 'ee-nofun)
- (define-key minibuffer-local-map "\e:" 'ee-nofun)
- (define-key minibuffer-local-map "\e;" 'ee-nofun)
- (define-key minibuffer-local-map "\e\"" 'ee-nofun)
- (define-key minibuffer-local-map "\e~" 'ee-nofun)
- (define-key minibuffer-local-map "\e'" 'ee-nofun)
- (define-key minibuffer-local-map "\e`" 'ee-nofun)
- (define-key minibuffer-local-map "\e\." 'ee-nofun)
- (define-key minibuffer-local-map "\e\," 'ee-nofun)
- (define-key minibuffer-local-map "\e?" 'ee-nofun)
- (define-key minibuffer-local-map "\e/" 'ee-nofun)
- (define-key minibuffer-local-map "\e|" 'ee-nofun)
- (define-key minibuffer-local-map "\e\\" 'ee-nofun)
- )
-
-
-
- (defun ee-list-dir ()
- "List a directory in another window"
- (interactive)
- (let ((default-directory "./"))
- (setq gamsg "\n\n\nType a filename, a directory name, or a wildcard
- (e.g. t* lists all files starting with t)
- to list particular files or an entire directory.\n
- Type a carriage return alone to list the current working directory")
- (setq ldir (ee-get-arg gamsg "Dir or file(s) to list: "))
- (save-window-excursion
- (if (eq 0 (length ldir))
- (setq ldir "."))
-
- (setq lcomm (concat "ls -l " ldir))
- (setq command (concat "(set noglob; /bin/echo command executed: " lcomm ");" lcomm))
- (with-output-to-temp-buffer "*Directory*"
- (buffer-flush-undo standard-output)
- (message "Working...")
- (call-process "csh" nil standard-output nil "-c" command))
- (let ((cursor-in-echo-area t))
- (setq char ?b)
- (while (not (eq char ?r))
- (progn
- (message "(f)orward (b)ackwards (r)esume editing: ")
- (setq char (downcase (read-char)))
- (other-window 1)
- (cond ((eq char ?f)
- (if (not (pos-visible-in-window-p (point-max)))
- (scroll-up)(ding)(message "At bottom")(sleep-for 2)))
- ((eq char ?b)
- (if (not (pos-visible-in-window-p (point-min)))
- (scroll-down)(ding)(message "At top")(sleep-for 2)))
- ((eq char ?r) nil)
- (t (message "Type f, b, or r please: ")
- (sleep-for 2)
- t))
- (other-window 1))) )))
- )
-
- (defun ee-license ()
- "License info"
- (interactive)
- (save-window-excursion
-
- (with-output-to-temp-buffer "*LICENSE*"
-
- (buffer-flush-undo standard-output)
- (princ " Easy-edit novice screen editor for Unix systems with GNU emacs\n")
- (princ "
- Easy-edit " ) (princ ee-VERSION)
- (princ "
-
- Copyright (C) 1992 Larry Broda
- Department of Psychology
- University of Illinois at Urbana-Champaign
-
- 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. This program
- is an extension of GNU emacs; See the GNU General Public License
- for more details.
-
- This program is free software; you can redistribute it and/or modify
- it under the same terms as the GNU General Public License as published by
- the Free Software Foundation; either version 1, or (at your option)
- any later version.
-
-
- By Larry Broda
- Department of Psychology
- University of Illinois at Urbana-Champaign
- Email: lbroda@s.psych.uiuc.edu
- 4/13/92
-
- for GNU emacs information contact:
- Free Software Foundation
- 675 Massachusetts Avenu
- Cambridge, MA 02139
- USA
- "))
- (let ((cursor-in-echo-area t))
- (setq char ?b)
- (while (not (eq char ?r))
- (progn
- (message "(f)orward (b)ackwards (r)esume editing: ")
- (setq char (downcase (read-char)))
- (other-window 1)
- (cond ((eq char ?f)
- (if (not (pos-visible-in-window-p (point-max)))
- (scroll-up)(ding)(message "At bottom")(sleep-for 2)))
- ((eq char ?b)
- (if (not (pos-visible-in-window-p (point-min)))
- (scroll-down)(ding)(message "At top")(sleep-for 2)))
- ((eq char ?r) nil)
- (t (message "Type f, b, or r please: ")
- (sleep-for 2)
- t))
- (other-window 1)))))
- )
-
- (defun ee-repeat-count ()
- "Begin a numeric argument for the following command.
- Digits or minus sign following this command make up the numeric argument.
- If no digits or minus sign follow, this command by itself provides 4 as argument.
- Used more than once, this command multiplies the argument by 4 each time."
- (interactive nil)
- (message "Enter count followed by key or command to repeat: ")
- (let ((c-u 4) (argstartchar last-command-char)
- char)
- (setq char (read-char))
- (while (= char argstartchar)
- (setq c-u (* 4 c-u))
- (setq char (read-char)))
- (prefix-arg-internal char c-u nil)))
-
- (defun ee-not-manual ()
- "Error for using manual commands outside manual"
- (interactive)
- (message "This command only valid if manual is displayed")
- (ding)
- (sleep-for 3)
- (ee-message HELP_HELP))
-
- (defun ee-unix-command ()
- "execute a Unix command"
- (interactive)
- (setq gamsg "Type a unix command. The output will be displayed in
- a special window, where you may:
- 1: Scroll the output listing forward and backward (f/b).
- 2: Insert the command output listing into your edit file at the current
- cursor location (i).
- NOTE: The command can *NOT* be a command that requires further input by you;
- Use ^Z to escape to a Unix prompt to perform interactive commands.
- EXAMPLES of valid commands: date; cat <filename>; who, etc.
- EXAMPLES of *INVALID* commands: Elm; easyedit; Mail, etc.
- ...or anything that requires additional input from you..")
- (let ((default-directory "./"))
- (setq command (ee-get-arg gamsg "Unix Command: "))
- (save-window-excursion
- (with-output-to-temp-buffer "*Unix*"
- (buffer-flush-undo standard-output)
- (message (concat "executing " (concat command "...")))
- (call-process "csh" nil standard-output nil "-c" command))
- (let ((cursor-in-echo-area t))
- (setq char ?b)
- (while (not (eq char ?r))
- (progn
- (message "(f)orward (b)ackwards (i)nsert output into file (r)esume editing: ")
- (setq char (downcase (read-char)))
- (other-window 1)
- (cond ((eq char ?f)
- (if (not (pos-visible-in-window-p (point-max)))
- (scroll-up)(ding)(message "At bottom")(sleep-for 2)))
- ((eq char ?b)
- (if (not (pos-visible-in-window-p (point-min)))
- (scroll-down)(ding)(message "At top")(sleep-for 2)))
- ((eq char ?r) nil)
- ((eq char ?i) (progn (copy-to-register ?v (point-min)(point-max) nil)
- (other-window 1)
- (insert-register ?v)
- (other-window 1)))
-
- (t (message "Type f, b, i, or r please: ")
- (sleep-for 2)
- t))
- (other-window 1))))))
- )
-
-
- ;
- ;
- ; create the separate windows
- ;
-
- (progn
- (setq EE_FILE_NAME (file-name-nondirectory buffer-file-name))
- (ee-check-recovery-file EE_FILE_NAME)
- (rename-buffer "EDIT")
- (setq ee-EWIN (selected-window))
- (setq ee-BLOCK-MARK 0)
- (setq ee-BLOCK-SAVED nil)
- (ee-create-help)
- (easyedit-mode)
- (if (getenv "EE_HELP_OFF")
- (progn (ee-zap-help) ))
- )
-