2010-10-14 33 views
7

假設我在用Emacs編輯blah.txt,我決定open dired to rename the file blah.txt。當我按C-x d RET(或C-x C-f RET)時,將顯示一個直接緩衝區以顯示包含blah.txt的目錄的內容,但光標將不在blah.txt上。所以我需要先搜索我的文件(C-s blah.txt)以將光標放在它上面,然後我可以重命名它(R)。打開dired並選擇與前一個緩衝區關聯的文件?

如何自動執行或刪除步驟C-s blah.txt

回答

12

dired-jump正是你想要的。

(autoload 'dired-jump "dired-x" "Jump to dired corresponding current buffer.") 
(autoload 'dired-jump-other-window "dired-x" "jump to dired in other window.") 

然後調用:

M-x dired-jump 

M-x dired-jump-other-window 
+0

如果按照手冊中的說明操作,您將獲得正確的鍵綁定:'Ch ig''(dired-x)可選的安裝Dired Jump'' RET' – phils 2014-08-23 06:25:38

1

你可以做這樣的事情:

M-: (dired (buffer-name (current-buffer))) 

然後在dired可見的將是您當前的文件和光標的唯一文件將是正確的就可以了。

5

你想要C-x C-j

+0

什麼是'C-x C-j'?它不受文本緩衝區或直接緩衝區的限制(Emacs 23.2)。 – 2010-10-14 14:06:36

+4

@Trey:'C-x C-j'綁定到'dired-jump',但只有當'dired-x'被加載時。 (我認爲有一個Emacs策略,'dired-x'不符合這裏。) – Gilles 2010-10-14 19:53:29

+0

謝謝,吉爾斯;我沒有意識到它不是默認綁定的。 – offby1 2010-10-19 03:50:28

1

這忠告會做你想要什麼:

(defadvice dired (around dired-jump-to-buffer activate) 
    "When running dired, move cursor to the line for the buffer we came from" 
    (interactive (list nil nil)) ;; bogus values, will be overwritten below 
    (let ((coming-from (buffer-file-name))) 
(ad-set-args 0 (dired-read-dir-and-switches "")) 
ad-do-it 
(when (and coming-from 
     (equal (file-truename default-directory) (file-truename (file-name-directory coming-from)))) 
    (goto-char (point-min)) 
    (search-forward (file-name-nondirectory coming-from) nil t)))) 

注:Works的C-X d,而不是C-X C-F切入點dired。

0
$ emacs --version 
GNU Emacs 24.3.1 

在的.emacs:

(require 'dired-x) 

現在C-x C-j應綁定到dired-jump

相關問題