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 模式。
对于其它的命令,在具体使用的时候可以看一看本文开头提到的文章。