如何制作emacs快捷方式在相关文件之间切换?
例如,我有文件模型/ user.py开放,我想有打开控制器/ user.py的快捷方式。或者,我想切换到测试/模型/ testUser.py(人为的例子)如何制作emacs快捷方式在相关文件之间切换?
我想打一个Emacs快捷方式,其给出当前打开的文件,打开以各种方式相关的文件。
如果“相关文件”遵循某种模式,我认为这是微不足道的写一些elisp的功能,做任务。比方说,你有一个模型,需要打开他相关的控制器,你需要做这样的事情:
(defun my-open-related-controller()
(interactive)
(let* ((name (buffer-file-name))) ;gets the filename of the current buffer
;; Of course, this is only an example. The point here is that you need
;; to "discover" the name of the related file based on the current one.
(setf name (replace-regexp-in-string "model" "controller" name))
;; Now you will open the file(if it isn't open already) and switch to it
(find-file name)))
然后,你可以绑定功能,比方说,F5:
(define-key name-of-the-mode-map [f5] 'my-open-related-controller)
如果你想这个箱子全球约束力,用途:
(global-set-key [f5] 'my-open-related-controller)
当然,这只是一个粗的例子(因为你没有给许多具体细节),但应该足以让你开始。希望能帮助到你!
因此,如果elisp没有关闭,是否有可能更一般地写这个?例如做一个可以调用的函数'(global-set-key [f5](make-file-switcher“controller”“model”))' –
当然:'(defun make-file-switcher(from to) '(lambda()(interactive)(find-file(replace-regexp-in-string,(regexp-quote from),to(buffer-file-name)tt)))))' – Sean
“打开以各种方式相关的文件”,你可能希望得到更多的具体的关于“各种方式”的含义。 –