Vi, Vimには 'i'とか 'a'とか 'A'とか 'o'とか 'O'があるので、
それを真似てみた。個人的に 'o'が好きです。次の行を編集したい
ということは結構ありますよね。
コード
たぶんこんな感じでいいと思います。
追記 'o'コマンドを修正
;; insert-mode
(defun my/view-insert ()
(interactive)
(toggle-read-only))
(define-key view-mode-map (kbd "i") 'my/view-insert)
(defun my/view-insert-bol ()
(interactive)
(back-to-indentation)
(toggle-read-only))
(define-key view-mode-map (kbd "I") 'my/view-insert-bol)
(defun my/view-insert-after ()
(interactive)
(unless (eolp)
(forward-char))
(toggle-read-only))
(define-key view-mode-map (kbd "a") 'my/view-insert-after)
(defun my/view-insert-eol ()
(interactive)
(end-of-line)
(toggle-read-only))
(define-key view-mode-map (kbd "A") 'my/view-insert-eol)
(defun my/view-insert-next-line ()
(interactive)
(toggle-read-only)
(end-of-line)
(newline-and-indent))
(define-key view-mode-map (kbd "o") 'my/view-insert-next-line)
(defun my/view-insert-prev-line ()
(interactive)
(beginning-of-line)
(toggle-read-only)
(save-excursion
(newline)))
(define-key view-mode-map (kbd "O") 'my/view-insert-prev-line)