ess-mode下spc-m快捷键无法加载以及spacemacs-base modeline美化等问题


#1

问题1: 因为spacemacs完整版配置运行不顺滑,卡顿多,所以就安装了base版,但是base版的modeline比校简陋,不够完整版的漂亮。请问有没有办法美化变成完整版那样?

问题2: 不管是完整还是base版的spacemacs,进入ess-mode后都不能加载spc-m快捷键,就用不了R作分析了。找了好多帖子都没找到方法解决。

注:我的系统是macOS,用brew装的emacs-mac。我也是刚开始用Emacs,最近一直被这两个问题,尤其是问题2,所困惑。不知各位前辈有没有什么好办法?谢谢啦!


#2

补充一句:装的是develop分支


#3

问题1 单独安装spaceline即可。但是据说性能堪忧。这里好像有过自制的模仿spaceline的斜线的modeline,可以找找看。不需求斜线可以试试doom-modeline,开发很活跃,内容多性能高。或者像我一样modeline需求比较简单也不太在意性能,可以按坛里的帖子自己写。

问题2 SPC m开头的和其它spc开头的不同,spc开头一般叫做leader key,SPC m更常用的键位是,,叫major mode leader,和leader的不同在于leader是到处都一样的,major mode leader用于bind那些major mode相关的函数,这样在不同major mode里相同的键比如, a会有不同的binding,不会冲突。这里R这个major mode没有SPC m可能是spacemacs (base)没有配置。自己用spacemacs/set-leader-keys-for-major-mode绑上自己想要键位就可以了。


#4

这个问题有可能不在Emacs和ESS身上。检查一下R装好了没,路径有没有写对。


#5

有篇R使用者的博客,也许有帮助: https://irreal.org/blog/?p=7715


#6

谢谢前辈的解答!1、spacline安装不知为什么总是不能正常显示,后来实在没办法了就重装了完整版的spacemacs。2、leader key在ess里应该是绑定了的,官方说明也有SPC m激活 REPL process的快捷键 https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Blang/ess 。而我在激活python的layer之后就能正常使用SPC m来REPL。菜鸟入门,真的不知道如何解决,还望前辈继续指点一二!谢谢!


#7

谢谢前辈解答!我的R是用 brew install r 来安装的,并且激活了ess layer。打开一个.R文件就是没有SPC m这个 Key Bindings。官方说明的快捷键都是SPC m … https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Blang/ess。


#8

同样是在dotspacemacs-configuration-layers里添加python和ess两个layer,打开.py文件时能够自动变成python-mode,并且能够使用SPC m快捷键。但是,打开.R文件时能够变成ess-mode,却不能使用SPC m快捷键。不知各位前辈、老师有没有什么好的建议?谢谢! 注:python是用miniconda装的python3.6.8,R是用brew install r 装的R 3.5.2 。现在头都大~


#9

@JJPandari @bluerain 再次打扰你们了!我是学医的,刚接触spacemacs,啥都不懂。劳烦你们了,谢谢!


#10

兄你怎么用master branch啊

尝试下换develop branch


#11

学医的用户数量在我们论坛感觉可以排前几了。:smiley:


#12

其实如果你已经很确定是Spacemacs的问题,那就没什么好说的,扔!

我看你现在是同时承受R,ESS和Spacemacs的三重打击……

我还是觉得,如果只是快捷键用不了,不至于用不了R作分析。

单独运作R试试。而且,ESS是有自带的快捷键,不知道这些快捷键还可以用最上面那些图形按钮啊,根本不用头大。


#13

不好吧,换个doom什么的还行。从0开始真的难,而且要自己找哪些是大家广泛喜爱的插件,spacemacs都集成好了,自己用着慢慢发现就行。另外,并非无法hack,只是有时更新会使我的改动失效。我用了两年多从spacemacs迁走,发现它带我认识了很多很好的插件,虽然有些连名字都不知道,只知道是有xx效果。


楼主还是没解决的话,再给我上面的回答补充一点,不用管为什么没有绑上,既然没有就用spacemacs/set-leader-keys-for-major-mode来set ,/SPC m开头的leader就好了,in case 楼主还缺乏一些基本的知识:

  • M-x可以显示所有interactive(可交互调用)的函数,然后用你猜测的关键字过滤,比如输入ess,就能找到了(因为约定俗成,abc这个插件的函数都是abc开头),然后可以逐个尝试。
  • C-h f显示所有函数,并选择一个显示它的文档,包括非interactive的,同样可以过滤寻找有用的。同时上面M-x找到后不想立即在不知道效果的情况下使用,可以再C-h f来看它的文档。
  • spacemacs/set-leader-keys-for-major-mode怎么用可以看这个函数的文档,我记得里面有例子,基本是0基础照着就能写。另外也可以去spacemacs的文档里找例子。

#14

没有啊,我用的就是develop分支😄️


#15

是嘛?我还以为倒数呢~原来现在泡技术论坛的医学狗这么多了啊~


#16

哈哈,刚尝试到敲键盘和无限自定义的甜头,就不想扔了~ R是可以单独运作的,在terminal里,或是加个壳rstudio都可以用。我是想尽量把r也集成到spacemacs里~前辈你的“点击图形按钮”提醒我了,确实还有这个方法。刚刚试了,可以用,也能找到一些major mode的函数,但就是打不开SPC m。可能不知那里出错了,需要自己动手绑定。


#17

其实吧,你不如向spacemacs报bug


#18

我这个零基础的,不用Spacemacs、Doom,配置不多,只写了自己觉得有用并且能懂的。不用Spacemacs,真心没什么问题。要折腾的,有没有Spacemacs都会去折腾的。Spacemacs的配置,借鉴自己觉得可取的地方就可以了,不需要一上来就安装一大堆东西。

衣服不合身就要换,配置不顺手(还改不过来)必须扔,否则看着心烦~