2008-10-06 74 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即可。