42 |
:group 'environment) |
:group 'environment) |
43 |
|
|
44 |
(defgroup dired-mark nil |
(defgroup dired-mark nil |
45 |
"Handling marks in dired." |
"Handling marks in Dired." |
46 |
:prefix "dired-" |
:prefix "dired-" |
47 |
:group 'dired) |
:group 'dired) |
48 |
|
|
1199 |
(defun dired-mode (&optional dirname switches) |
(defun dired-mode (&optional dirname switches) |
1200 |
"\ |
"\ |
1201 |
Mode for \"editing\" directory listings. |
Mode for \"editing\" directory listings. |
1202 |
In dired, you are \"editing\" a list of the files in a directory and |
In Dired, you are \"editing\" a list of the files in a directory and |
1203 |
\(optionally) its subdirectories, in the format of `ls -lR'. |
\(optionally) its subdirectories, in the format of `ls -lR'. |
1204 |
Each directory is a page: use \\[backward-page] and \\[forward-page] to move pagewise. |
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, |
\"Editing\" means that you can run shell commands on files, visit, |
1339 |
(dired-next-dirline (- arg))) |
(dired-next-dirline (- arg))) |
1340 |
|
|
1341 |
(defun dired-up-directory (&optional other-window) |
(defun dired-up-directory (&optional other-window) |
1342 |
"Run dired on parent directory of current directory. |
"Run Dired on parent directory of current directory. |
1343 |
Find the parent directory either in this buffer or another buffer. |
Find the parent directory either in this buffer or another buffer. |
1344 |
Creates a buffer if necessary." |
Creates a buffer if necessary." |
1345 |
(interactive "P") |
(interactive "P") |
1355 |
(dired up)) |
(dired up)) |
1356 |
(dired-goto-file dir))))) |
(dired-goto-file dir))))) |
1357 |
|
|
1358 |
;; Force `f' rather than `e' in the mode doc: |
(defun dired-get-file-for-visit () |
1359 |
(defalias 'dired-advertised-find-file 'dired-find-file) |
"Get the current line's file name, with an error if file does not exist." |
|
(defun dired-find-file () |
|
|
"In dired, visit the file or directory named on this line." |
|
1360 |
(interactive) |
(interactive) |
1361 |
(let ((file-name (file-name-sans-versions (dired-get-filename) t))) |
(let ((file-name (file-name-sans-versions (dired-get-filename) t))) |
1362 |
(if (file-exists-p file-name) |
(if (file-exists-p file-name) |
1363 |
(find-file file-name) |
file-name |
1364 |
(if (file-symlink-p file-name) |
(if (file-symlink-p file-name) |
1365 |
(error "File is a symlink to a nonexistent target") |
(error "File is a symlink to a nonexistent target") |
1366 |
(error "File no longer exists; type `g' to update Dired buffer"))))) |
(error "File no longer exists; type `g' to update Dired buffer"))))) |
1367 |
|
|
1368 |
|
;; Force `f' rather than `e' in the mode doc: |
1369 |
|
(defalias 'dired-advertised-find-file 'dired-find-file) |
1370 |
|
(defun dired-find-file () |
1371 |
|
"In Dired, visit the file or directory named on this line." |
1372 |
|
(interactive) |
1373 |
|
(find-file (dired-get-file-for-visit))) |
1374 |
|
|
1375 |
(defun dired-find-alternate-file () |
(defun dired-find-alternate-file () |
1376 |
"In dired, visit this file or directory instead of the dired buffer." |
"In Dired, visit this file or directory instead of the dired buffer." |
1377 |
(interactive) |
(interactive) |
1378 |
(set-buffer-modified-p nil) |
(set-buffer-modified-p nil) |
1379 |
(find-alternate-file (dired-get-filename))) |
(find-alternate-file (dired-get-file-for-visit))) |
1380 |
|
|
1381 |
(defun dired-mouse-find-file-other-window (event) |
(defun dired-mouse-find-file-other-window (event) |
1382 |
"In dired, visit the file or directory name you click on." |
"In Dired, visit the file or directory name you click on." |
1383 |
(interactive "e") |
(interactive "e") |
1384 |
(let (file) |
(let (file) |
1385 |
(save-excursion |
(save-excursion |
1386 |
(set-buffer (window-buffer (posn-window (event-end event)))) |
(set-buffer (window-buffer (posn-window (event-end event)))) |
1387 |
(save-excursion |
(save-excursion |
1388 |
(goto-char (posn-point (event-end event))) |
(goto-char (posn-point (event-end event))) |
1389 |
(setq file (dired-get-filename)))) |
(setq file (dired-get-file-for-visit)))) |
1390 |
(select-window (posn-window (event-end event))) |
(select-window (posn-window (event-end event))) |
1391 |
(find-file-other-window (file-name-sans-versions file t)))) |
(find-file-other-window (file-name-sans-versions file t)))) |
1392 |
|
|
1393 |
(defun dired-view-file () |
(defun dired-view-file () |
1394 |
"In dired, examine a file in view mode, returning to dired when done. |
"In Dired, examine a file in view mode, returning to dired when done. |
1395 |
When file is a directory, show it in this buffer if it is inserted; |
When file is a directory, show it in this buffer if it is inserted; |
1396 |
otherwise, display it in another buffer." |
otherwise, display it in another buffer." |
1397 |
(interactive) |
(interactive) |
1398 |
(if (file-directory-p (dired-get-filename)) |
(let ((file (dired-get-file-for-visit))) |
1399 |
(or (and (cdr dired-subdir-alist) |
(if (file-directory-p file) |
1400 |
(dired-goto-subdir (dired-get-filename))) |
(or (and (cdr dired-subdir-alist) |
1401 |
(dired (dired-get-filename))) |
(dired-goto-subdir file)) |
1402 |
(view-file (dired-get-filename)))) |
(dired file)) |
1403 |
|
(view-file file)))) |
1404 |
|
|
1405 |
(defun dired-find-file-other-window () |
(defun dired-find-file-other-window () |
1406 |
"In dired, visit this file or directory in another window." |
"In Dired, visit this file or directory in another window." |
1407 |
(interactive) |
(interactive) |
1408 |
(find-file-other-window (file-name-sans-versions (dired-get-filename) t))) |
(find-file-other-window (dired-get-file-for-visit))) |
1409 |
|
|
1410 |
(defun dired-display-file () |
(defun dired-display-file () |
1411 |
"In dired, display this file or directory in another window." |
"In Dired, display this file or directory in another window." |
1412 |
(interactive) |
(interactive) |
1413 |
(let ((file (file-name-sans-versions (dired-get-filename) t))) |
(display-buffer (find-file-noselect (dired-get-file-for-visit)))) |
|
(display-buffer (find-file-noselect file)))) |
|
1414 |
|
|
1415 |
;;; Functions for extracting and manipulating file names in dired buffers. |
;;; Functions for extracting and manipulating file names in Dired buffers. |
1416 |
|
|
1417 |
(defun dired-get-filename (&optional localp no-error-if-not-filep) |
(defun dired-get-filename (&optional localp no-error-if-not-filep) |
1418 |
"In dired, return name of file mentioned on this line. |
"In Dired, return name of file mentioned on this line. |
1419 |
Value returned normally includes the directory name. |
Value returned normally includes the directory name. |
1420 |
Optional arg LOCALP with value `no-dir' means don't include directory |
Optional arg LOCALP with value `no-dir' means don't include directory |
1421 |
name in result. A value of `verbatim' means to return the name exactly as |
name in result. A value of `verbatim' means to return the name exactly as |
2000 |
(delete-directory file)))) |
(delete-directory file)))) |
2001 |
|
|
2002 |
(defun dired-do-flagged-delete (&optional nomessage) |
(defun dired-do-flagged-delete (&optional nomessage) |
2003 |
"In dired, delete the files flagged for deletion. |
"In Dired, delete the files flagged for deletion. |
2004 |
If NOMESSAGE is non-nil, we don't display any message |
If NOMESSAGE is non-nil, we don't display any message |
2005 |
if there are no flagged files." |
if there are no flagged files." |
2006 |
(interactive) |
(interactive) |
2307 |
(dired-mark arg))) |
(dired-mark arg))) |
2308 |
|
|
2309 |
(defun dired-flag-file-deletion (arg) |
(defun dired-flag-file-deletion (arg) |
2310 |
"In dired, flag the current line's file for deletion. |
"In Dired, flag the current line's file for deletion. |
2311 |
With prefix arg, repeat over several lines. |
With prefix arg, repeat over several lines. |
2312 |
|
|
2313 |
If on a subdir headerline, mark all its files except `.' and `..'." |
If on a subdir headerline, mark all its files except `.' and `..'." |
2316 |
(dired-mark arg))) |
(dired-mark arg))) |
2317 |
|
|
2318 |
(defun dired-unmark-backward (arg) |
(defun dired-unmark-backward (arg) |
2319 |
"In dired, move up lines and remove deletion flag there. |
"In Dired, move up lines and remove deletion flag there. |
2320 |
Optional prefix ARG says how many lines to unflag; default is one line." |
Optional prefix ARG says how many lines to unflag; default is one line." |
2321 |
(interactive "p") |
(interactive "p") |
2322 |
(dired-unmark (- arg))) |
(dired-unmark (- arg))) |
2403 |
"matching file"))) |
"matching file"))) |
2404 |
|
|
2405 |
(defun dired-flag-files-regexp (regexp) |
(defun dired-flag-files-regexp (regexp) |
2406 |
"In dired, flag all files containing the specified REGEXP for deletion. |
"In Dired, flag all files containing the specified REGEXP for deletion. |
2407 |
The match is against the non-directory part of the filename. Use `^' |
The match is against the non-directory part of the filename. Use `^' |
2408 |
and `$' to anchor matches. Exclude subdirs by hiding them. |
and `$' to anchor matches. Exclude subdirs by hiding them. |
2409 |
`.' and `..' are never flagged." |
`.' and `..' are never flagged." |