1
kingddc314 2015-12-02 09:16:13 +08:00 via Android
先熟悉 hjkl
|
2
tankb52 2015-12-02 09:16:55 +08:00
把浏览器 VIM 化。
另外我用 Firefox ,加装了 It's all text! 扩展,在有编辑框的地方都调用 VIM 进行编辑。 |
3
babyhome 2015-12-02 09:17:00 +08:00 via iPhone 1
本末倒置
|
5
griffinqiu 2015-12-02 09:19:20 +08:00
practical vim
|
6
griffinqiu 2015-12-02 09:19:46 +08:00
为学 Vim 而学. 这个没有问题
|
7
datou552211 2015-12-02 09:22:34 +08:00 via iPhone
买把 hhkb 。。
|
8
hienchu 2015-12-02 09:27:58 +08:00
我仅仅是为了少用鼠标
|
9
OnceMore2020 2015-12-02 09:27:59 +08:00
:Tutor
|
10
play78 2015-12-02 09:30:38 +08:00 1
学过。学习的过程是: vim 和 linux 系统编程一起学了。上学期间学了一年多吧。现在基本可以进行各种编辑没有问题了,也会配置一些插件。现在,在 Windows 上也装了 gvim ,当作默认文本编辑器。工作是 javaweb ,还是用回了 IDE 。
我觉得你可以跟一门新语言一起学(一门现在没有 IDE 的语言),然后一起进步,我觉得这样是最快的。个人经验。 |
11
caixiexin 2015-12-02 09:31:57 +08:00 via Android
可是我用 vim 也会不自觉地 hjkl 啊😱
|
12
ligyxy 2015-12-02 09:33:35 +08:00
vim adventures
|
13
herozem 2015-12-02 09:34:57 +08:00 via Android 1
$ vimtutor zh
|
14
gimp 2015-12-02 09:38:58 +08:00
扣掉 ↑↓←→
|
15
harry890829 2015-12-02 09:40:49 +08:00 3
说那么多没用的,简单来说,就是用,先百度一下 vim 的快捷键基础,然后百度一个 vim 键盘图,我传到微博上了
遇到你需要好多操作才能完成的事情,就找一找是不是还有方便的方法,基本上就是这样了,有空的时候想提升就百度 vim 进阶,会有一大堆教学出现的 这种东西基本上就是熟能生巧了,唯手熟尔 |
16
RockShake 2015-12-02 09:42:24 +08:00
同意楼上说的,你为什么要用 VIM ,对你而言有什么优势
|
17
asj 2015-12-02 09:44:42 +08:00
掌握 vim 不是靠学习,而是靠练习
|
18
Andiry 2015-12-02 09:46:30 +08:00
vim 一样可以用上下左右,有什么问题?
|
19
yx30 OP @play78 @harry890829 感谢你们的经验分享,目前开始从 vimtutor 做一做,然后开始边学边用
|
20
akenn 2015-12-02 09:48:08 +08:00
1. 需求是最好的导师。
有需求,就有目标和动力。就没有犹豫和迷茫。 如果是想“赶时”髦,或者体验“非主流”, vim 只会越用越恶心。 2. 强大的 命令行( command line interface )是你的好朋友。 _我感觉_在 windows 上怎么都不习惯 vim 或者 emacs , 但是在 mac 和 nix 上就没这种感觉。 3. vim 不是 IDE vim 很强大,很多人把它打造成 IDE ,但它的哲学与通常讲的 IDE 并不相同。 这需要_体会_。 |
21
harry890829 2015-12-02 09:51:57 +08:00 1
@Andiry 我在刚解除 vim 的时候,也问过这样的问题,明明有上下左右,为什么非要用 hjkl 呢,当时一个大牛就跟我说,因为懒,就这么简单,我在写代码的时候,不需要让我的手离开主键盘区,完全就可以完成光标移动,所以你会看到其实很多工具的插件都有 vim 化,都会启用 hjkl 移动,为了就是让手能够停留在主键盘区
|
22
focux 2015-12-02 09:54:45 +08:00
|
23
focux 2015-12-02 09:55:11 +08:00 1
欢迎 star
|
24
Banio 2015-12-02 09:59:01 +08:00
装个某大神制定好的 vim 然后 经常用就好了。。。。我是从 vim 叛逃到 sublime 了。。。
|
25
myth 2015-12-02 09:59:17 +08:00
|
26
shibo501c 2015-12-02 10:02:59 +08:00
|
27
Tink 2015-12-02 10:03:31 +08:00 via iPhone
just use it
|
28
expkzb 2015-12-02 10:04:03 +08:00
IDE 加 Vim mode 才是正解
|
29
lxrmido 2015-12-02 10:04:18 +08:00 1
鼠标点击、上下左右是很理所当然的便捷操作,不是不良习惯。
当你要点得位置距离你十万八千里要按十几下键盘的时候,还是移一下鼠标比较快(尤其是触控板就在拇指位置的时候); HJKL 只是 ADM-3A 的方向键,对大多数键盘来说并不比上下左右人性化,除非你真懒得把手右移几厘米。 |
30
young 2015-12-02 10:04:50 +08:00 1
|
31
onice 2015-12-02 10:14:10 +08:00 1
简明 vim 练级攻略: http://coolshell.cn/articles/5426.html
|
32
xcodebuild 2015-12-02 10:15:50 +08:00
@lxrmido 我倒是不反对方向键挺自然的,但是离得再远 ace-jump (我是 emacs 党)也按不了十几下键盘。。我相信 vim 也一样
|
33
zeuss 2015-12-02 10:21:37 +08:00
用 vim 写个前端项目~
|
34
dai269619118 2015-12-02 10:23:01 +08:00
hjklai 先看下这 6 个键 直接用 不需要刻意的学习
|
35
shearer 2015-12-02 10:23:53 +08:00
这又不是上面技术,是习惯吧了,你既然习惯了那样就应该继续那样高效地完成你工作的本身。
|
36
yy77 2015-12-02 10:27:28 +08:00 1
那就说明 VIM 不适合你,还是去学 emacs 吧。 ;-)
|
37
YuJianrong 2015-12-02 10:31:10 +08:00
我用 vim 十多年还在继续用上下左右,这有什么啊……
再说了,编程的速度和输入的速度无关,纠结这个干吗呢…… 最后我觉得改用 sublime text 的还是用 sublime text 吧…… |
38
iniwap 2015-12-02 10:32:25 +08:00
现在 sb,atom 那么 6 ,甚至 vscode 真不知道那些非要 vim emacs 的人是为了要凸显什么?
|
39
dogfeet 2015-12-02 10:36:03 +08:00 3
每个人的习惯不同,其实最终个人使用频度比较高的都是部分功能。像我使用最多的一般也就是移动,编辑,搜索,窗口分割了。
移动除了 hjkl 等还有很多细分的比如 w,e,b,c-e,c-y,c-d,c-u,gg,G 编辑常用的多是, r,x,d,cw,dw,dd,dy,p,之类的。 搜索,窗口分割都是固定的几个。 其实每个人常用的都是频度比较高的一部分功能。找到你最习惯用的,多用就行了。其他的等要用时再查手册也不迟。像 s, %s, 宏之类的。 配置一般不要去改原生快捷键了,插件也不用装太多。 vim 说来说去,插件一堆,都说自己装了 xx 插件很好用,其实很多插件都或多或少有些细节问题,有时又是兼容问题。经常发生装了 1 个插件,发现有个地方很不顺手,于是再加个类似的插件互补,然后版本更新后,发现又出现兼容性问题。你用起来不爽,慢慢的用的频度也就不那么高了。熟悉原生配置,方便你切换编辑器或 IDE 时更好的过度(一般流行的 IDE 都有插件实现很纯正的 Vim 模式) 总之就是多用,很多很舒服的功能,用上瘾形成惯性后,自然就记住了。比如 C++ 系语言语句要以分号结尾,但有时光标又在嵌套层次很深的括号或参数表达式中,这时候 A 跳到行尾就很方便了。而有些不需要分号的语言则又可以在这些层次很深的部分 直接通过 o, O 开启新行。(有很多 IDE 都有各自类似的功能,但他们的快捷键互不相同,切换使用时还有有些成本的, Vim 系快捷键则比较通用) 个人比较习惯 () 一起连输,这时光标在括号外面,要快速进入括号内只需 esc,i (两手可以几乎同时按) 习惯了其实与按方向键差不多的感觉。{} 也是 esc,i,回车,O 。这个操作比用方向键顺手不少。 其实最好用的还是窗口分割系的快捷键,习惯了分屏,窗口间移动,复制黏贴,看写代码太舒服了。最主要的是,还能在其他 IDE 中享用同样的快捷键,像 IDEA 就能非常方便的用 vim (插件) 快捷键分屏,效率高的爆。 其实最强大的功能还是 IDE + Vim 插件, IDE 往往都有工程的概念(这比 Vim 中的一些项目管理插件要来的靠谱简便的多),可视化的配置,对语义更懂,对重构更友好。看大型项目时,更智能精准的跳转,锁定,搜索,往往要比你用 Vim + 插件的组合更好的让你理清代码脉络。 |
40
iac 2015-12-02 10:38:30 +08:00
把常用的记住就可以了,其实看起来那么多,常用的也就那么几个
|
41
ilotuo 2015-12-02 10:39:07 +08:00
不是在服务器编程的根本没必要学.
我同事就是一时装逼学了一阵子, 最后老老实实回到 sublime 了. 都特么是玄学 玄学害死人 |
42
PandaSaury 2015-12-02 10:39:18 +08:00
liunx 私房菜+shell 乌龟书
|
43
zdkmygod 2015-12-02 10:43:00 +08:00
《 Vi 和 Vim 编辑器》
《 Vim 使用技巧》 |
44
bramblex 2015-12-02 10:48:20 +08:00 1
学 vim ?有卵用? vim 提高的是编辑效率,而不是编码效率。
你换了支笔你就能写好文章啦?就能赚到稿费了?就能成为文学大家了? too naive 。 折腾 vim 就是浪费大量的时间在没意义的东西上,除非你开发环境在纯字符终端的 linux 上面。 |
45
jemyzhang 2015-12-02 10:51:30 +08:00
天天用,不懂就查
|
46
bramblex 2015-12-02 10:54:45 +08:00
@ilotuo
重点是真的除了装逼没啥意义啊。我现在用 vim 是因为习惯了,当然我花了两年时间习惯,其中还有各种折腾插件的时间。之前全都是为了装逼,花在折腾一个工具的时间比好好拍代码的时间还多。 到后来我还造了一套这个东西 https://github.com/bramblex/BlxVimrc 。我也算是比较高端的 vim 用户了…… 但是然并卵啊!后来我都禁止我的师弟使用 vim 好好用 sublime ,结果人家要装逼,就不听 ╮(╯_╰)╭ |
47
Monad 2015-12-02 10:56:51 +08:00
有些人真是 这东西对你工作能力没提高 不学 那东西不能增加我收入 不学
每个人都有自己的追求,感情你们看电影看美剧的时候都是在学英语? |
48
cgcs 2015-12-02 11:09:15 +08:00
我就是想说一句, ATOM 挺好使的,虽然我很爱 Org-mode
|
49
zjqzxc 2015-12-02 11:11:24 +08:00
楼主的问题如果是:如何更好地做饭?
按照这个气氛,楼下的回答估计就是:做什么饭啊,买外卖不就好了。做饭只是为了填饱肚子的工具,你以为学会做饭就能不被饿死了? |
50
bramblex 2015-12-02 11:17:17 +08:00
|
51
joshz 2015-12-02 11:18:41 +08:00
vim 和 emacs 的使用场景越来越局限了,除了必须使用命令行的场合、 orgmode 、写写简单的程序以外,这两位除了逼格高点,真心不适合作为效率工具。说拿来做 ide 的我觉得更是自己骗自己。且不说配一个趁手的环境要浸淫多久,光是他们经常宣扬的点就是站不住脚的。首先这两者配置的 ide 都需要外挂才能实现可用的补全,而这些外挂良莠不齐,被专业 ide 完爆;其次,用一套 ide 做所有开发的收益很小,因为面向不同的语言都需要不同的操作、不同的快捷键,即便有共性的部分(比如编译运行、静态检查)也不多,而且你的大脑
|
52
joshz 2015-12-02 11:19:58 +08:00
不小心发布了。。。接上。而且人的大脑也处理不了这么多场景的切换,必须有一个过渡时间。
|
53
bramblex 2015-12-02 11:26:00 +08:00
|
54
joshz 2015-12-02 11:26:44 +08:00 1
回答楼主的问题:我觉得学习两大神器,打印一张快捷键 cheatsheet ,学一点基础知识就行了。理解一些基本概念,敲键盘的时候不停看手册改进效率即可。等你入门了,玩腻了,顶头上司催工程催得紧了,被复杂的配置搞得伤心了,你就可以回归 jetbrains , vs , sublime, vsc 这些现代的东西,改下快捷键 mode ,你就会感觉置身天堂了。
|
55
joshz 2015-12-02 11:44:29 +08:00
@bramblex ide 也可以配合。两大神器配合 shell 工具有三种方式:在编辑器内临时运行命令,在编辑器内开一个 shell 比如 eshell ,通过 tmux 等同时运行查看编辑器和 shell 并做切换。如果你比较过,那第三种方式肯定是最无痛最流畅的。这就和现代 ide 的理念完全一致了,编辑器负责编辑,开一个窗口来跑 shell 运行其他工具,既给了自由度,操作又不过分繁琐。想在编辑器里完成一切既是痴人说梦,增加了不必要的复杂度,实际上也违背了 KISS 。不过 emacs 本身也不算编辑器吧。
|
56
openroc 2015-12-02 11:53:59 +08:00
卖油翁说,请每天使用~~~~。
|
57
thxmem 2015-12-02 11:54:43 +08:00
多用。干什么都用
|
58
Andiry 2015-12-02 11:55:52 +08:00
vim 学个一天也就差不多了,一天还学不会那就算了。
|
59
astrorobbie 2015-12-02 12:14:54 +08:00
感觉 thinkpad 的小红点就够用了。
|
61
skywalker 2015-12-02 12:39:49 +08:00
|
62
shanks 2015-12-02 12:45:45 +08:00
learn by use
|
63
airqj 2015-12-02 12:58:21 +08:00
真搞笑
vim 就是一个工具而已 工具还有专门花时间来学吗?除非你是要造工具 |
64
merito 2015-12-02 13:00:35 +08:00
等你必须用 vim 的时候再说吧,你真的每天都得 ssh 到服务器上用原始的 vim 写打码?如果不是,为什么不直接上 IDE ?
|
65
bramblex 2015-12-02 13:08:20 +08:00
1. 你这问题我不是回答了嘛?
“你会鼓励一个人用脑袋砸地板不?即便这个人是个抖 M ,觉得爽?” 2. 这比喻可能在你出生前就有了,用 vim == "用冻僵的鱼砸自己的脑袋"。 |
67
bramblex 2015-12-02 13:17:37 +08:00 1
@joshz
……在 vim 里面完成一切真不是痴人说梦。 vim 不仅仅是一个编辑器好不,人家还是一门虽然蛋疼但是完备的程序语言 vimscript 的解释器。 vim 是 vimscript 的解释器 vim 是 vimscript 的解释器 vim 是 vimscript 的解释器 vim 配置还可以像我这么玩 https://github.com/bramblex/BlxVimrc 我还用 vimscript 造了一个 json parser https://www.v2ex.com/t/238723 , 准备再写一个 xml parser 虽然不建议折腾 vim ,但是不代表这些东西 vim 做不到 |
69
MrDream 2015-12-02 13:26:48 +08:00
|
70
Mush 2015-12-02 13:27:46 +08:00
你可以去家像我们一样 ssh 到服务器在命令行环境开发的公司工作, 不出一个月就学会.
|
71
dofy 2015-12-02 13:28:56 +08:00
从基本操作开始,先用起来;
至少移动,复制,粘贴,搜索,替换,合并,撤销先熟悉了; 然后再研究扩展。 |
72
zzn 2015-12-02 13:34:10 +08:00
用,而不是学
|
73
jixiangqd 2015-12-02 13:43:01 +08:00
说一下我的历程
1 : vim 大冒险(只玩基础关好了 主要熟悉 hjkl 键位和 w 、 e 、 b 之类的光标移动方式) 2 :用 3 : practical vim 4 :用 vim 键盘图还是挺好的,这 2,4 的时候帮助比较大 |
74
liuxiaoxiaochen 2015-12-02 13:46:18 +08:00
多敲, 逼着自己敲, 除了这个没有更好的办法了 记住一句话:肌肉记忆比脑子记忆有时候更值得信赖
|
75
Kai MOD 除了多写少折腾外,一把 Esc 和 Ctrl 按键位置合适的键盘也会有很大帮助。
|
76
sarices 2015-12-02 14:08:06 +08:00
VIM 会基本操作就行,对于一个新手,我建议还是是用 ide , sublime 之类的,除非你是在命令行环境,没必要可以去学
|
77
quanwang06 2015-12-02 14:59:26 +08:00
先把鼠标扔了。。。
|
78
erenno1 2015-12-02 15:13:37 +08:00
装个 vim ,然后去个创业公司, leader 天天 push 你,嗷嗷写代码就可以了
|
79
xuyinan503 2015-12-02 16:12:21 +08:00
@yx30 如果你编程速度的瓶颈在码字速度,就学 vim 。如果不是,就好好用 ide 吧。
|
80
luoluoluo 2015-12-02 16:34:58 +08:00
只要你只用 vim ,这只是个时间问题,关键是 只用,只用
|
82
fishioon 2015-12-02 17:31:20 +08:00
@dogfeet 写的不错,不过关于括号那个我推荐 auto-pairs 插件,输入左括号会自动输入右括号并且光标在中间,删除时也会配对删除,很不错
|
84
FAB 2015-12-02 18:22:10 +08:00
为什么不从玩 Vim-Adventures 开始呢?
|
85
behappy 2015-12-02 18:29:38 +08:00
用了一年 sublime text ,最终决定还是回归 vim 。
也没啥别的想法,就是在服务器上没别的选择,只能用 vim 。 |
86
KyleMeow 2015-12-02 18:47:36 +08:00
用到什么功能,搜索即可。然后多用就记住了。熟能生巧。
|
87
demobin 2015-12-02 19:18:18 +08:00
@bramblex 既然你自己是 VIM 大神,为什么要禁止你的小伙伴用 VIM ?难道有什么编辑器可以像 VIM 一样,一条指令替换全局字符串、替换指定行数内字符串、某 V 区域内字符串、替换某一列字符串等等在写代码时其实很好用的功能吗?
|
88
workwonder 2015-12-02 19:39:12 +08:00 via iPhone
直接 ssh 到服务器编码的还是别拿出来说事儿了,感觉老土的样子。
而且神奇的是竟然认为没有别的选择。 |
89
llbgurs 2015-12-02 19:43:21 +08:00
把自带的 vimtutor 敲几小时
然后后面所有文本编辑都不要用 方向键 |
90
demobin 2015-12-02 19:50:18 +08:00
那些说 VIM 是用来装逼的也是笑死人了。你的 IDE 可以一下跳到文件底部?跳到指定行数?跳到匹配的括号?你的 IDE 可以比 VIM 更快速查找?任意区间替换任意字符?你的 IDE 可以一下在一列上添加字符串?在多行行尾添加字符?你的 IDE 可以自动添加文件头?自动添加函数头?你的 IDE 可以一下插入系统时间、当前目录?可以手不离开键盘运行程序验证代码?可以在不认识的字符串上按下 SHIFT+F 就查英汉、日汉字典?自己不喜欢不爱用,为什么要说用 VIM 就是装逼?为什么还不让别人学?
|
91
wizardoz 2015-12-02 19:52:28 +08:00 1
作为一个 emacser ,我认为很多东西其实是习惯了就不想改了。前段时间用了两个星期的 sublime3 ,发现并没有真的有多好,反正那些功能大家都有,只是习不习惯的问题。所以后来还是回归 Emacs 了。
但是我也并不是在装逼,因为我从来不会向别人安利我使用的工具。偶尔会有人跑过来“哇塞,你用的这个是什么?”这种时候我通常懒得解释,说不清楚。 其实 IDE 和 Emacs 、 VIM 不是一类东西。有些人工作只是写代码,不需要也不喜欢捣腾其它东西,还是 IDE 比较好。但是如果经常写多种不同的语言,或者编辑各种文档、系统配置文件,再加上还要经常到不同的服务器远程编辑。我相信 IDE 并没有什么优势吧? 至于 Sublime ,我觉得这个东西跟 Emacs 、 VIM 就是一类东西。都是要各种折腾各种安装插件。无非就是界面更现代一点罢了。对于熟悉 Emacs 和 VIM 的人来说,没必要去花精力学习一个功能差不多的东西。如果是新手,直接学 Sublime 也无不可。 突然想起来, Sublime 在 Linux 下不支持中文输入! Sublime3 依然不支持!这是我摒弃 Sublime 的主要原因。所以说大家半斤八两,都是有长有段的。 |
92
bramblex 2015-12-02 20:51:42 +08:00
@demobin
——引用 —— 那些说 VIM 是用来装逼的也是笑死人了。你的 IDE 可以一下跳到文件底部?跳到指定行数?跳到匹配的括号?你的 IDE 可以比 VIM 更快速查找?任意区间替换任意字符?你的 IDE 可以一下在一列上添加字符串?在多行行尾添加字符?你的 IDE 可以自动添加文件头?自动添加函数头?你的 IDE 可以一下插入系统时间、当前目录?可以手不离开键盘运行程序验证代码?可以在不认识的字符串上按下 SHIFT+F 就查英汉、日汉字典?自己不喜欢不爱用,为什么要说用 VIM 就是装逼?为什么还不让别人学? —— End —— 我先确定一下,你真的不是在黑 VIM 或者钓鱼? 好吧,我假设你不是高端黑,也不是钓鱼……那我只能说,无知真可怕! |
93
d0o0g 2015-12-02 22:32:21 +08:00
@workwonder 怎么会老土呢?使用场景使然
服务器上脚本有 bug ,你会把程序 scp 回本地吗? 我是不会,服务器上配置好 vimrc ,直接打开调试就完了。 谁还拷回本地用 ide ?多此一举 vim 在服务器上,我在异地的任何机器上都能调试编写代码 |
94
fallwithme 2015-12-02 22:50:15 +08:00 4
其实,学 VIM 的话,首先你要改变自己的思维方式......
既然都是程序员,应该知道命令式编程,和声明式编程吧。一般的编辑器就是命令式编程,你需要告诉它一步一步怎么做,而 VIM 是声明式编程,你只需要告诉它你要什么结果.... 比如,面对这样的一行代码: print "Hello world" 你想把引号里面的 Hello world 换成 Goodbye ,假设此刻光标在 Hello 和 world 中间,你应该怎么做呢? 在一般的编辑器里,你需要做的事是,移动光标到 world 后面,然后按删除键把字母一个一个删掉,然后重新敲新的单词,因为编辑器本身对你录入的内容一无所知,只会做移动光标和删除一个字母和添加一个字母这几件事。 然而在 VIM 里,你需要做的是敲出这样几个字母: ci"Goodbye 翻译成中文就是——嗨,给我把引号里的内容换成 Goodbye 翻译成英文就是——(c)change (i)inside (") Goodbye 为什么能这么下命令?因为 VIM 对你写的内容有感知,它知道 print 是一个单词,也知道 Hello world 在一个引号内部。所以,你只需要学会怎么把你想要的结果表达出来就行了, VIM 自己知道该删掉哪几个字母。 同理,要想把 world 这个单词替换掉怎么办? ciw 能猜出是啥意思了吧?(c)change (i)inside (w)word 这就是 VIM 的基本概念了,明白了这个,再记那些命令就容易多了,甚至,你都可以自己猜命令了。比如你猜替换掉括号内的内容的命令是什么,就是 ci(或者 ci)?又比如,你知道了删除命令是 d ,那么,你猜删除掉一个单词的命令是什么,就是 diw 。很简单吧.... 因为,一般的编辑器是 |
95
DemoJameson 2015-12-02 23:01:58 +08:00
凡是遇到耗时的操作都停下想一想有没有简易的做法
|
96
bohrasd 2015-12-02 23:11:57 +08:00
人家想学就让人家学,你怎么知道人家是为什么要学的?你用不到别人就用不到?
|
98
dsdshcym 2015-12-02 23:25:08 +08:00 via Android
分享一句前几天看到的评价
文本编辑器就要用 Vim, Emacs 这种古老的,你能想到的大部分文本操作都已经在这三四十年里被它们的用户想到过,并且很有可能实现过了。 |
99
Email 2015-12-02 23:25:47 +08:00
推荐一本书
Vim 实用技巧 |
100
Echoldman 2015-12-02 23:52:25 +08:00
我的方法是:“想要同时编辑多行”用 vim 应该怎么做,然后 google 解决。时间长了就好了。
|