首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Vim

从零学习 vim 一个多月, 感觉最有用的三个教程

  daya0576 · 2018-02-25 19:11:09 +08:00 · 13226 次点击
这是一个创建于 626 天前的主题,其中的信息可能已经有所发展或是发生改变。

学 vim 的过程中走了很多弯路, 分享一下对自己帮助最大的三个教程:


1. vimtutor

最好的入门教程: 直接命令行输入vimtutor.
(要是早点知道就好了...)

2. Pratical Vim:

涵盖了大部分的常用技巧, 而且每个 tip 都有实际的栗子.
(网上有盗版 PDF, 但 JD 上好像也有卖实体书.)


3. Learn Vimscript the Hard Way

感觉挺不错的, 对各种概念原理解释的很全面, 关键是每章有课后题, 自己动手才能真正理解.
很渣渣可惜只看了三分之一, 终于能看懂了 vimrc 了.
剩下如果坚持看完的话应该就可以自己编写插件了.

链接: http://learnvimscriptthehardway.stevelosh.com/
中文版: http://learnvimscriptthehardway.onefloweroneworld.com/


p.s. 一开始尝试使用 vim 也是挺痛苦的, 毕竟鼠标真的很方便, 但禁用了方向键, 强迫自己用 vim 开发了三天后(Pycharm+ideavim), 慢慢就会发现用 vim 写代码真的是一种享受.


我的学习笔记: 链接

75 回复  |  直到 2019-09-18 23:23:27 +08:00
    1
boywhp   2018-02-25 19:40:18 +08:00
反正我是必须用鼠标的, 盲打至今都没学会, 真是醉了,不过我发现用 VIM 看 C 代码确实舒服,写代码还是 IDE 吧。
    2
