Missing Semester 学习笔记 - Vim
Contents
这节课学习的是 Vim,因为之前学习过 Vim,所以这里对其进行简单的介绍。推荐一篇皓哥的文章:《简明 VIM 练级攻略》,英文版在这里《Learn Vim Progressively》。
目录如下:
- Course overview + the shell
- Shell Tools and Scripting
- Editors (Vim)
- Data Wrangling(数据整理)
- Command-line Environment
- Version Control (Git)
- Debugging and Profiling
- Metaprogramming
- Security and Cryptography(安全和密码学)
- Potpourri(大杂烩)
- Q&A
仅看上面的文章就足够日常使用了,下面仅给出部分命令。
在 Normal 模式下的部分命令:
:ls
:显示打开的缓存。:help {标题}
:打开帮助文档,例如::help :w
:打开:w
的帮助文档。:help w
:打开w
移动的帮助文档(w
的作用是将光标移动到下一个单词的开头,如果中间含有特殊字符或标点符号的话,则会来到特殊字符或标点符号的位置。)
在移动光标时,也可以根据不同的场景需求,使用不同的字符。除了上面说到的w
外,还有如下方式:
b
:移动到当前单词的开头或上一个单词的开头。e
:移动到词尾。0
:数字 0,移动到行首。$
:移动到行尾。^
:移动到第一个非空格字符。H
:移动到当前屏幕的首行。M
:移动到当前屏幕的中间一行。L
:移动到当前屏幕的底部一行。- Ctrl+u:向上翻页。
- Ctrl+d:向下翻页。
gg
:移动到文件首行。G
:移动到文件末尾。- **:**行号Enter:来到指定的行。例如输入
:12
后按Enter,则光标将会定位在第 12 行。 行号gg
:例如20gg
则会来到第 20 行。行号G
:例如12G
则会来到第 12 行。
以下命令用于改变括号或引号中的内容。
ci(
:改变当前小括号中的内容。ci[
:改变当前中括号中的内容。da'
;改变当前单引号中的内容,并将左右两侧的单引号删除。da"
:作用同上,只不过是对双引号起作用。
可以使用:sp
或:vsp
在同一终端下创建多个窗口,然后使用:w
+hjkl
的方式在各个窗口之间选择。如果你觉得每次使用:q
退出当前窗口很麻烦的话,可以使用:qa
退出全部的窗口。
如果想要将整个文件中的某个字符串替换为另一个字符串,则可以使用以下方式。该实例表示:将整个文件中的所有字符串bar
替换成for
。
|
|
如果你想在一行中,向后(右)找到首个距离光标最近的字符的话,可以使用f{字符}
。例如fo
,即在这一行中,将光标移动到第一个字符o
的位置上。同理,如果想要向前(左)找到首个距离光标最近的字符的话,则可以使用F{字符}
。
如果想要来到光标右侧的首个字符m
之前的那个字符,可以使用tm
,那么执行命令之后,光标就会停留在字符m
的左侧那个字符。同理,你可以试试T{字符}
的效果。
dd
表示删除光标所在的行,cc
除了删除光标所在的行之外,还会进入 INSERT 模式。
对于其它的命令,在具体使用的时候可以看一看本文开头提到的文章。