为什么都说 vim 好用,简单体验过后并没有惊艳的感觉啊,求解释~

2018-05-22 20:11:56 +08:00
 ZeroW
24036 次点击
所在节点    程序员
149 条回复
xsown
2018-05-23 15:19:12 +08:00
@lightening 还有一些细腻的操作也是很方便的,比如 normal 状态下的 yiw 复制单词、diw 删单词、shift i 或 a 跳行首或行尾编辑、shift v 行选、行内 f 某个字符快速跳转过去、xp 对调字符、等等,都是多模式换来的效率
左右移动光标的时候我都是先一阵 w/b 最后才 h/l,会快很多。而普通编辑器要 w/b 操作,得一直按住 alt 键,而且有时候我会用 e 而不是 w 来正好停在某个我想要的字符上,alt+方向键也是做不到如此细腻的
其它的诸如 shift j 拼接两行、o/O 插行编辑、句号重复操作、ctrl a/x 增减数字、ctrl u/U 改大小写等等,也是非常实用的,都是有 normal 模式才能做到如此简洁好用且符合直觉
当然 emacs 也都可以做到,只是另一种小指疼痛的交换哲学而已 ;D
lightening
2018-05-23 15:26:03 +08:00
@xsown hmm 你知道 Sublime、Atom、VSCode 几乎都照搬了 Emacs 快捷键(因为无状态比较符合直觉)。另外 Mac OS 全局支持 Emacs 快捷键,包括在这个 V2 编辑窗口中。
lightening
2018-05-23 15:31:43 +08:00
@xsown 是的,normal 模式有些操作确实很方便。但是我发现很多情况下,基于传统的 先选择再操作,并没有增加很多操作量。比如 diw 删除一个单词,和按住 cmd, D 再删除,一样都是按 3 个键……
行内 f 某个字符快速跳转过去等功能,其实都很容易写插件解决,只是要多一个辅助键。

其实本质问题还是,是要多模式,还是在操作时多按一个辅助键。个人觉得把 ctrl 换到 caps 位后,多按一个辅助键很方便,我个人并不怀念 Vim 的多模式编辑。
xsown
2018-05-23 15:33:41 +08:00
@lightening 我知道呀,emacs 的 ctrl fbnp 我也经常用因为我键盘上没有方向键 XD
我只是想说,vi/vim 的多模式是为了它的效率服务的,在频繁的文字调整时,整体效率确实是有显著提高的,至少对我来说是如此。这个观点针对的是 sublime/nano/textedit/notepad++等纯文本编辑器
tylerdurden
2018-05-23 15:35:59 +08:00
这是钓鱼贴 这是钓鱼贴 这是钓鱼贴
awesomes
2018-05-23 15:37:51 +08:00
习惯了搜狗你只会觉得用五笔的都是在装逼
xsown
2018-05-23 15:40:26 +08:00
@lightening diw 是删除光标所在位置的单词,比如 easy,你光标落在 e/a/s/y,都是删除这个单词。还可以用 ciw,删除之后立即原地进入 insert 模式,仅这个例子而言,对比普通文本编辑器,确实是便捷的,形成肌肉记忆之后再改回去很不习惯(先 alt 右到单词尾,再 alt shift 左选中单词,再 del,麻烦多了)
snailsir
2018-05-23 15:42:44 +08:00
尝试着打开了 emacs,求退出去的方法 😂
lightening
2018-05-23 15:43:54 +08:00
@DiamondbacK
@pony279

是这样的,所有针对选区的操作,在多重选取后,都是分别作用于所有选区的,包括第三方插件;而且你可以做一系列连续操作而不用强求一条命令完成。

Dot 可以替代一些多重选取的功能,但局限性比较大,毕竟只能重复一条命令。至于选取上的容错性,在选的时候就有容错啊。

宏的话……哪个编辑器没有宏?

@pony279
这么说 NeoVim 已经可以实用了?上次 check 的时候,NeoVim 还不能正常日常使用。那真是可喜可贺,算是解决了一个问题。
我指的多文件管理是以目录为基本单位,方便在目录内跳转,配合文件浏览器、模糊匹配、跳转到定义处、自动补全 import 等功能。
Vimscript 懂得人多不多是个相对的概念啊。你现在是要和 Python 和 JavaScript 比懂得人数了……
tylerdurden
2018-05-23 15:45:14 +08:00
一场圣战又要开始了,你们啊,还是太年轻。
lightening
2018-05-23 15:47:02 +08:00
@xsown 对啊,比如我有个 easy,开始时光标放在 e/a/s/y 任意位置,cmd + d 会选中 easy 单词,然后如果我要删除就按 delete,要修改就直接开始打字。按键数量其实比 ciw 还少一个 @_@
xsown
2018-05-23 15:47:08 +08:00
@lightening 我并没说多模式比辅助键更好,vi 和 emacs 对文本的操作方式各有利弊。我的观点是这两种方式都比普通纯文本编辑器( sublime text 等)在文字编辑的效率上更好。
另外,这里说的是编辑器自身的理念,所以是朴素状态的比较。加了自己写的文本编辑插件,就已经不是大家认知上的 sublime 了
gnaggnoyil
2018-05-23 15:49:22 +08:00
我就想提醒 LS 捧 vim 的各位,装 ycmd/cquery 的 vim 和什么插件都没装的 vim 是两个编辑器

当然如果你说是 ssh 过去这种应用场景那当我没说,毕竟那种情况下没人会傻到用 nano.
xsown
2018-05-23 15:52:36 +08:00
@lightening 你说的好像是 sublime text 自己的快捷键。在各种代码编辑器里、textedit 里 cmd d 都没有效果。如果 sublime 自己有一套强化的快捷键并且很好用,那它也是个不错的选择
lightening
2018-05-23 15:53:22 +08:00
@xsown 我觉得你对 Sublime Text 等好像有些误解。
Sublime、Atom、VSCode 都是直接支持 Emacs 操作方式的,所以他们不是你所说的“普通纯文本编辑器”啊。
megachweng
2018-05-23 15:58:09 +08:00
个人感觉 vim 老是要按 esc 挺烦的,关键是 esc 还那么远
xsown
2018-05-23 16:00:02 +08:00
@lightening 可能我了解的有限,至少 emacs 的选区操作、cut、copy,yank 这几组,sublime、textedit 等等都不支持呀。我所理解的是那些编辑器只支持最基本的光标移动之类的快捷键,不然 jetbrains 的插件库里也不会有好几个 emacs 插件来补全进阶功能了
wangjams4
2018-05-23 16:01:23 +08:00
@coolesting 其实 IDE 在加个 vim 插件也差不多,没有很难吃吧。哈哈。
SpaceVim
2018-05-23 16:05:22 +08:00
仔细读读这篇 vim 的教程吧,相信你会有收获:

https://github.com/wsdjeg/vim-galore-zh_cn
marcong95
2018-05-23 16:09:59 +08:00
所以我决定尝试一下 emacs (手动滑稽

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/456937

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX