       (switch-to-buffer "*scratch*")
     (switch-to-buffer "*scratch*")
     (insert initial-scratch-message)))
+
+;; backindentation
+;; (defun kui/backindent ()
+;;   "Unindent"
+;;   (interactive)
+;;   (labels ((f (pos)
+;;               (previous-line)
+;;               (when (not (= pos (point)))
+
+;;   (save-excursion
+;;     ()))
 
 ;; -------------------------------------------------------------------------
 ;; 便利な感じのマイナーモード

;; pkg-name のアップデートがある時は t を返す
(defun kui/package-update-available-p (pkg-name)
  "Return t if PKG-NAME's update is available."
  (version-list-< (kui/package-get-activated-vers pkg-name)
                  (kui/package-get-latest-vers pkg-name)))

;; インストール済みでアップデート可能なパッケージをリストアップ
(defun kui/package-update-available-package-list ()

             package-activated-list))

;; アップデート可能なインストール済みパッケージ全てをアップデート
(defun kui/package-update-all-package (&optional non-interactive)
  "Update all package which is update-available with y-or-n interaction.
if NON-INTERACTIVE is non-nil, update all package without interaction."
  (interactive)
  (unless package--initialized (package-initialize t))
  (unless package-archive-contents (package-refresh-contents))
  (let ((pkg-list (kui/package-update-available-package-list)))
    (if (not pkg-list)
        (message "No update available package")
      (dolist (pkg-name pkg-list)
        (if (or non-interactive
                (y-or-n-p (format "update package?: %s" pkg-name)))
            (package-install pkg-name)))
      (package-initialize))))

;; インストールされていないパッケージを require した時に、
;; 自動でインストールしたあとに require してくれる
