nvim用NvChad的配置很好用,速度很快,基本可以开箱即用。但要定制的话,有一点难度。
我在教一个学生学算法,就是让她用Emacs,她表示很喜欢,之前只用Emacs编程,现在想学习更多关于Emacs的使用了。其实就当普通软件用就行了,配置一个最小的环境给小朋友,让他们可以编辑,编译运行就可以了。
有个 DrRacket IDE,还不错,就是 Lisp 太冷门了,孩子出去不好吹牛逼,说出来别人一脸懵。。。
我觉得将 Lean 看作通用的 fp 语言是非常不错的选择。尤其 Lean 的 #eval #check 之类的即时反馈很强,我觉得会很适合教学。因为是 proof assistant 所以类型系统是表达能力很强
哎,有乐趣的语言很多,但只能学 Python 和 C++ 确实没那么多乐趣
我没写过 Lean,它能跳过 totality checking 吗?不行的话感觉还是太限制了,不适合给没写过程序的人教
能啊,它是自举的。
贴一点笔记片断,不要太在意评价,感兴趣的链接可以点开看看:
编辑器也非常多,部分常见的如下:
- VIM(Neovim)、GNU Emacs:Linux 上最普遍使用的文本编辑器,对初学者比较难;
- Emacs 配置:Doom Emacs、Spacemacs、Centaur Emacs、purcell/emacs.d、bbatsov/prelude;
- VIM/Neovim 配置:SpaceVim、AstroNvim、NvChad、LazyVim;
- Neovim GUI: Neovide、goneovim、Neovim Qt;
- Helix、Kakoune、Vis:改进 VI 风格的代码编辑器;
- Lem:使用 Common Lisp 编写的 Emacs 仿品;
- micro:使用 Go 编写的代码编辑器;
- Visual Studio Code: 最流行的轻量级集成开发环境;
- Zed:新兴的集成 AI 的代码编辑器;
- Sublime Text:轻量级的代码编辑器;
- Kate:Linux KDE 桌面环境曾经的默认编辑器(已换成更简单的 KWrite);
- Gedit:Linux GNOME 桌面环境曾经的默认编辑器(已换成更简单的 GNOME Text Editor);
- CudaText:使用 Free Pascal 编写的代码编辑器;
- Notepad–: 国产跨平台代码编辑器;
- Geany、CodeLite、CodeBlocks、Redpanda C++: 轻量级的集成开发环境;
VIM 和 Emacs 功能丰富但比较难,Visual Studio Code、Zed、Kate 功能丰富且易用。
Lapce 还在开发,看起来不太行,Fleet 也还不行, 其它古董如 nano / pico / joe / jove / mg / uemacs 老矣。
macOS中nvim gui 可以用VimR,性能比neovide好不少。
之前看不是跨平台的就跳过了,刚安装看了下,文字渲染和光标移动是要顺滑点,还内置了 file explorer 和 markdown preview, html preview(html preview 不工作),有点意思😀
编辑器选择困难症, 以前我也有, 后来被emacs治好的, 现在除了我(用emacs)以前就用过的编辑器外, 感觉对任何编辑器都失去兴趣
emacs 的 GUI 支持显示图片,还有可变字体,甚至内嵌别的应用 (xwidget,eaf),所以确实比 terminal 里更好用。neovim 用 gui 没有任何意义,首先 GUI 没有任何特殊的 feature,除了多了一些终端吞掉的键位可以用罢了。其次 GUI 甚至图片都显示不了 (用 TUI 就有插件支持 kitty 协议在终端显示图片 比如 image.nvim )。neovim 就应该是用一个支持 kitty 协议的终端 (kitty ghostty)即可。
nvim GUI(VimR)的字体显示好看,输入法可以根据模式自动切换。我比较喜欢GUI的程序。
VIM、Emacs、Zed、Kakoune、Helix、Vis、NetBeans 等等我都喜欢,但因为习惯我主要用 VIM、Emacs(Doom Emacs 让二者合体了!) 。 VSCode 功能最强但不太喜欢,可能是 Electron 搞的,而且它时不时弹个通知有点烦燥。
就像编程语言,我也做不到只喜欢一个、只用一个,换着用很美啊😀
是的,字体、系统剪切板、输入法都是 GUI app 支持更好。
我用过一段时间的 iTerm2, 现在很喜欢 editor 自带 term 的感觉,editor + term + web browser + wechat 是用的最多的,能把 editor + term 合并成一个就省去了 term 的配置。
至于 term 里看图,这个需求实在太 geek 了,不是刚需。
我试验了 python3 -m rich,Neovide, goneovim, nvim-qt, vimR 四个的 :term
自带的 terminal,vimR 渲染颜色条有点瑕疵,nvim-qt 在滚动时乱套,goneovim 和 vimR 在滚动时有点抖动,Neovide 就非常丝滑,vimR 能展示国旗 emoji,其它三个都不行。
kitty, wezterm,alacritty 三个著名终端模拟器在鼠标滚动时也文字渲染抖动,综合来看 Neovide 是最强的!
一下从你这又多了解了三个 terminal。
kitty 下试了下,icat, imgcat, 图片很糊,可能是我机子没有 GPU 的原因 吧。
[Support for graphics in the terminal by ayosec · Pull Request #4763 · alacritty/alacritty · GitHub](alacritty 讨论 Support for Sixel images 蛮期待的)
我觉得VimR的terminal渲染速度比较快,用top时,从cursor的移动速度就能看出来。不过我是不用自带的terminal的,比起kitty来差距明显。kitty的cpu占用非常低。
原来用过wezterm,总有奇奇怪怪的问题。
在模式切换时,输入法自动切换这个功能,VimR比neovide好,在进入insert模式时切换为上一次insert模式的输入法。
是不是没有配置对?我在没有 opengl 加速的 linux 虚拟机里用 kitty 看图片都一点问题都没有,不会是 gpu 的问题。
试一下用 yazi 文件管理器来看图,看下看图片的体验是不是正常的。yazi 不需要任何配置就可以正常显示图片。
谢谢,刚接触 kitty … 等
要加 kitten, 可以了。
kitten icat image.jpeg
为什么大家觉得Python很简单呢?(只是询问,不是质疑口吻哈)
我最近看Fluent Python、Python Cookbook,发现它的复杂度也已经很高了,毕竟高度功能一直在加fp、meta这些大家开发用到的高阶特性大家都一样难学。
也是看写的好的框架源码 比如Pytorch,发现涉及到的Python语言特性用的都还挺高深的(抛开AI或计算专业知识,仅指编程用到的语言特性)。这个我熟所以拿来举个例子,我相信别的大一点好一点的python框架应该也不简单。比如decorator
这类用的真心很多(歪个楼,话说,最近配置Emacs开始用上advice-add
真香,这俩应该是一个东东?lisp真是比其它语言的进阶特性用成了日常;之前只是在配置中了解点elisp的皮毛,感觉是不是得系统学一把)
当然,如果仅是指入门这种,那确实Python比C++之类的简单多了。