Mercurial > emacs
comparison lisp/dired.el @ 40950:4bc87462585c
Many trivial doc fixes.
(dired-get-file-for-visit): New function.
(dired-find-alternate-file, dired-mouse-find-file-other-window):
(dired-view-file, dired-find-file-other-window, dired-display-file):
(dired-find-file): Use dired-get-file-for-visit.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 12 Nov 2001 17:04:33 +0000 |
parents | 1f2eaa535150 |
children | 078a3f1b537a |
comparison
equal
deleted
inserted
replaced
40949:c053a630489a | 40950:4bc87462585c |
---|---|
40 (defgroup dired nil | 40 (defgroup dired nil |
41 "Directory editing." | 41 "Directory editing." |
42 :group 'environment) | 42 :group 'environment) |
43 | 43 |
44 (defgroup dired-mark nil | 44 (defgroup dired-mark nil |
45 "Handling marks in dired." | 45 "Handling marks in Dired." |
46 :prefix "dired-" | 46 :prefix "dired-" |
47 :group 'dired) | 47 :group 'dired) |
48 | 48 |
49 | 49 |
50 ;;;###autoload | 50 ;;;###autoload |
1197 (put 'dired-mode 'mode-class 'special) | 1197 (put 'dired-mode 'mode-class 'special) |
1198 | 1198 |
1199 (defun dired-mode (&optional dirname switches) | 1199 (defun dired-mode (&optional dirname switches) |
1200 "\ | 1200 "\ |
1201 Mode for \"editing\" directory listings. | 1201 Mode for \"editing\" directory listings. |
1202 In dired, you are \"editing\" a list of the files in a directory and | 1202 In Dired, you are \"editing\" a list of the files in a directory and |
1203 \(optionally) its subdirectories, in the format of `ls -lR'. | 1203 \(optionally) its subdirectories, in the format of `ls -lR'. |
1204 Each directory is a page: use \\[backward-page] and \\[forward-page] to move pagewise. | 1204 Each directory is a page: use \\[backward-page] and \\[forward-page] to move pagewise. |
1205 \"Editing\" means that you can run shell commands on files, visit, | 1205 \"Editing\" means that you can run shell commands on files, visit, |
1206 compress, load or byte-compile them, change their file attributes | 1206 compress, load or byte-compile them, change their file attributes |
1207 and insert subdirectories into the same buffer. You can \"mark\" | 1207 and insert subdirectories into the same buffer. You can \"mark\" |
1337 "Goto ARG'th previous directory file line." | 1337 "Goto ARG'th previous directory file line." |
1338 (interactive "p") | 1338 (interactive "p") |
1339 (dired-next-dirline (- arg))) | 1339 (dired-next-dirline (- arg))) |
1340 | 1340 |
1341 (defun dired-up-directory (&optional other-window) | 1341 (defun dired-up-directory (&optional other-window) |
1342 "Run dired on parent directory of current directory. | 1342 "Run Dired on parent directory of current directory. |
1343 Find the parent directory either in this buffer or another buffer. | 1343 Find the parent directory either in this buffer or another buffer. |
1344 Creates a buffer if necessary." | 1344 Creates a buffer if necessary." |
1345 (interactive "P") | 1345 (interactive "P") |
1346 (let* ((dir (dired-current-directory)) | 1346 (let* ((dir (dired-current-directory)) |
1347 (up (file-name-directory (directory-file-name dir)))) | 1347 (up (file-name-directory (directory-file-name dir)))) |
1353 (if other-window | 1353 (if other-window |
1354 (dired-other-window up) | 1354 (dired-other-window up) |
1355 (dired up)) | 1355 (dired up)) |
1356 (dired-goto-file dir))))) | 1356 (dired-goto-file dir))))) |
1357 | 1357 |
1358 (defun dired-get-file-for-visit () | |
1359 "Get the current line's file name, with an error if file does not exist." | |
1360 (interactive) | |
1361 (let ((file-name (file-name-sans-versions (dired-get-filename) t))) | |
1362 (if (file-exists-p file-name) | |
1363 file-name | |
1364 (if (file-symlink-p file-name) | |
1365 (error "File is a symlink to a nonexistent target") | |
1366 (error "File no longer exists; type `g' to update Dired buffer"))))) | |
1367 | |
1358 ;; Force `f' rather than `e' in the mode doc: | 1368 ;; Force `f' rather than `e' in the mode doc: |
1359 (defalias 'dired-advertised-find-file 'dired-find-file) | 1369 (defalias 'dired-advertised-find-file 'dired-find-file) |
1360 (defun dired-find-file () | 1370 (defun dired-find-file () |
1361 "In dired, visit the file or directory named on this line." | 1371 "In Dired, visit the file or directory named on this line." |
1362 (interactive) | 1372 (interactive) |
1363 (let ((file-name (file-name-sans-versions (dired-get-filename) t))) | 1373 (find-file (dired-get-file-for-visit))) |
1364 (if (file-exists-p file-name) | |
1365 (find-file file-name) | |
1366 (if (file-symlink-p file-name) | |
1367 (error "File is a symlink to a nonexistent target") | |
1368 (error "File no longer exists; type `g' to update Dired buffer"))))) | |
1369 | 1374 |
1370 (defun dired-find-alternate-file () | 1375 (defun dired-find-alternate-file () |
1371 "In dired, visit this file or directory instead of the dired buffer." | 1376 "In Dired, visit this file or directory instead of the dired buffer." |
1372 (interactive) | 1377 (interactive) |
1373 (set-buffer-modified-p nil) | 1378 (set-buffer-modified-p nil) |
1374 (find-alternate-file (dired-get-filename))) | 1379 (find-alternate-file (dired-get-file-for-visit))) |
1375 | 1380 |
1376 (defun dired-mouse-find-file-other-window (event) | 1381 (defun dired-mouse-find-file-other-window (event) |
1377 "In dired, visit the file or directory name you click on." | 1382 "In Dired, visit the file or directory name you click on." |
1378 (interactive "e") | 1383 (interactive "e") |
1379 (let (file) | 1384 (let (file) |
1380 (save-excursion | 1385 (save-excursion |
1381 (set-buffer (window-buffer (posn-window (event-end event)))) | 1386 (set-buffer (window-buffer (posn-window (event-end event)))) |
1382 (save-excursion | 1387 (save-excursion |
1383 (goto-char (posn-point (event-end event))) | 1388 (goto-char (posn-point (event-end event))) |
1384 (setq file (dired-get-filename)))) | 1389 (setq file (dired-get-file-for-visit)))) |
1385 (select-window (posn-window (event-end event))) | 1390 (select-window (posn-window (event-end event))) |
1386 (find-file-other-window (file-name-sans-versions file t)))) | 1391 (find-file-other-window (file-name-sans-versions file t)))) |
1387 | 1392 |
1388 (defun dired-view-file () | 1393 (defun dired-view-file () |
1389 "In dired, examine a file in view mode, returning to dired when done. | 1394 "In Dired, examine a file in view mode, returning to dired when done. |
1390 When file is a directory, show it in this buffer if it is inserted; | 1395 When file is a directory, show it in this buffer if it is inserted; |
1391 otherwise, display it in another buffer." | 1396 otherwise, display it in another buffer." |
1392 (interactive) | 1397 (interactive) |
1393 (if (file-directory-p (dired-get-filename)) | 1398 (let ((file (dired-get-file-for-visit))) |
1394 (or (and (cdr dired-subdir-alist) | 1399 (if (file-directory-p file) |
1395 (dired-goto-subdir (dired-get-filename))) | 1400 (or (and (cdr dired-subdir-alist) |
1396 (dired (dired-get-filename))) | 1401 (dired-goto-subdir file)) |
1397 (view-file (dired-get-filename)))) | 1402 (dired file)) |
1403 (view-file file)))) | |
1398 | 1404 |
1399 (defun dired-find-file-other-window () | 1405 (defun dired-find-file-other-window () |
1400 "In dired, visit this file or directory in another window." | 1406 "In Dired, visit this file or directory in another window." |
1401 (interactive) | 1407 (interactive) |
1402 (find-file-other-window (file-name-sans-versions (dired-get-filename) t))) | 1408 (find-file-other-window (dired-get-file-for-visit))) |
1403 | 1409 |
1404 (defun dired-display-file () | 1410 (defun dired-display-file () |
1405 "In dired, display this file or directory in another window." | 1411 "In Dired, display this file or directory in another window." |
1406 (interactive) | 1412 (interactive) |
1407 (let ((file (file-name-sans-versions (dired-get-filename) t))) | 1413 (display-buffer (find-file-noselect (dired-get-file-for-visit)))) |
1408 (display-buffer (find-file-noselect file)))) | |
1409 | 1414 |
1410 ;;; Functions for extracting and manipulating file names in dired buffers. | 1415 ;;; Functions for extracting and manipulating file names in Dired buffers. |
1411 | 1416 |
1412 (defun dired-get-filename (&optional localp no-error-if-not-filep) | 1417 (defun dired-get-filename (&optional localp no-error-if-not-filep) |
1413 "In dired, return name of file mentioned on this line. | 1418 "In Dired, return name of file mentioned on this line. |
1414 Value returned normally includes the directory name. | 1419 Value returned normally includes the directory name. |
1415 Optional arg LOCALP with value `no-dir' means don't include directory | 1420 Optional arg LOCALP with value `no-dir' means don't include directory |
1416 name in result. A value of `verbatim' means to return the name exactly as | 1421 name in result. A value of `verbatim' means to return the name exactly as |
1417 it occurs in the buffer, and a value of t means construct name relative to | 1422 it occurs in the buffer, and a value of t means construct name relative to |
1418 `default-directory', which still may contain slashes if in a subdirectory. | 1423 `default-directory', which still may contain slashes if in a subdirectory. |
1993 (dired-delete-file (car files) recursive) | 1998 (dired-delete-file (car files) recursive) |
1994 (setq files (cdr files)))) | 1999 (setq files (cdr files)))) |
1995 (delete-directory file)))) | 2000 (delete-directory file)))) |
1996 | 2001 |
1997 (defun dired-do-flagged-delete (&optional nomessage) | 2002 (defun dired-do-flagged-delete (&optional nomessage) |
1998 "In dired, delete the files flagged for deletion. | 2003 "In Dired, delete the files flagged for deletion. |
1999 If NOMESSAGE is non-nil, we don't display any message | 2004 If NOMESSAGE is non-nil, we don't display any message |
2000 if there are no flagged files." | 2005 if there are no flagged files." |
2001 (interactive) | 2006 (interactive) |
2002 (let* ((dired-marker-char dired-del-marker) | 2007 (let* ((dired-marker-char dired-del-marker) |
2003 (regexp (dired-marker-regexp)) | 2008 (regexp (dired-marker-regexp)) |
2300 (interactive "P") | 2305 (interactive "P") |
2301 (let ((dired-marker-char ?\040)) | 2306 (let ((dired-marker-char ?\040)) |
2302 (dired-mark arg))) | 2307 (dired-mark arg))) |
2303 | 2308 |
2304 (defun dired-flag-file-deletion (arg) | 2309 (defun dired-flag-file-deletion (arg) |
2305 "In dired, flag the current line's file for deletion. | 2310 "In Dired, flag the current line's file for deletion. |
2306 With prefix arg, repeat over several lines. | 2311 With prefix arg, repeat over several lines. |
2307 | 2312 |
2308 If on a subdir headerline, mark all its files except `.' and `..'." | 2313 If on a subdir headerline, mark all its files except `.' and `..'." |
2309 (interactive "P") | 2314 (interactive "P") |
2310 (let ((dired-marker-char dired-del-marker)) | 2315 (let ((dired-marker-char dired-del-marker)) |
2311 (dired-mark arg))) | 2316 (dired-mark arg))) |
2312 | 2317 |
2313 (defun dired-unmark-backward (arg) | 2318 (defun dired-unmark-backward (arg) |
2314 "In dired, move up lines and remove deletion flag there. | 2319 "In Dired, move up lines and remove deletion flag there. |
2315 Optional prefix ARG says how many lines to unflag; default is one line." | 2320 Optional prefix ARG says how many lines to unflag; default is one line." |
2316 (interactive "p") | 2321 (interactive "p") |
2317 (dired-unmark (- arg))) | 2322 (dired-unmark (- arg))) |
2318 | 2323 |
2319 (defun dired-do-toggle () | 2324 (defun dired-do-toggle () |
2396 (re-search-forward regexp nil t)))) | 2401 (re-search-forward regexp nil t)))) |
2397 ))) | 2402 ))) |
2398 "matching file"))) | 2403 "matching file"))) |
2399 | 2404 |
2400 (defun dired-flag-files-regexp (regexp) | 2405 (defun dired-flag-files-regexp (regexp) |
2401 "In dired, flag all files containing the specified REGEXP for deletion. | 2406 "In Dired, flag all files containing the specified REGEXP for deletion. |
2402 The match is against the non-directory part of the filename. Use `^' | 2407 The match is against the non-directory part of the filename. Use `^' |
2403 and `$' to anchor matches. Exclude subdirs by hiding them. | 2408 and `$' to anchor matches. Exclude subdirs by hiding them. |
2404 `.' and `..' are never flagged." | 2409 `.' and `..' are never flagged." |
2405 (interactive (list (dired-read-regexp "Flag for deletion (regexp): "))) | 2410 (interactive (list (dired-read-regexp "Flag for deletion (regexp): "))) |
2406 (dired-mark-files-regexp regexp dired-del-marker)) | 2411 (dired-mark-files-regexp regexp dired-del-marker)) |