有意思,不过在vi里用v选择后再编辑,不就变成noun-verb风格了么,
比如dib
是verb-noun,vibd
就是noun-verb。visual-mode下移动光标也很方便。
问句题外的,Kakoune主页的那个展示视频里的操作
Automatically indent symbols, by aligning the cursors of the splitted selections
在vi里是怎么实现的?
如果语言支持的话,还是 gofmt 这种随手打自动格式化比较舒服。
这个只是看着炫酷,实际上对心智挺伤的。
心智挺伤的是因为我们已经被Bill Joy折磨了太久了……
注意到这个编辑器有一段时间了。出厂自带 python 和 clang 补全,这个得好评。对了,还有多光标支持。其它方面真的没有特别出彩的了,至少没有它首页宣传的那么多才多艺。
当然,它把需要 vim/neovim 插件支援才能实现的功能全部内置,这点绝对得好评。免去了新手们折腾的时间。但是,对于老手们吸引力就要大大减弱了。
@MaskRay 主页那个 indent sysmbols 的操作,可以用 vim-align 插件,自由度更高。
首页上那种 align 的例子的看看就好,vim 也有很多这种网骗类的 showcase 的。
我是觉得它的出彩之处在于:
相比 vi 来说更加一致和容易按到的键绑定(有一部分是默认 visual mode 的功劳)。vi 有不少常用功能放在非常诡异的按键上(比如%),本身又已经映射的很满了,有大量稍有重合的功能占领了很多按键(比如s),很难调整。
keyboard-centric,同时功能上不亚于现代编辑器的多光标支持。
接受了现代编辑器更 interactive 带来的好处,而不是疯狂鼓吹“一旦你适应了 blahblahblah 你就可以一口气 上五楼 念一长串咒语不费劲”。
本质上来说其实 kakoune 更像是一个 keyboard-centric 的 Sublime Text,设计中彻底抛开了诸如“不是所有的键盘上都有 Escape 键所以blahblah”这类的到了今天已经完全是 bullshit 的因素。
riatre:
念一长串咒语不费劲
Avada Kedavra!
riatre:
非常诡异的按键上(比如%)
前两天突然发现H
M
L
是从来不用的,感觉应该很多人都跟我一样,刚刚把%
设成了M
顺带说一句,我C-r "
按多了发现他有点难按,想把'
也设成default register,这样只要按C-r '
就行,但是有点难度,就搁置了。后来突然想到,为什么不只按一个键呢?C-y
=>yank
不就好了?(用的普通evil不是hybrid,C-y
不是yank
) (另外外面用C-v
,emacs里用C-r
,有点错乱,我就都用C-v
了,C-v "
之类)
我原来s
用于evil-snipe,现在打算avy了
(evil-define-key '(normal motion) global-map "s" 'avy-goto-char-timer)
(evil-define-key '(visual operator) evil-surround-mode-map "s" 'avy-goto-char-timer)
(setq avy-timeout-seconds 0.2)
(evil-snipe-mode -1)
因此看了许久de Bruijn algorithm没有理解……发现背后理论非常精深
难得现在开发编辑器还这么照顾终端的。希望 Emacs 将来也采用 ncurses library,这样终端也能弹出浮动窗口了(不必像像现在 helm/ivy 从底部分割窗口,改变了窗口布局;补全菜单也无须 overlay 模拟了)。自从 Emacs 有了 child frame 之后,我就很担心终端跟 GUI 的差距越来越大。
打算安装来体验一下,结果发现两年前就安装了,我怎么一点印象都没有呢?
└⋊> brew install --HEAD https://raw.githubusercontent.com/mawww/kakoune/master/contrib/kakoune.rb
Updating Homebrew...
Warning: kakoune HEAD is already installed
└⋊> brew info kakoune
kakoune: HEAD
https://github.com/mawww/kakoune
/usr/local/Cellar/kakoune/HEAD (54 files, 2.2MB) *
Built from source on 2015-07-07 at 10:53:28
@riatre 额,难道 Vim 给人的感觉是「非常诡异的按键」,「一长串咒语」嘛?( ̄Д ̄;)
在我看来,Vim 按键绑定还是容易理解的。也就正则表达式能称得上「一长串咒语」?
@twlz0ne 终端跟 GUI 差距大是好事呀。GUI 在功能和交互上明显更高一筹,未来希望在 GUI。
打字好快,用的什么输入法?我的五笔用了几个月,还处在两词一错码的阶段
@JJPandari 说我?用的是系统自带拼音输入法。我这打字速度也算快?一直觉得自己超慢……
@LdBeth 我贴的动图、视频等,除非特别说明没有用加速,都是正常速度。和站在我背后看到的是一样的。没有特效。
LdBeth:
Emacs 基本上用的是 ncurses 吧
失察了,我应该先调查再下结论。
不过我搜了一下 Emacs 源代码并没有发现有引用 <curses.h>
, 整个项目包含 ncurses
单词的 .c 文件只有一个,而且看起来跟 ncurse 没太大关系:
6045 #ifdef USE_NCURSES
6046 /* In some versions of ncurses,
6047 tputs crashes if we have not called tgetent.
6048 So call tgetent. */
6049 { char b[2044]; tgetent (b, "xterm");}
6050 #endif
差距是不可避免的。在视觉呈现上,终端永远只能是「8bit」效果。我只是希望终端在交互上不要落后太多。就怕 GUI 越走越远,一些核心功能开始慢慢的不支持终端,最后被鼠标党窃取了胜利果实,变成了 VSCode / Atom。
Emacs 用了 Termcap,现在这个库基本由 ncurses 提供了。不过 TUI 还是完全自己实现的。
按键并不都很诡异,只有一部分比较奇怪,例子我上面也举过了,几乎都是历史包袱。
咒语不是在形容难记或者长,而是说它在你念完之前不生效,得提前想好,增加 cognitive load。所谓的肌肉记忆这种东西其实只对简单动作比较有效果。