Neovim 0.5 真香啊

(⊙﹏⊙)

我一般开机后开一次emacs就不关了。

临时编辑文件就terminal里面开一下vi。

既然这么在意启动时间,多在配置上找找原因吧

1 个赞

按照我对spacemacs的印象,这个启动时间是dump后的结果吧?

其实与其说neovim香,不如说emacs中的补全体验太拉跨了。这其实有点奇怪,因为emacs在编辑方面算有些积累的,但是输入体验不知为什么拉了。关了company算是有点用,但是治标不治本。 以前我看好多用emacs的人不喜欢用补全,我想这到底是大佬,直到我自己用了emacs——确实,这搁我我也不爱用

7 个赞

没有哦,主要是 defer 用得比较多

何不换个思路:一个工具,多个配置,多种场合。例如我:

  • init.el 主力配置,不在意启动速度,非 native 无 dump,快则数十秒,慢则逾百秒。

  • init-lite.el 轻量配置,覆盖了文档编辑、emacs 配置修改、git 编辑以及其它应急的编辑需求,dump 加速至 0.1s 左右:

    (dotemacs-start
     `(file
       buffer
       window
       editing
       evil
       pair
       toggle
       paredit
       ivy
       vc
       cli-editor
       (git-editor :if (bound-and-true-p init-git-editor))
       devel/doc-utils))
    
  • init-ediff.el 合并 diff 专用,dump 加速至 0.02 左右:

    (dotemacs-start
     `(file
       buffer
       window
       ediff))
    
  • dont-panic.el 末日模式,零扩展,只设置了几个核心按键,应对极端情况。

2 个赞

以前我天天瞄着什么 neovim, kakoune, helix. 自从我换了新电脑, emacs 真香. 真是优化一年不如换个机器,现在感觉太丝滑了.

19 个赞

虽然挺馋 nvim 0.5 的。 但是还是没有什么让我直接离开 emacs 的理由,启动时间的话当然是配置的不对啦!

关于 autoload 这个 archwiki 就有对应的描述。

真相了,优化一年不如换个SSD

1 个赞

了解一下Pear Tree,很好用而且能配置的Vim括号匹配插件

我实际的需求:有什么办法能够在 insert 模式下,快速的移动光标,不是先返回 normal 模式再回来。 @AllenDang 虽然能解决我提出来的问题,但是那只是特定的场景

升级配置用emacs真香啥啊,我寻思升级配置那用nvim不是更香了

company确实用的不舒服

Neovim: 管他lazyload autoload native compile还是什么的, luajit一力降十会 :joy:

十字方向键(

你要是在 emacs 里用 evil 的话,倒是可以在 insert mode 用 emacs 原生绑定。

用 vim 能做的也无非是给 insert mode 绑几个移动键位。

+1

我是开机开Emacs明、暗两个主题的daemon,然后client调用就行。启动速度?那是什么?我几个月都不会重启电脑(笔记本)。至于,vim命令行还是要的,临时改个配置用;虽然也可以用Emacs,习惯小的用vim。

年轻的vimer :joy:只是在插入模式下移动光标的话简单映射一下就好了,比如<C-l>映射到<C-o>A

似乎是 auto-pairs 的功能:打完 y 再打一遍 ) 就行了,不会打重复的(对 dvp 键盘来说很好用,qwerty 可能会觉得括号有点麻烦,但不用反复切其实也还好。或者按上面说的绑个键)。

neovim 其实有明确每个阶段做什么的,文档。比如说 vimrc 就是单纯的配置(设置变量做键绑定),文件类型高亮是 flietype 的阶段,而且是根据后缀名来载入对应的脚本。和 emacs 是通过 mode-alist 加载到运行时再执行的逻辑有区别(和用 lazyload 的情况会比较像,但不可避免还是需要在 init 阶段去读各个包)。另外 autoload 相关的处理也不在一个阶段。

TLDR:这些设计在一定程度上使 vim 适合多次关闭打开,启动上可以方便/简单地避免掉不少多余的加载

先说一下经历. 用过emacs两年了, 仍然在使用org-mode记笔记,agenda,capture. 之前的配置一开始是doom, 后来是自己的. 会(点)elisp. 但是coding已经换成nvim了.

至于vim下的配置,我跟楼主描述的太像了.我尽可能去除了vimscript的部分.

  • package manager: packer
  • search: telescope
  • treesitter: 可以定义一些text objects(function class argument), 确实不用这个emacs/vim已经都能实现
  • completion: lspconfig+compe.nvim
  • git: lazygit + floatterm

促使我换成(n)vim的几个原因:

  • TUI更好一些, 之前在emacs 中debug代码用的dap-mode, 在TUI中有一些显示起来不如nvim那边的dap-nvim, 这一点很自然, emacs GUI更好, nvim本身就是为了在终端里使用. nvim那边有一些floatterm, virtual-text的东西给TUI带来比较多方便, emacs毕竟主要场景还是GUI, 没有找到太好的等价物. 为啥要提这? 因为我coding的环境是在服务器上, 所以不管以前emacs还是现在nvim都是: ssh+tmux+$EDITOR. 这是个人需求决定的
  • treesitter: 我在nvim 中用这个主要是syntax highlighting, text objects 以及显示上下文. emacs有elisp-treesitter, 不过可能用这些api的包还不多. 用于取代font-lock可能也还需要点时间
  • lua: 这一点是因为自己菜(:heavy_multiplication_x: 3), 觉得lua比elisp好学一点.

至于速度, 我的emacs配置在1.8s左右, 很满意, 不是很敏感这个. 不过, nvim确实不用太多lazy load就能超过这个速度. 这一点是客观的.

观点, 我觉得工具为人所用, 咱论坛里也不是邪教, 也不必保持什么“虔诚”, 去用nvim也是顺路学习一下lua, 说不定哪一天也会用回emacs 来写代码.

vim像是一个开阔的伐木场, 工具都在那, 语言也不限制(lua是内置了, python也有binding), 进去就能体会到很大的自由.

emacs像是桃花源, 得经过elisp这条小路, 穿过去之后那就不是伐木场这个级别了.

还是自己太菜(:heavy_multiplication_x: 3)暂时还爬不过去.

4 个赞