2020 年如何学习 Vim
为什么要学习 Vim
学习 Vim
学习 Vim 的技巧
Vim 资源
如何使用:help
结论
关注@learnvim获取更多 Vim 技巧和窍门!
我第一次发现 Vim 的时候,觉得它是一款过时的编辑器,而且用起来特别难。直到有一天,我看到我的朋友在 Vim 上耍了个花招。我觉得那是我见过最酷炫的东西。几年过去了,Vim 现在已经成了我的主要编辑器。
在 2020 年,许多人都在使用 VSCode、Sublime 和 Atom 等现代编辑器,学习 Vim 是否值得?
确实。
我将向你展示如何开始学习 Vim。以下是我将涵盖的内容。你不必循序渐进地阅读。
你可能会觉得 Vim 不适合你。这完全没问题。Vim 和其他编辑器一样,只是一个工具而已。归根结底,只要能完成工作就用什么工具就用什么。
为什么要学习 Vim
Vim 一开始并不容易上手。就像开车一开始就不容易一样。骑自行车一开始就不容易。编程一开始也不容易。很多事情一开始都不容易。那么,为什么我们会因为 Vim 一开始就不容易而停止学习它呢?
如果你问:“为什么我 2020 年了还要学习 Vim?市面上有很多很棒的文本编辑器。” 以下是使用 Vim 的一些优势:
- 轻的。
- 具有挑战性(适合那些喜欢挑战的人)。
- 几乎无处不在(如果您需要通过 SSH 连接到服务器,您将找不到 IDE,但几乎总能找到 Vim)。
- 与命令行良好集成(使用
!
,您可以执行诸如ls
、之类的命令curl
。您也可以ex
使用运行命令:
)。 - 收获满满,令人满足。(理解 Vim 语法、自定义 Vim、学习 Vim 脚本等等,开启了一个全新的可能性领域。就像玩电子游戏一样,你可以升级、学习新技能,并将它们巧妙地结合起来。)
- 独特的内置功能。(时间旅行、宏、文本对象、点命令几乎是 Vim 独有的内置功能)。
挑战:
- 第一次很难退出。
- 学习曲线陡峭(没有你想象的那么糟糕)。
- 第一次使用它会降低生产力(学习总是需要时间的。你不必一开始就使用 Vim。保留你常用的编辑器。在你自己的业余项目中随时学习 Vim。当你准备好时再切换)。
学习 Vim
在第一部分中,我将展示一些从零开始学习 Vim 的实用步骤。在第二部分中,我将分享一些实用的技巧。
学习 Vim 的步骤
- ✅ 了解如何退出 Vim。
- ✅ 完成
:vimtutor
(:Tutor
)。 - ✅ 学习最基本的入门命令:
i (insert mode)
Esc (normal mode/ exit insert mode)
x (delete one character)
h/j/k/l (direction. Personally I would avoid arrow keys from the beginning)
:e {filename} (load document)
:w {filename} (save document)
:q (exit)
:q! (exit + ignore unsaved changes)
接下来,学习稍微高级一点的命令:
dd (cut a line)
yy (copy a line)
p (paste)
/{pattern} (search for text)
n (go to the next result)
:s/pattern/replacement (replace text)
-
✅ 学习 Vim 语法来与 Vim “对话”。
-
✅ 学习导航。
:h motion.txt
/:h navigation
- 四处走动
- 8 个 Vim 编辑器导航基本原则
- 在 Vim 中移动
-
✅ 学习 Vim 模式。
:h vim-modes-intro
- 非模式编辑器 vs 模式编辑器
- Vim 模式介绍
-
✅ 学习文本对象。
:h text-objects
-
✅ 学习如何修改 vimrc。
-
✅ 学习基本的命令行模式(ex)命令(首先,学习搜索/替换)。
-
✅ 学习点命令。
-
✅ 学习宏。
-
✅ 每天学习新知识并加以运用。
-
✅ 打Vimgolf。
-
✅ 永久的自我学习。
这些应该足够你入门了。还有很多功能我上面没有列出。随着时间的推移,你会逐渐了解它们。
不要觉得你必须掌握 Vim 的全部功能。即使知识有限,你也可以快速高效地工作。有些常用的功能你甚至可能永远不会用到。使用对你最有帮助的功能和工作流程。
学习 Vim 的技巧
- 学习 Vim 就是学习一项实用技能。你不是通过阅读自行车书籍来学习如何骑自行车的。你是通过骑自行车来学习如何骑自行车的。你正在建立肌肉记忆。目标是能够不假思索地完成某件事。每天只学几样东西,并学好它们。
- 不要复制粘贴别人的
vimrc
。这会让你看不到 Vim 的原生功能。从空白开始vimrc
。了解每一行的作用。你会惊讶地发现,你可能不需要那么多插件。 - 学习触摸打字。
- 启动时,强制自己使用
hjkl
。你可以在 vimrc 中添加以下内容:
noremap <Up> <Nop>
noremap <Down> <Nop>
noremap <Left> <Nop>
noremap <Right> <Nop>
或者安装vim-hardtime插件。
Vim 资源
下面,我整理了一些学习 Vim 的热门资源。
图书
我发现非常有用的书籍:
文章
“必读” Vim 文章:
杂项在线资源
其他在线资源:
- Vim reddit上的 vim 讨论/技巧/问答
- Vimcasts教程
- Vimgolf训练
- OpenVim
- Vim 冒险
- Derek Wyatt Vim 教程
- 艰难地学习 Vimscript
插件列表
一旦你熟悉了,就可以随意添加插件了。这里有一个(个人意见)插件列表,可以让 Vim 更像“IDE”:
- 快速引用/括号:vim-surround
- 搜索:fzf.vim
- 实用配置:vim-sensible
- NERDTree:nerdtree(替代:netrw,或其增强版vim-vinegar、ranger)
- Emmet:emmet-vim
- 标签:vim-gutentags
- 自动完成:(youcompleteme,coc.nvim,deoplete)
- 语言包:vim-polyglot
- tmux 集成:vim-tmux-navigator
- 评论:vim-commentary、tcomment
- LSP 支持/语法:ale
- Git:vim-fugitive(也包括vim-gitgutter)
- 缩进:indentline
- 文本对象:vim-textobj-user
如何使用:help
在某些时候,您将需要开始使用 Vim 的内置功能:help
来掌握 Vim。
了解如何使用 Vim 的内置帮助很有用。
自动完成
Vimhelp
允许你使用 Tab 键自动完成。如果你想了解更多关于 Vim 的信息colorscheme
,可以输入:h color
并按下<TAB>
。Vim 会显示不同的选项供你选择。你可以使用 向前导航<TAB>
,使用 向后导航<SHIFT> + <TAB>
。
跳转到定义
在帮助中,有时您会看到链接(颜色不同)。将光标放在链接上,可以使用 跳转到定义C-]
。
C-o
您可以使用和切换上一个/当前窗口C-i
。
帮助
Vim 有一个不太为人所知的功能,叫做:helpgrep
。它的作用就像字面意思一样:grepping help。它会在所有帮助部分中搜索短语。
例如,如果你想查看与“colorscheme”相关的所有内容,你可以执行:helpgrep colorscheme"
。Vim 会搜索所有“colorscheme”关键字,并将它们列在 Quickfix 窗口 ( :h quickfix
) 中。
一些有用的导航:
- 使用以下命令列出所有 helpgrep 结果
:clist
- 前往下一场比赛
:cnext
- 转到上一场比赛
:cprev
结论
2020 年学习 Vim 还来得及吗?不。
你必须学习 Vim 才能成为更好的程序员吗?绝对不是。我见过很多比我更优秀的程序员,他们甚至不用 Vim。
Vim 有挑战性吗?要成为 Vim 大师需要花费一生的时间(我现在还是 Vim 的学习者)。Vim 与我用过的其他编辑器都不一样。总有一些东西可以探索。Vim 很有挑战性,而且是充满乐趣的挑战。
最后——我再强调一遍——用最适合你工作的工具。也许是 Vim,也许是 VSCode,也许是 Notepad++——或者两者都用。精通多种工具总是好的。
让我们把事情做好吧。
文章来源:https://dev.to/igredible/learning-vim-in-2020-1mma