equal
deleted
inserted
replaced
463 ;; dired-recursive-deletes 'top) |
463 ;; dired-recursive-deletes 'top) |
464 |
464 |
465 (defun my-dired-up-dir () |
465 (defun my-dired-up-dir () |
466 "'Reuse' buffer if enter to dir or open new buffer if enter to file." |
466 "'Reuse' buffer if enter to dir or open new buffer if enter to file." |
467 (interactive) |
467 (interactive) |
468 (let* ( (dir (dired-current-directory)) (i (- (length dir) 2)) newdir ) |
468 ;; (dired-current-directory) always end with trailing '/' char. |
|
469 (let* ( (dir (dired-current-directory)) (i (- (length dir) 2)) upperdir ) |
469 (while (and |
470 (while (and |
470 (>= i 0) |
471 (>= i 0) |
471 (not (equal (aref dir i) ?/)) ) |
472 (not (equal (aref dir i) ?/)) ) |
472 (setq i (- i 1)) |
473 (setq i (- i 1)) |
473 ) |
474 ) |
474 (setq newdir (substring dir 0 (max 0 i))) |
475 (setq upperdir (substring dir 0 (+ i 1))) |
475 (when (file-directory-p newdir) |
476 (when (file-directory-p upperdir) |
476 (find-alternate-file newdir) |
477 (find-alternate-file upperdir) |
477 (dired-goto-file dir) |
478 (dired-goto-file dir) |
478 ) |
479 ) |
479 )) |
480 )) |
480 (define-key dired-mode-map (kbd "<backspace>") 'my-dired-up-dir) |
481 (define-key dired-mode-map (kbd "<backspace>") 'my-dired-up-dir) |
481 |
482 |