Immortal   2018-02-25 20:05:40 +08:00   ♥ 3
我也一直都用 idea 系列的编辑器+vim 插件
在试过 sublime vscode 这些编辑器后 发现还是 ideavim 的插件更贴近原生
以前有点热衷于用纯 vim,折腾各种插件,后来慢慢觉得 idea+vim 插件才是最完美的选择,有了 vim 的脸滚键盘和 idea 的强大功能,perfect !
顺便一说,如果楼主也喜欢 vim,chrome 浏览器下也有一个很不错的 vim 插件,[cvim]( https://chrome.google.com/webstore/detail/ihlenndgcmojhcghmfjfneahoeklbjjh) 需要 fq
    3
ZZZZone   2018-02-25 20:10:20 +08:00 via Android
我大一刚踏进校门的时候, 学长就教我们用 vim, 慢慢摸索, 没有去刻意学习。 后来习惯性的不用鼠标和方向键。
现在干什么都离不开 vim 了, 写代码用 vim, 写博客用带 vim 模式的 markdown 软件, 浏览器也用的楼上说的插件😁。
    4
changrui0608   2018-02-25 20:30:07 +08:00   ♥ 2
我还记得新换的 mac,打开 vimtutorial 发现是中文,当时就惊了
    5
carlclone   2018-02-25 20:34:41 +08:00
@Immortal 跟你完全一样 idea+ideavim + cvim
    6
qonco   2018-02-25 20:35:35 +08:00 via Android
一个月了到啥程度啦?
    7
ivlioioilvi   2018-02-25 20:46:16 +08:00
@ZZZZone
可以说说哪个 markdown 软件带 vi 模式的吗?
找了好久没找到,是支持 linux 的么?
    8
OpenJerry   2018-02-25 20:46:17 +08:00
mark
    9
shalk   2018-02-25 20:48:58 +08:00 via iPhone
    10
ChrisTsai   2018-02-25 20:53:02 +08:00
@ivlioioilvi vscode 的 markdown 插件配合 vim 插件,我是这么用的
    11
ivlioioilvi   2018-02-25 21:00:27 +08:00
@ChrisTsai
以前用 windows,也用的 vscode 写 markdown,体验还不错。
但是现在用 linux,已经把 CapsLock 键映射为 Esc 键,但在 vscode 中却不能识别。
    12
ech0x   2018-02-25 21:50:02 +08:00   ♥ 3
map <Left> <Nop>
map <Right> <Nop>
map <Up> <Nop>
map <Down> <Nop>
imap <Left> <Nop>
imap <Right> <Nop>
imap <Up> <Nop>
imap <Down> <Nop>
imap <BS> <Nop>
imap <Del> <Nop>

这个绝对可以让人快速熟悉 vim
    13
vansarw   2018-02-25 21:53:28 +08:00
@boywhp 看代码还属 source in sight, 只可惜这货没有跨平台
    14
shinytea2017   2018-02-25 22:38:31 +08:00 via Android   ♥ 1
@ivlioioilvi, Vnote, 不算 markdown editor, 而应算 markdown 笔记应用吧.
    15
everettjf   2018-02-25 22:39:44 +08:00
vimtutor 入门,Learn Vimscript the Hard Way 进阶。我是看的这两个,同样推荐。
    16
Antidictator   2018-02-25 22:42:25 +08:00   ♥ 1
和 VIM 相爱的故事要从我的笔记本上下键坏了开始..哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈 哈哈
    17
hilow   2018-02-25 22:49:25 +08:00 via Android
大家能详细描述 vim 有那些不可替代的优点吗?
我还是觉得 sublime 这样的 ide 更方便。
鼠标加快捷键还是更方便些吧?
而且 ide 能随意拖拽文件夹,查看多个不同项目。
    18
ivlioioilvi   2018-02-25 22:59:16 +08:00
@ivlioioilvi
回复一下自己。
对于在 linux 上 ,将 capslock 映射为 esc 后不能识别的问题,可以参考这个 issues。
https://github.com/Microsoft/vscode/issues/23991
    19
LeungJZ   2018-02-25 23:07:20 +08:00
弱弱的问一句,到底 vim 有哪些不可取代的功能?还是有哪些异于其他编辑器的地方?
    20
ecnelises   2018-02-25 23:39:21 +08:00 via iPhone
@LeungJZ
1.基于模式的编辑
2.简介灵活的命令
3.平台一致的体验
    21
LeungJZ   2018-02-25 23:45:42 +08:00
@ecnelises 啥叫基于模式的编辑?感觉略懵逼。
    22
ZJsnowman   2018-02-25 23:51:14 +08:00 via Android
@changrui0608 中文,怎么弄出来呢?
    23
limbo0   2018-02-26 00:41:37 +08:00
@hilow vim 编辑效率高, ide 编程效率更高, vim + ide 美滋滋, 而且可以跨软件享受一致性体验
    24
danielzhang0212   2018-02-26 05:14:35 +08:00
@ech0x 这招够狠,哈哈
    25
20015jjw   2018-02-26 06:51:56 +08:00 via Android
@ech0x 就是有个 hard mode 可以打开 比你这个还 6hhh
    26
ZZZZone   2018-02-26 08:29:50 +08:00 via Android
@ivlioioilvi 我用的 cmd markdown 我是 mac+win 都有使用, 跨平台同步挺方便的。
还有蚂蚁笔记和 csdn 博客, 都用过。
linux 还没折腾, 试过 vim 的 markdown preview 插件。
    27
boywhp   2018-02-26 08:41:58 +08:00
@vansarw 我最开始也是用 source insight 的看 C 代码的, 后来我用了 VIM 后, source insight 就再也没用过了
不过我不用 VIM 写 C 代码, 我用渣一样的 code blocks
    28
bintianbaihua   2018-02-26 09:11:44 +08:00
coolshell 的博客也不错的
    29
ironx   2018-02-26 09:14:43 +08:00 via Android
不要在上面浪费时间了
    30
changrui0608   2018-02-26 09:37:02 +08:00
@ZJsnowman mac 的话直接在终端里 vimtutor 就是中文了,其他 linux 发行版没玩过。。
    31
zhuangzhuang1988   2018-02-26 09:43:35 +08:00
中二的时候学过,工作后用 vs 发现原来这么舒服
    32
YzSama   2018-02-26 09:50:14 +08:00
mark Vim 一直处于会用几个指令。。
    33
daya0576   2018-02-26 10:03:15 +08:00
@qonco 在 Pycharm 里用的 ideavim, 效率终于和原来差不多了, 但写代码会"舒服"很多. 就像书里说的:
> 写程序就像画画, 艺术家大部分的时间其实都是在构图, 思考, 真正用画笔接触画布的时间其实占比很小. 这就像 VIM, 大部分停留在 Normal Mode.

---

但是 Pycharm 不支持 vim 插件(只有 surround), 还是让我有点绝望. 而且偶尔会有一些小 bug. (但是 pycharm 的 navigation 实在是太好用了)
可能未来会尝试 vscode+vim 或者一些配好的 vim.

有个痛点就是移动到当前屏幕上某个位置(有个 AceJump 插件, 但是体验不是特别好). 还没想好怎么解决.

但用 vim 的好处就是可以一直折腾吧.. 可以玩一年?
    34
maokabc   2018-02-26 10:07:40 +08:00 via Android
当年直接在里程碑 2 这类全键盘安卓机上学会的 vim,加上 make、javac 等工具在上面写了个 app,一套下来什么都熟悉了
    35
daya0576   2018-02-26 10:11:42 +08:00
@Immortal 哈哈, 我原来也有用这个, 但是后来发现一个加强版的: Surfingkeys( https://github.com/brookhong/Surfingkeys/blob/master/README_CN.md)

多了很多功能, 比如用 vim 编辑当前页面的文本框什么的, 虽然很少用到.. 哈哈.
    36
tamlok   2018-02-26 10:14:18 +08:00
    37
daya0576   2018-02-26 10:17:03 +08:00   ♥ 1
@LeungJZ 学 vim 还有个原因, 是当在 vim 改服务器上的配置, 但旁边有人看着的时候...会很尴尬.

之前有一次连粘贴也贴不上去.. (:set paste) 🌆
    38
LeungJZ   2018-02-26 10:25:38 +08:00   ♥ 1
@daya0576
服务器上的 vim 我只会
i 编辑
:wq 保存退出
:q :q! 退出
/s 搜索
dd 删除一行
粘贴的没试过,mac 可以直接 cmd+v 粘贴。。。
    39
January   2018-02-26 10:26:26 +08:00
Practical Vim
    40
freezhan   2018-02-26 10:28:55 +08:00
@changrui0608 #4 我打开是繁体中文🙈
    41
riggzh   2018-02-26 10:31:27 +08:00
vim 我只会 i :wq :q
    42
pan020037   2018-02-26 10:39:29 +08:00
@changrui0608 #4 刚尝试了下 mac 下果真是中文 get 到了
    43
DevNet   2018-02-26 10:46:12 +08:00
mac 上中文教程真 6
    44
clearc   2018-02-26 10:53:05 +08:00
@DevNet
@pan020037
@changrui0608

为什么我的 mac 里的是英文,你们 vim 是哪个版本。。。
    45
DevNet   2018-02-26 10:56:07 +08:00
@clearc #44 MacOS10.13.3
$ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jul 26 2017 19:10:24)
Included patches: 1-503, 505-642
Compiled by [email protected]
Normal version without GUI.
    46
changrui0608   2018-02-26 11:10:08 +08:00
@clearc 系统自带的和 brew 安装的都是中文,看看是不是 macOS 太老(我是 2016 rmbp,再以前的系统不了解),或者系统语言不是中文
    47
dychenyi   2018-02-26 11:28:39 +08:00
我用 vim 好多年了,个人觉得会一些基本的就够用了。
ctrl +f/b , gg, gG, i,I, a,A, dd, d$, de, u, ctrl +r, shift v 模式 ctrl v 模式 , table edit(map 成,te)然后 gt,gT 切换。
搜索 /,:%s###g 匹配替换,Y 复制,p 粘贴, 再绑定一些注释快捷键。基本这些我觉得够用了。 熟悉之后水到渠成,信手捏来。。
    48
TankyWoo   2018-02-26 11:29:32 +08:00
@clearc try:

LANG="zh_CN.UTF-8" vimtutor
    49
WinMain   2018-02-26 12:11:00 +08:00
@Immortal
不容易呀,在二楼就能看到一个懂事儿的。
vim 其实只是一种输入模式,而不是简单的一个软件。
同 IDEA+VIM 插件,用鼠标简直不能操作。
    50
wzw   2018-02-26 12:23:56 +08:00
@WinMain #49 IDEA+VIM 是不是不需要鼠标了, 我现在也准备强迫自己用放弃鼠标, 所以记了很多 idea 的快捷键.
    51
caixiexin   2018-02-26 12:28:20 +08:00 via Android
@ChrisTsai vscode 的 vim 插件现在都没解决退出输入模式,中文输入法自动切换的问题吧?原生 vim 这个已经有了
    52
rashawn   2018-02-26 12:28:40 +08:00 via iPhone
@LeungJZ 所有内容都是文本,上手麻烦,学习过程中能了解各种命令行工具
    53
clearc   2018-02-26 13:44:43 +08:00
@DevNet
@changrui0608 好吧,我版本没问题的,
谢谢 @TankyWoo 的提示,是 lang 的问题,以前一直没用 zh_cn
    54
jhdxr   2018-02-26 13:48:58 +08:00
快捷键用的足够熟练也不需要用鼠标。。。只是看你习惯哪个了。
    55
BeForever   2018-02-26 13:52:25 +08:00
mark
    56
symons   2018-02-26 13:52:42 +08:00
3. Learn Vimscript the Hard Way
    57
symons   2018-02-26 13:53:00 +08:00
3. Learn Vimscript the Hard Way
这个我也看过,可惜没深入下去
    58
haha33223f   2018-02-26 14:20:51 +08:00
放弃鼠标? 那我才买的 500 块钱鼠标没用啦?
    59
xiaogu0322   2018-02-26 14:30:58 +08:00
Mark
    60
bcys   2018-02-26 14:37:24 +08:00
mark
    61
Paddington   2018-02-26 14:44:33 +08:00
用了两年 VIM,最近还是放弃了。

发现看代码还是 JB 系方便( C/Golang/Python )

VIM 虽然本地我配了一堆插件很爽,但是尼玛经常要上服务操作啊,这时候就悲剧了,很多方便的操作都不能搞。
    62
satanandroid   2018-02-26 14:58:37 +08:00
看了你们说的,在 windows 的 git bash 输了 vimtutor 果然是中文版
    63
Immortal   2018-02-26 16:11:30 +08:00
@Paddington 上面说的就是 jb+jb 的 vim 插件 ideavim 两者综合使用
    64
Guosch   2018-02-26 17:07:08 +08:00 via Android
@Immortal 哈哈,cvim 重度用户,日常浏览网页基本不需要鼠标。
    65
theohateonion   2018-02-26 17:14:35 +08:00
有了 vim 基本上换编辑器无压力呀. 我觉得 vim 的正确使用方法是把 vim 当成一种编辑模式而不是一个编辑器. 毕竟 Jetbrain 爸爸好(逃) BTW 我是 spacemacs 党
    66
ecnelises   2018-02-26 17:55:21 +08:00
@LeungJZ 在 Vim 的各种模式特别是普通模式当中,简单的几个按键就可以代表非常复杂的操作
    67
WinMain   2018-02-26 19:33:58 +08:00
@wzw 85%的操作不需要鼠标。
    68
inflationaaron   2018-02-27 03:08:40 +08:00 via iPhone
Spacemacs 欢迎你
    69
wlwood   2018-02-27 07:55:51 +08:00 via Android
@Paddington 哈哈,为啥那几个叫 jb 系?
    70
wlwood   2018-02-27 08:02:15 +08:00 via Android
@Paddington 哦哦,看明白了😂😂😂
    71
skywind3000   2018-03-01 12:10:20 +08:00
我是推荐想用鼠标就用鼠标的,降低点门槛。
    72
skywind3000   2018-03-01 12:10:32 +08:00
想用光标键就用光标键。
    73
wwb721   2018-03-02 14:04:35 +08:00   ♥ 1
https://devhints.io/vim 这个 cheatsheet 总结得很好。
    74
chemzqm   2018-03-08 19:23:59 +08:00   ♥ 1
Learn Vimscript the Hard Way 除非你要写 vimscript,一般用户没必要看太深入
个人比较推荐 https://github.com/mhinz/vim-galore
    75
rudyyuan   56 天前 via Android
推荐下俺的博客 https://vimjc.com
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1008 人在线   最高记录 5043   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 35ms · UTC 19:23 · PVG 03:23 · LAX 11:23 · JFK 14:23
♥ Do have faith in what you're doing.