2008-10-06 112 views
8

我有一個emacs的副本,我在一個不同的(Windows)計算機上使用了一個拇指驅動器,我想知道是否有可能創建一些類似於emacs中bash別名或符號鏈接的東西?我可以在find文件中使用的東西是我正在尋找的主要內容,例如:C-f <some link>會帶我到某個地方。目前我每次都要添加一個新的defun,當我到達一臺新電腦時,這只是一種痛苦,我會發誓我已經看到這個地方,但幾個月的谷歌搜索沒有任何結果。在emacs中創建別名?

什麼我有現在的問題是這樣的:

(defun go-awesome() 
    "Find my way to my work home" 
    (interactive) 
    (find-file "c:/cygwin/home/awesome")) 

但是那種感覺increadibly過度,哈克只是訪問一個相當哈克只是訪問,我拜訪半定期的文件。而且它需要很多努力才能建立一個新文件。

雖然它的最大問題,但我認爲它不適合我的工作流程。當我想要訪問一個文件時,我總是做C-x C-f,如果我意識到「嘿,我在工作」,那麼我必須C-g M-x go-awesome。如果我說我想能夠做一些相當於ln -s /some/awesome/dir但是emacs內部的東西,而不是內置在操作系統中,那麼C-x C-f ~/awesome/some/sub/dir可以在Windows或其他任何地方工作,這可能會更清楚。

+0

請解釋更多關於你在找什麼。您是否在新電腦上重寫功能(即,您的拇指驅動器上沒有.emacs文件)? – dwj 2008-10-06 21:36:47

+0

你改寫什麼功能? (這些功能的目的是什麼,打開某些文件,例如(find-config-file)?) 你想去「Cf config-file」,並讓它自動從一個位置加載blah.conf在哪臺機器上使用? – 2008-10-07 03:27:00

回答

11

我不是很清楚你要求什麼。我存儲我的常用文件登記在我的.emacs:

(set-register ?c '(file . "c:/data/common.txt")) 
(set-register ?f '(file . "c:/data/frequent.txt")) 

然後我可以跳轉到一個文件jump-to-registerC-x r j):

例如,「C-x r j c」帶我到c:/data/common.txt(裝如果需要的話)。

這是你在找什麼?

-1

我搬到這個到原來的問題,但我離開這裏,因爲人響應它已經

這方法比我有更好的,但我覺得可能存在是什麼將取代,例如:

(defun nuke() 
    "alias delete-trailing-whitespace" 
    (interactive) 
    (delete-trailing-whitespace)) 

和感覺少哈克,並像它實際上做什麼是應該做的,而不是做一些真正重的是什麼感覺喜歡的事,應該是真的光。

這有道理嗎?

但是,您分配給寄存器可能實際上比我要找的要好。

+0

這真的應該被添加到這個問題。 (或者可能澄清問題,然後將其作爲答案發布。) – cjm 2008-10-07 06:02:19

2

如果你想要一個別名功能,您使用defalias

(defalias 'nuke 'delete-trailing-whitespace) 

但是如果你抱怨的Emacs的功能名稱太長,你應該看看partial-completion-mode。隨着打開,

M-x d-t-w [RET] 

將運行delete-trailing-whitespace

0

我想要的是用一個命令打開一個給定的文件,您可以定義一個鍵盤宏。 這個宏打開文件的〜/ .bashrc

C-x(# start defining the macro 
C-x C-f ~/.bashrc 
C-x) # end definition 

那麼你能說出這個宏

M-x name-last-kbd-macro 
visitbashrc #give it a name 

,那麼你可以通過名稱 的Mx visitbashrc

叫它您可以將定義保存到.emacs例如通過訪問此文件 並在其中插入定義,使用

M-x insert-kbd-macro 
0

我在下面有這個設置。例如,如果我想在桌面上找到一個文件(D:\ Desktop),那麼我輸入F3 j F3,無論我開始使用什麼路徑,現在小緩衝區都會顯示「D:\ Desktop \」,而I'準備在桌面上輸入任何文件名。我把捷徑設置爲j,k,l,我的b/c接近我左手的位置,但是通過這個設置,任何4個字母的快捷鍵都可以工作。所以你可以爲你的「awsome」文件添加一個條目,比如說「敬畏」,然後你可以輸入F3 awe F3 enter來訪問你的文件。不知道這是你在找什麼;但這種節省我很多打字;)

(global-set-key [f3] 'ffap) 

;comcplete shortcut in minibuffer 
(define-key minibuffer-local-completion-map (kbd "<f3>") 
         'complete-minibuffer-path) 

(defun complete-minibuffer-path() 
    "Extension to the complete word facility of the minibuffer by 
replacing matching strings to a specific path" 
    (interactive) 
    (setq found t) 
    (cond 
    ; just add new entries if needed; shortcut up to 4 letters will work 
    ((looking-back "j" 5 nil) (setq directory "D:/Desktop/")) 
    ((looking-back "k" 5 nil) (setq directory "D:/Documents/")) 
    ((looking-back "l" 5 nil) (setq directory home-dir)) 
    ((looking-back "i" 5 nil) (setq directory "D:/Programs/")) 
    (t (setq found nil))) 
    (cond (found (beginning-of-line) 
       (kill-line) 
       (insert directory)) 
     (t (minibuffer-complete)))) 
0

blog entry定義幾乎正是我想要的東西,基本上讓我打在迷你$,然後給我看我的書籤列表,我可以跳至。我可能會調整它,這樣如果我指定一個文件書籤,它將把我帶到文件而不是目錄,但這是一個煩惱,特別是考慮到書籤文件往往位於列表頂部。

2

這裏有您需要什麼 -

  • 定義對應到上下文你想重溫書籤。使用Bookmark+這不一定只是一個文件。它也可以是一個整體的Emacs桌面或與它的標記(保存)一Dired緩衝,一組其他書籤,...

  • 使用Icicles連同書籤+。無論何時您使用C-x C-f等來訪問文件,您也可以使用visit a file or directory bookmark(完成反對書籤名稱)。當您在minibuffer中完成文件名時,只需點擊C-x m即可。