2016-07-17 24 views
0

我想启动一个任意程序,它从列出目录中的文件的缓冲区中获取选定的文件名参数。使用emacs中的任意文件名运行程序

我尝试使用F3键来插入文件名,但是下面记录了一个新的宏,而这相当混乱。

(define-key minibuffer-local-map [f3] (lambda() (interactive (find-file-at-point)))) 
+0

'minibuffer-local-map'用于用户在迷你缓冲区内的某些情况。按F3时是否在迷你缓冲区? (如果是这样,你启动了什么交互功能让你进入迷你缓冲区?)如果不是,你在哪里?在主缓冲区?任何特定的主要模式?你想使用'global-map'进行全局分配吗?你想要一个缓冲区本地分配?你是否想将新的密钥绑定仅添加到特定的主要模式? – lawlist

+0

任何允许我查看文件名路径的解决方案都会有所帮助。 – sevo

+0

您的代码错误地尝试在'interactive'声明中调用'find-file-at-point' *。不要这样做。 ;-) – Drew

回答

1

你是问题不是完全清楚,但也许这有助于。

请参阅我的Emacs中的划伤缓冲区的以下屏幕截图。它包含一个函数和键绑定,在底部的反射区是从呼叫的结果message

enter image description here

为了您的方便,这里的功能和按键绑定重复更好的复制:

(defun command-on-file-at-point() 
    (interactive) 
    (let ((f (ffap-file-at-point))) 
    (message "File is %s" f))) 

(global-set-key [f3] 'command-on-file-at-point) 

希望,这有帮助。

+0

(global-set-key [f3](lambda()(interactive)(let((f(ffap-file-at-point)))(start-process“test”“output”“mpv”f )))) – sevo

相关问题