说说我使用emacs的方式

看了很久这个论坛了,看到这个论坛里面有些网友讨论怎么用emacs,我也有了说说我的用法的想法。

5 个赞

我以前很久就关注过emacs,不过那时候主要用vim。所以对emacs的了解就仅限于那个emacs自带的新手操作说明。真正让我想用emacs是在23年底的时候,那时候用了很久的vscode了,但是还是怀念vim的快捷键。但是vim和neovim的分裂让我很遗憾,同时neovim自己发展出来的lua配置方式发本来让我很期待,结果核心还是有些时候要调用vim脚本,那就让我觉得一点也不优雅。还有就是vim和neovim的分裂真让我遗憾,我决定不玩了,转向emacs。以上是背景。

那么我最开始使用emacs的想法就是尽量还原vim的的熟悉的操作,不过问题就在于,我有一部分时间在windows下使用,那些使用了vim方式的配置我查到的说法是好像在windows下都是多少有些问题。而另外一方面,其实从快捷键来说,我其实更喜欢emacs这种直观的快捷键,在使用emacs自带的文本操作快捷键的时候,我能清晰的感觉到,甚至不用特意去记,自然而言就会理解。所以从此我有了一个想法,那么为什么不用原生的emacs默认配置呢

那么记不住的快捷键怎么用呢?三个方式,一个c-h a,一个c-h k,一个c-h f,先用这三种方式找到一个大概的描述,想要更多的信息就在info或者网上搜相应的说明。这种方法其实大多数问题都可以找到了。那么是否真的需要这么多的快捷键呢,我觉得不需要,这些是否需要快捷键其实是自然而言的出来的,而不是刻意的设置,遵从你内心的想法,在实际使用中慢慢的就会找到你自己的想要的快捷键。

1 个赞

下面说说我在windows下使用emacs的方式。 首先是快捷键。我觉得emacs当初设置m-x和esc-x大多数是同样的功能是一个伟大的设计哈哈。我在vim使用的时候很喜欢esc键,可以说如果当初emacs没有esc-x这个功能,我可能都不会用emacs太久,因为最开始使用emacs时候还是很怀念vim的,感觉emacs还是不如vim快捷键快捷。但是esc-x这个方式让我觉得很熟悉,记不住快捷键就使用esc-x。多用几次就熟悉了

1 个赞

新手装一个ivy或者consult就可以上路了。 用evil加evil-collection就行,按键这块,windows跟linux没什么区别吧。 其实也可以试试meow, 刚开始用鼠标点点也行。

然后是ctrl键的绑定的问题

ctrl键最开始是不在意的,难按就难按,也不是不能按。但是使用了几个月以后,发现还真是一个问题,因为小拇指会变痛,一搜,好家伙,emacs听说还会得什么炎。差点就放弃了emacs,毕竟小命要紧。那时候看了很多方案,说space emacs很好,不过听说在windows下也有问题,所以放弃。听说hhkb很好,使用了一下,其实交换cpas和ctrl也不是我想要的,我这时候想要的不是从一个小拇指位置换到另外一个小拇指位置,而是想要类似vim或者space eamcs的按键方式。最后想到改键,还好现在操作系统其实改键也还不复杂,使用特定键盘的话甚至还不需要在操作系统层面更改,这是一个可行的路。那么改键怎么改呢?常用的键基本已被使用,这时候我发现了emacs29推出了一个新命令repeat,这又是一个让我留在emacs的关键的的函数,结合repeat和改键能让我得到不再用小拇指按ctrl的方式。

方法如下: 在系统层面开启粘滞键, 将ctrl键和j键互换, 使用repeat模式并绑定到特定的快捷键

将以上三步做完以后,基本就得到一个不再需要同时按下各种组合键同时对文件操作相对友好的操作方式。我想在世界上现在还没有和我一样的用法吧哈哈

然后再说说编程

编程的话,一是搜索,这个使用ripgrep和fd,这两者可以用来搜文件和字符串

二是精确点的搜搜,使用ctag,结合使用citre,这个citre作者我觉得很棒,提供了很简单的直接使用ctag命令的方式来创建搜索

三是,更精确的搜索,使用eglot结合lsp。其实我看论坛里面cat好像是说猫大的lsp我很喜欢,不过在windows下使用的话很奇怪的c/c++的lsp直接不能使用,倒是浏览器功能正常能用

另外再说一下,citre和eglot可以结合使用,再搭配clangd的配置的话,其实对c/c++有了广泛的支持

再说说其它的

关于各种补全的问题,我其实不想记太多的东西,安装过ivy的三件套,结果那些结果总是弹出来在minibuffer里面,让我很不爽,所有就没有使用了。另外emacs好像是自带的fido我也用过,也是总动弹出,也不使用了。所以我怎么使用这种minibuffer呢,一个是命令直接调用,一个是直接在minibuffer里面直接用m-v的方式手动弹出

关于文件管理器,结合使用 neotree, dired, treemacs。三者各有用处

关于版本控制,vc我看了一点,magit听说过,但是我还是喜欢命令行操作

关于buffer跳转,用ace-window,c-x 加方向键,再加winner-undo其实足够应付很多情况了,其它的命令行敲命令

我发这个帖子是想给那些和我一样以前根本不用emacs的网友分享点经验,因为从这个论坛里面我也找到了一些帮助,希望能帮到点在windows下用emacs的网友

1 个赞

"我想在世界上现在还没有和我一样的用法吧哈哈" , 在改键上我也是这个情况,目前唯一发现按键用法和我比较接近的在论坛上只见到一位 @rrredeyee240拳皇按键(邪教) - #14,来自 wsug

你们的思路也是不错的。我这个方式的思路是用的最多的键应该使用最容易按的位置。其实空格键是最好的ctrl键的位置,可是空格键使用频率太高了,并不好改。

vim的分裂让我很不爽。同时使用emacs以后我更喜欢emacs直观的快捷键了。所以现在基本不会考虑vim类的操作了。

不太明白,这个交换,怎么使用。打 j 岂不是很别扭?

可以把几楼的内容编辑到一个楼层,方便阅读一些

可以试试 corne 分体键盘,大拇指按 ctrl 是我觉得最舒服的方式了。

最直观的方式是鼠标点点点。

如果常用git的话必须尝试使用magit。我也是从vim变成vim+emacs,最初使用emacs最大的动力是orgmode,让讨厌写文档的我至少愿意写文档。后来用上magit后,默认会专为magit开启一个emacs tab, 感觉版本管理从此不再是负担,已经几乎忘记命令行的各种git命令

我把右边的 alt 键改成了 ctrl,这样就可以右手大拇指来按,用大拇指按还是比较舒服的。 :grinning:

我觉得楼主可以试下home row modifier A guide to home row mods , 很多ergonomic键盘默认就是home row mod。