From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: rosangelamesil@gmail.com Newsgroups: gmane.emacs.help Subject: Re: Modal Keyboard Layout for EMACS Date: Fri, 23 Nov 2012 17:56:50 -0800 (PST) Message-ID: <5a0d0ec2-5dc1-401c-9817-e7cbc0e1a0db@googlegroups.com> References: <5f81bc03-eafb-4330-96b1-383d17886c0c@googlegroups.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: ger.gmane.org 1353722414 6930 80.91.229.3 (24 Nov 2012 02:00:14 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 24 Nov 2012 02:00:14 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sat Nov 24 03:00:25 2012 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Tc52e-00062o-4P for geh-help-gnu-emacs@m.gmane.org; Sat, 24 Nov 2012 03:00:24 +0100 Original-Received: from localhost ([::1]:53285 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tc52T-00043z-C8 for geh-help-gnu-emacs@m.gmane.org; Fri, 23 Nov 2012 21:00:13 -0500 Original-Received: by 10.224.105.205 with SMTP id u13mr3719958qao.6.1353722210310; Fri, 23 Nov 2012 17:56:50 -0800 (PST) Original-Received: by 10.49.86.106 with SMTP id o10mr853446qez.14.1353722210247; Fri, 23 Nov 2012 17:56:50 -0800 (PST) Original-Path: usenet.stanford.edu!i9no9533247qap.0!news-out.google.com!gf5ni2982588qab.0!nntp.google.com!i9no9583950qap.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help In-Reply-To: <5f81bc03-eafb-4330-96b1-383d17886c0c@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=189.41.128.27; posting-account=xnilngoAAABehzk38ooJVgoXGs-RXhN9 Original-NNTP-Posting-Host: 189.41.128.27 User-Agent: G2/1.0 Injection-Date: Sat, 24 Nov 2012 01:56:50 +0000 Original-Xref: usenet.stanford.edu gnu.emacs.help:195559 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:87881 Archived-At: As I told before, I don't think it is necessary to have a separate mode to exit mvi. All one has to do is to run the command mvi-insert-mode, while in insert-mode. Make sure you see in the mode-line and type: M-x mvi-insert-mode The above command exits mvi, and goes back to emacs keybinding. That said, below is a keybinding for Stefan's mvi-mode. The whole thing occupies 51 lines. ;; Original design by Stefan Monnier (defvar mvi-command-mode-map (let ((map (make-sparse-keymap))) (define-key map "h" 'backward-char) (define-key map "j" 'next-line) (define-key map "k" 'previous-line) (define-key map "l" 'forward-char) (define-key map "i" 'mvi-insert-mode) (define-key map "x" 'delete-char) (define-key map "z" 'delete-backward-char) (define-key map "a" 'move-beginning-of-line) (define-key map "e" 'move-end-of-line) (define-key map "d" 'kill-whole-line) (define-key map "p" 'yank) (define-key map "u" 'undo) (define-key map "v" 'set-mark-command) (define-key map "y" 'kill-ring-save) (define-key map "r" 'kill-region) (define-key map "0" 'delete-window) (define-key map "1" 'delete-other-window) (define-key map "2" 'split-window-below) (define-key map "o" 'other-window) (define-key map "s" 'save-buffer) (define-key map "w" 'write-file) (define-key map "g" 'beginning-of-buffer) (define-key map "G" 'end-of-buffer) (define-key map "n" 'isearch-forward) (define-key map "N" 'isearch-backward) (define-key map "[" 'mvi-self-insert-command) map)) (defun mvi-self-insert-command () (interactive) (call-interactively 'self-insert-command) (mvi-insert-mode 1)) (defvar mvi-insert-mode-map (let ((map (make-sparse-keymap))) (define-key map "[" 'mvi-command-mode) map)) (define-minor-mode mvi-command-mode "Minimalistic VI-like mode." :lighter " " :global t (when mvi-command-mode (mvi-insert-mode -1))) (define-minor-mode mvi-insert-mode "Emacs with a escape to VI command" :lighter " " :global t (when mvi-insert-mode (mvi-command-mode -1))) (provide 'mvi-command-mode)