我在 .dir-locals.el
中定了了一个test的cmd
((nil . (
(projectile-project-test-cmd . "run-execute.sh")
)))
现在可以按 SPC p T RET
来运行项目了,感觉按键还是太多了。
请问怎么实现 按CMD + R
来运行 run-execute.sh
?
谢谢!
我在 .dir-locals.el
中定了了一个test的cmd
((nil . (
(projectile-project-test-cmd . "run-execute.sh")
)))
现在可以按 SPC p T RET
来运行项目了,感觉按键还是太多了。
请问怎么实现 按CMD + R
来运行 run-execute.sh
?
谢谢!
一般来说 Command 键被识别为 Super, 你可以用
(define-key (kbd "s-r") 'your-map 'your-func)
来绑定给Cmd R(不需要按 shift)。
我尝试把
(define-key projectile-mode-map (kbd "s-r") 'projectile-run-command)
放入 .dir-locals.el中不起作用。
尝试放入 .spacemacs中,报错。
(Spacemacs) Error in dotspacemacs/user-config: Symbol’s value as variable is void: projectile-mode-map
我现在尝试用
(global-set-key (kbd "s-r") 'projectile-run-command)
放在 .spacemacs中。
按CMD+R
报错
command-execute: Wrong type argument: commandp, projectile-run-command
尴尬。没有讲明白。 这个配置要放在.spacemacs里。 第一个错误是因为没有在 projectile-mode-map 前加 ’ 符号。(有关lisp语法。) 第二个错误提示,你需要确认 projectile-run-command 这个函数确实存在并被加载。
我这还是没有搞定。
还是非常感谢。
我现在在.spacemacs中绑定了一个函数
(global-set-key (kbd "s-e") (lambda ()
(interactive)
(if projectile-project-run-cmd
(projectile-run-project 'projectile-project-run-cmd)
)))
还有两个问题。
CMD+E
之后,依然需要按下回车键。lua-mode
中绑定了CMD+R
给lua-send-buffer
用来方便测试lua代码, 但在一个工程下面,一般就应该调用projectile-run-project了。当然,第二个问题不是什么大问题,我可以调整下快捷键。
不知道第一个问题是不是可以解决下?
我这里看projectile-run-project
的文档是
Normally you’ll be prompted for a compilation command, unless variable `compilation-read-command’.
所以也许可以试试加个lua-mode-hook
,(setq compilation-read-command "some-cmd")
第二题好像该用projectile-project-p
首先,在 .dir-locals.el
中运行代码应该使用 eval
:
((nil
(eval message "foobar")
;; ...
)
其次,在 .dir-locals.el
中设置 global-set-key
是会影响全局的,不如放在 ~/.emacs.d/
。
如果你即要使用 global-set-key
,又要不影响全局,可以专门定制一个 mode,针对当前文件夹下的文件。