101
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 |
102
lightening 2018-05-23 15:26:03 +08:00
@xsown hmm 你知道 Sublime、Atom、VSCode 几乎都照搬了 Emacs 快捷键(因为无状态比较符合直觉)。另外 Mac OS 全局支持 Emacs 快捷键,包括在这个 V2 编辑窗口中。
|
103
lightening 2018-05-23 15:31:43 +08:00
@xsown 是的,normal 模式有些操作确实很方便。但是我发现很多情况下,基于传统的 先选择再操作,并没有增加很多操作量。比如 diw 删除一个单词,和按住 cmd, D 再删除,一样都是按 3 个键……
行内 f 某个字符快速跳转过去等功能,其实都很容易写插件解决,只是要多一个辅助键。 其实本质问题还是,是要多模式,还是在操作时多按一个辅助键。个人觉得把 ctrl 换到 caps 位后,多按一个辅助键很方便,我个人并不怀念 Vim 的多模式编辑。 |
104
xsown 2018-05-23 15:33:41 +08:00
@lightening 我知道呀,emacs 的 ctrl fbnp 我也经常用因为我键盘上没有方向键 XD
我只是想说,vi/vim 的多模式是为了它的效率服务的,在频繁的文字调整时,整体效率确实是有显著提高的,至少对我来说是如此。这个观点针对的是 sublime/nano/textedit/notepad++等纯文本编辑器 |
105
tylerdurden 2018-05-23 15:35:59 +08:00
这是钓鱼贴 这是钓鱼贴 这是钓鱼贴
|
106
awesomes 2018-05-23 15:37:51 +08:00
习惯了搜狗你只会觉得用五笔的都是在装逼
|
107
xsown 2018-05-23 15:40:26 +08:00
@lightening diw 是删除光标所在位置的单词,比如 easy,你光标落在 e/a/s/y,都是删除这个单词。还可以用 ciw,删除之后立即原地进入 insert 模式,仅这个例子而言,对比普通文本编辑器,确实是便捷的,形成肌肉记忆之后再改回去很不习惯(先 alt 右到单词尾,再 alt shift 左选中单词,再 del,麻烦多了)
|
108
snailsir 2018-05-23 15:42:44 +08:00
尝试着打开了 emacs,求退出去的方法 😂
|
109
lightening 2018-05-23 15:43:54 +08:00
@DiamondbacK
@pony279 是这样的,所有针对选区的操作,在多重选取后,都是分别作用于所有选区的,包括第三方插件;而且你可以做一系列连续操作而不用强求一条命令完成。 Dot 可以替代一些多重选取的功能,但局限性比较大,毕竟只能重复一条命令。至于选取上的容错性,在选的时候就有容错啊。 宏的话……哪个编辑器没有宏? @pony279 这么说 NeoVim 已经可以实用了?上次 check 的时候,NeoVim 还不能正常日常使用。那真是可喜可贺,算是解决了一个问题。 我指的多文件管理是以目录为基本单位,方便在目录内跳转,配合文件浏览器、模糊匹配、跳转到定义处、自动补全 import 等功能。 Vimscript 懂得人多不多是个相对的概念啊。你现在是要和 Python 和 JavaScript 比懂得人数了…… |
110
tylerdurden 2018-05-23 15:45:14 +08:00
一场圣战又要开始了,你们啊,还是太年轻。
|
111
lightening 2018-05-23 15:47:02 +08:00
|
112
xsown 2018-05-23 15:47:08 +08:00
@lightening 我并没说多模式比辅助键更好,vi 和 emacs 对文本的操作方式各有利弊。我的观点是这两种方式都比普通纯文本编辑器( sublime text 等)在文字编辑的效率上更好。
另外,这里说的是编辑器自身的理念,所以是朴素状态的比较。加了自己写的文本编辑插件,就已经不是大家认知上的 sublime 了 |
113
gnaggnoyil 2018-05-23 15:49:22 +08:00
我就想提醒 LS 捧 vim 的各位,装 ycmd/cquery 的 vim 和什么插件都没装的 vim 是两个编辑器
当然如果你说是 ssh 过去这种应用场景那当我没说,毕竟那种情况下没人会傻到用 nano. |
114
xsown 2018-05-23 15:52:36 +08:00
@lightening 你说的好像是 sublime text 自己的快捷键。在各种代码编辑器里、textedit 里 cmd d 都没有效果。如果 sublime 自己有一套强化的快捷键并且很好用,那它也是个不错的选择
|
115
lightening 2018-05-23 15:53:22 +08:00
@xsown 我觉得你对 Sublime Text 等好像有些误解。
Sublime、Atom、VSCode 都是直接支持 Emacs 操作方式的,所以他们不是你所说的“普通纯文本编辑器”啊。 |
116
megachweng 2018-05-23 15:58:09 +08:00 via iPhone
个人感觉 vim 老是要按 esc 挺烦的,关键是 esc 还那么远
|
117
xsown 2018-05-23 16:00:02 +08:00
@lightening 可能我了解的有限,至少 emacs 的选区操作、cut、copy,yank 这几组,sublime、textedit 等等都不支持呀。我所理解的是那些编辑器只支持最基本的光标移动之类的快捷键,不然 jetbrains 的插件库里也不会有好几个 emacs 插件来补全进阶功能了
|
118
wangjams4 2018-05-23 16:01:23 +08:00
@coolesting 其实 IDE 在加个 vim 插件也差不多,没有很难吃吧。哈哈。
|
119
nG29DOMuRYTWfcSr 2018-05-23 16:05:22 +08:00 via Android
|
120
marcong95 2018-05-23 16:09:59 +08:00
所以我决定尝试一下 emacs (手动滑稽
|
122
fy 2018-05-23 16:26:37 +08:00
哇 这就 120 个回复了……
还有什么成为大师后才体会到 vim 的牛逼都来了。。。 就写代码这件事情来说,承认 vim 没有那么方便是件很难的事情吗?而且确实没有惊艳的感觉没毛病啊。 用你认为好用的东西,做认为有意义的事情。吹捧工具是无聊的行为。 |
123
calon 2018-05-23 16:27:00 +08:00
想搭车问问其他编辑器有重新选择的快捷键吗?类似于 Vim 中 gv 这样的
这个功能救过我很多次啊 |
126
qf19910623 2018-05-23 16:39:17 +08:00
曾经强迫自己去用了用 vim,最终还是滚回了 IDE,最烦的就是记一堆命令了,我的原则是能视图化的东西就不要用命令,我甚至认为要不是大多数开源项目都只支持 linux,我都想一辈子用 windows
|
127
fy 2018-05-23 16:41:43 +08:00
|
128
lightening 2018-05-23 16:52:13 +08:00
@xsown 嗯,其实就是缺 kill-ring。
|
129
PopeyeLau 2018-05-23 16:54:59 +08:00 via iPhone
好用 效率明显提升。
|
130
whnzy 2018-05-23 17:46:44 +08:00
从头到尾学习一下 vim,你会发现,vim 效率极高。个人使用 vim,但是感觉 emacs 太厉害了。
|
131
zhangsen1992 2018-05-23 17:54:52 +08:00
月经贴
|
132
bao3 2018-05-23 20:54:41 +08:00 via iPhone
从 2002 年用到现在,之前也是用一会放弃一会,无非就是个文本工具,直到后来搞定了几个很难的文本才顺道入门了 vim。一用就是 10 多年,这个工具是入门曲线非常陡的,可是后期收益大。其他工具是入门极易,前期收益大。楼主自己选择就好
|
134
RryLee 2018-05-23 21:03:41 +08:00
主要是没有击到你的痛点,不用着急,我从向往 vim 到开始使用 vim,经历了大概 5 年。
可以从其他编辑器的 vim 模式开始,慢慢习惯之后后面就是安利党了 |
137
bbsteel 2018-05-24 09:08:19 +08:00 via Android
lz 还要什么解释,“简单体验过后”你就想惊艳的感觉,lz 还是小学生?
|
138
caixiangyu17 2018-05-24 11:36:48 +08:00
单从文字操作上来说 vim 的确要好用很多,不过 vim 这个编辑器装插件调试太麻烦了。
所以喷气脑袋全家桶配 ideavim 完美解决,有的操作用 vim 有的用快捷键 还有 vim 得 visual mode 超级好用,正则替换也比 ide 得替换好用,不过查找我倒是觉得 ide 得好用一些 |
139
pony279 2018-05-24 15:48:21 +08:00
@lightening
> 宏的话……哪个编辑器没有宏? 关于这点我必须要说一句:纯键盘操作 + 宏绝对是最好的搭配,VIM 是第一个让我感受到宏的强大的编辑器。 我用其他 GUI 编辑器的时候从来没有想过要用宏,即使我知道大部分编辑器都有宏。因为这类编辑器根本不适合纯键盘操作。 > 我指的多文件管理是以目录为基本单位,方便在目录内跳转,配合文件浏览器、模糊匹配、跳转到定义处、自动补全 import 等功能。 “跳转到定义处、自动补全 import 等功能。 ” 属于语言支持的部分,这部分 LSP 插件,还有各类语言插件已经可以做的足够好了: https://github.com/autozimu/LanguageClient-neovim 文件浏览,vim 自带的够用,如果喜欢多窗口,有人用 NerdTree。模糊搜索丝毫不差: https://github.com/junegunn/fzf 大部分 GUI 编辑器能做的事情,理论上 vim 都能做,也许没那么酷炫,但是效率并不差。除了展示图片,拖控件这种硬伤真心没办法。VIM 最失败的地方是当初核心维护者不思进取,拿 unix 哲学当偷懒的挡箭牌,以至于后来有了 neovim 这样的项目。 |
140
lightening 2018-05-24 15:53:25 +08:00
@pony279 我用 Sublime Text 也根本不需要鼠标啊。我觉得,如果你像学 Vim 一样学一个其他编辑器,你会发现他们都很好用。
|
141
pony279 2018-05-24 16:03:19 +08:00
@qf19910623
> 曾经强迫自己去用了用 vim,最终还是滚回了 IDE,最烦的就是记一堆命令了,我的原则是能视图化的东西就不要用命令,我甚至认为要不是大多数开源项目都只支持 linux,我都想一辈子用 windows "最烦的就是记一堆命令了" 大部分初学者都有这样的恐惧。然而事实并不是这样子的。 日常用的命令也就那几条,剩下的,偶尔用,过几天就忘了。 那怎么办?查文档啊,vim 的文档系统非常好用。有一个系统的感觉之后,查问当找答案随手的事情。实在不行,问 google 啊。 linux 的 man/info 也一样,遇到忘记的选项,查就是了。还有 cheat 之类的工具,帮助记录各种命令的常用写法,根本不需要全部记下来。常用的,自然而然就熟了,不常用的,从来也不会被落下。 GUI 也不是万能的,IDE 的 Prefereces 里面照样一堆配置,很多配置你甚至搞不清在哪个节点,于是要么问 google,要么一页一页的翻,最后才找到配置。 |
142
pony279 2018-05-24 16:20:22 +08:00
@lightening
> 我用 Sublime Text 也根本不需要鼠标啊 我知道 Sublime 有很多快捷键。但是习惯了 vim 以后会习惯不了别家的快捷键的。因为不需要各种 ctrl,alt,上下左右。text object 的概念也恨实用啊。 也许在 IDE 里面安装 VIM 插件是一种不错的选择吧。 > 如果你像学 Vim 一样学一个其他编辑器 hmm... 这样学习成本比较高,写 C/C++ 的时候用 VS ?写 Java 的时候用 IDEA ?写 Python 的时候 Pycharm。HTML / CSS ? > 你会发现他们都很好用。 我并没有认为哪个编辑器 / IDE 不好用,更多的是个人习惯和喜好。 就像知乎上有个答案说的:“如果让我选择用 Vim 还是 IDE 来证明自己, 我当然是愿意用 Vim. 因为 Vim 才是我喜欢的范, 但是如果别人用 IDE 来证明了自己, 我也同样会拍手叫好, 因为他们已经证明了, 用什么重要么?” ( https://www.zhihu.com/search?type=content&q=vim) |
143
lightening 2018-05-24 16:36:46 +08:00
@pony279
> hmm... 这样学习成本比较高 其实也并没有很高,我都用 Sublime :-)。而且,所有这些除 Vim 以外的编辑器 /IDE 都实现了基本的 Emacs 快捷键,其实兼容性很高。至于某语言专用 IDE 的专有 features,本来就是要单独学的嘛。 |
144
pony279 2018-05-24 17:31:21 +08:00
> 我提供一个初步的思路给关心这个问题的其他人,用 vvj 在 insert mode 下从任意位置移动光标到下一行行首:
:inoremap vvj <Esc>jI neovim 可以区分 <c-j> 和 enter 了 所以 insert 模式下可以 imap <c-j> <c-o>j imap <c-k> <c-o>k 不过我感觉作用不大。我习惯的跳转是在 normal 模式下 <num> + j/k,然后用 f/t + <key> 到我想要的位置。 我常用的 insert 模式跳转是 EMACS 的 c-a 和 c-e,直接到行首,行尾很方便。 一直感觉基于 word 的移动在 insert 模式下好像也有用,可是 map 了又总是忘记用它,也许是错觉吧 |
145
pony279 2018-05-24 17:31:56 +08:00
@DiamondbacK #94
|
146
DiamondbacK 2018-05-24 20:57:02 +08:00
@pony279 #144
insert mode 下 <c-e> 和 <c-y> 这一对默认功能我还是常用的,所以我不倾向于使用组合键。 我也从来不在 insert mode 下移动光标。 如果一定要,我或许会考虑用类似 <leader> 键的模式来在 insert mode 下移动光标,除了前面临时想出的 vv,我的 <Esc> 和 <BS> 在 insert mode 都是用不着的,可以充当 <leader>。而且我的键盘比较特殊,这两个键都不用挪动手掌。 顺便试了一下,Vim 7.4 和 Vim 8 也区分 <c-j> 和 <Enter>。不过 7.4 后期基本等于 8 了,不能说明 Vim 7 都区分。<c-m> 是跟 <Enter> 一样的。 |
147
DiamondbacK 2018-05-24 20:59:52 +08:00
@pony279 #144
又发现我的 Alt 也很好按,也可以考虑用 Alt 组合键。 |
148
Pegasus 2018-07-08 09:00:10 +08:00
可以看看这个 vim 视频 https://zhuanlan.zhihu.com/vim-video
|
149
jkhere 2019-04-18 17:21:59 +08:00
现在接手了构建工程,需要经常改动一大批 shell 脚本(改动变化不大,但变化的地方多),比较适合使用 shell。如果正常代码开发还是 IDE 效率高。
|