大家Company里移动选项用的是C-n C-p还是M-n M-p

最近慢慢把配置从evil换回vanilla emacs,今天配置company的时候才发现原来预设移动选项用的是M-n M-p而不是emacs常见的C-n C-p (看了company里的issue发现这是故意设置的,应该是要减少跟移动光标的命令冲突。不知道有多少人把按键改回C-n C-p了?还是说用M-n M-p真的会比较方便?

  • C-n C-p
  • M-n M-p
  • C-j C-k
  • else

0 投票者

C-n C-p,(好像Vim就是这两个组合)

但我左边的Ctrl和Alt互换位置了

spacemacs用C-n C-p 然后我就习惯了。

而且C-n C-p更符合直觉

我也是C-n C-p,C-j我绑定了switch to buffer和Enter,C-j在bash下也是Enter,用着感觉还不错

一直想删掉evil…但是做不到啊…试过一段时间,感觉手背隐隐作痛,话说你们是怎么ctrl的呢?

手掌边缘按压,毫无压力

left_ctrl跟 capslock交换,right_ctrl跟enter交换。

不过按键什么的其实不是最重要的事情,你要尽量让自己用emacs的方式思考,我看过太多想脱离evil却一直失败的人,最大的问题就是一直拘泥在用vim的方式操作emacs,我很常看到别人问:「请问要怎么样才可以做到跟vim的XXX一样」,如果你真的想脱离evil并且认识原本emacs的样子,你应该尽量去看其他emacser在那种情况下会怎么操作,而不是一味的想让emacs变的跟vim一样。

当然我觉得没有必要强迫使用vanilla emacs,emacs的核心价值是自由软件,所谓的自由就是你想怎么用就怎么用,这当中也包含了用vim的思維模式編輯,找出最適合自己的使用方式,始終要記住,是你在用編輯器,不是編輯器在使用你。emacs給了你幾乎無限的拓展性,好好利用這點打造屬於自己的編輯器吧

順帶一提,我一開始是vanilla emacs -> evil -> vanilla emacs ,所以我打從心底就是emacs魂而不是vim魂

1 个赞

善用smartparens等基于sexp操作的插件。善用expand-region等插件来操作文本对象。把一些常用的操作绑定在alt-上

我目前的按键: capslock enter都是组合键; 和其他按键一起时ctrl; 单独按capslock = escape; enter = enter. evil下 insert mode 都是 emacs binding, mode 基本都是用原生的 C-c xxx. 不过自己单独作个了 evil normal 下 SPC 的 key map. 主要的原因还是我用的软件大多数都是vim binding: firefox - tridactyl ranger 有的时候完全抛弃evil,心底会有种不安全感… 另外推荐一个x11下全部emacs化的python script

sexp是经常用的, expand-region 是好用,但是习惯了 C-M-SPC mark-sexp, 用到的少…

给你提供几个我试过的方案,看看哪个适合你。

  1. 让某个按键按着不放是modified key,单独按又是另一个键

这个作法可以有效的利用按键,而且不用改变使用习惯,你一样可以用enter回车,可是缺点是会有一点延迟(我对这个很敏感),所以这个方法我忍不了就弃了

  1. 用space当ctrl,用caps当作空白键

这个方法还不错,你会有自己在使用spacemacs的错觉 ,不过space在很多时候都很常用到,把他remap到caps的话需要一点时间适应,而且这样反而会变成平常在输入文字的时候需要大量的使用小指

  1. alt as ctrl, win as alt

这个是我去看当初lisp machine配置的键盘的时候想到的,其实一开始ctrl是在space的旁边,然后meta又在ctrl旁边,等于说最常用到的两个修饰键都在space旁,你可以轻易的用大拇指按到,这是我最近开始尝试的方案,需要满长的时间适应,因为不光是emacs里面的习惯被改变了,平常系统的很多快捷建也都需要重新适应。不过这应该是最符合emacs按键设计的方式。

我以前也是这样,把SPC当作leader key而且参考了很多spacemacs的设计。其实这个作法很不错,而且只有在modal editing下才做的到。如果你很依赖这个feature的话那我不推荐你换回vanilla emacs

如果你真的不知道该不该换的话,你可以想想你愿意为了emacs学习到多精深的程度,如果你以后甚至想要写自己的emacs插件,或是你跟我一样愿意每天花几个小时去学习emacs的话,那你可以尝试慢慢换回vanilla emacs。如果你只是需要一个快速好用的工具,而且也没有想要花很多时间去折腾工具的话,那evil可以直接的帮你解决很多问题

从spacemacs换到原生Emacs以后,空格没有改,还是作leader键,只不过从直接空格变成了C-SPC

怎么搞得,elisp内部还是xmodmap?

空格很常用,你这样不累吗 :joy:

我没说清楚,C-SPC作leader,空格照常

这个很科幻啊…

以前还是倾向于vim的,但是用的越久,一些emacs的原生按键,感觉比evil要强很多, M-. M-, tag 跳转, C-x C-s save-buffer; C-x C-w write-to-file; C-x C-i; insert-file; 这种常用操作也在向Emacs靠拢. 比起 vim 的 :w 要直观很多,不过用 macro的时候 还是 q x ; C-x( 简直反人类.

C-SPC 不是 set-marker 么, 这个很常用啊

1 个赞

不能完全这样比较,vim的按键之间是有组合性的。你可以把vim设计出来的按键想像成是一种语言,而你透过操作这种语言对文本进行处理。而emacs的一个按键就是解决一件事,每个按键,每个命令都是为了解决一个问题。

如果你以前读过SICP或是看过SICP的视频的话,里面其实讲过,当你面对一个一直往下分支的复杂问题的时候,你应该想的是设计出一个语言(不是说真的实做一个语言,而是比较类似API的概念),用这个语言解决某一类的问题,而不是针对每个子问题都个别提出一种解法。这样你设计出来的系统才足够健壮,不会被一些小的改动所影响。

所以其实就上面的设计哲学来说,vim的作法就很像是设计出一种专属的语言,而你透过组合这些语言来解决你实际的问题(处理文字),而emacs的那些原生命令就像是对每个子问题都提出一种解法,所以才会给你emacs的按键功能比vim强大的错觉,但其实vim这样的好处就是不管处理什么语言他都不会太差,text object可以帮你省去麻烦,从这个角度来说vim的按键设计是很健壮的。这也是为什么很多人会说完全没配置过的vim比完全没配置过的emacs好用。

我还是要再三强调,emacs的精神跟按键无关,一切的精华都在elisp上,因为你可以用elisp实现几乎任何事(包含做出一个vim),所以emacs才会如此的强大。其实所谓的vanilla emacs,也不是真的就是说乖乖的使用emacs自带的按键,只是让大家学着自己配置emacs,自己动手写elisp,自己动手发现需求并解决他。

如果可以忍耐一点延迟的话可以用space当ctrl看看,我看reddit上面有不少外国人都这样干

3 个赞

set-mark-command我绑到了C-v

这点我是十份赞同的,再使用的过程中慢慢改进,是很享受的过程.

我曾经因为不喜欢org-wiki,和 org-brain的复杂和厚重,自己写了个简单的wiki系统,一直用到现在.

灰色的框好高端,到底怎么打出来.

markdown都忘光了