Vimtutor
Lesson 1.1 moving the cursor:
使用 h,j,k,l来移动光标,h向左移动,l向右移动,k向上移动,j向下移动。
k
<h l>
j
Lesson 1.2 Exiting VIM:
退出vim的步骤如下:
- 按下
- 输入 :q! ,然后按下
NOTE: q!意味着丢弃了对文档的所有的修改操作。
Lesson 1.3 Text Editing -Deletion:
按下x键来删除cursor对应的字符,这个要在normal mode下,而不是insert。
Lesson 1.4: Text Editing - Insertion:
按下i键来插入文本,如果需要保存的话,在normal mode之下,输入:wq!即可
Lesson 1.5: Text Editing - Appending:
按下A键来追加文本。PS:这里的A要大写
Lesson 2.1: Deletion Commands:
在光标的起始位置按下dw(需要在normal mode)来删除某个word。如果光标位置位于某个word之内,会删除从光标开始到单词的结尾。
Lesson 2.2: More deletion Commands:
按下d$,从该行的末尾开始,删除到光标位置的所有字符。
Lesson 2.3 : On Operators and motions:
很多命令都是有一个操作符(operator)和一个motion组成。格式如 d motion表示删除的操作,一个简短的motion list:
- w:到下一个单词开始,但是不包括第一个字符。[h]ello world,按下w会跳到[w]orld。
- e:到当前单词为止,包括最后一个字符,[h]ello world,按下e会跳到hell[o]。
- $:到当前的行尾,包括最后一个字符
几个例子:
dw,删除直到下一个单词开始前,不包括第一个字符
比如说,foo h[e]llo bar ,[]是光标位置,这里表示光标表示e的位置,如果执行dw,字符变成 foo h[b]ar, bar的第一个字符时b,所以不会被删除,且光标到了b。之间的空格也被删除了。
de,删除到当前单词的末尾,但是不包括最后一个字符。
比如说 foo h[e]llo bar,de之后,变成foo h[ ]bar,hello的最后一个字符是空格符,所以不会被删除。注意空格不会被删除。
d$,删除直到行尾,包括最后一个字符。
比如说,foo h[e]llo bar jack time,d$之后变成foo h,后面的都被删除了。
Lesson 2.4: Using a count for a motion:
在一个motion之前加上数字表示要执行motion多少次。
几个例子:
- 2w:跳过两个单词,在第三个单词的第一个字符停下
- 3e: 跳两个单词,在第三个单词的最后一个字符停下
- 0: 回到行首
Lesson 2.5: Using a count to delete more:
在operator 和 motion之间加入数字来表示要执行操作多少次。格式为:d number motion
比如说d3w,d4e
Lesson 2.6: Operating on lines:
使用dd来删除整行。当然前面也可以加上数字,2dd删除两行。
Lesson 2.7: The undo command:
按下u来撤销上一条命令,U(大写)来撤销对整行的操作。undo the undo's,按下ctrl + R即可。
Lesson 3.1 The put command:
使用dd来删除,然后按下P(小写)来将之前删除的文本复制到当前光标之后。这个操作类似剪贴。
Lesson 3.2: The replace command:
使用rx命令将光标位置处的字符替换为x。PS:这里只能替换单个字符。
Lesson 3.3: The change operate:
按下ce从光标位置修改这个单词,比如说,[l]asd,按下ce,输入line即可。
Lesson 3.4: More changes using c:
和删除操作类似,c操作也可以加上数字。c2w,c2e等等。
Lesson 4.1: Cursor location and file status:
按下ctrl+g来显示当前的行号。
按下G(大写)来到文末
按下gg来到文首
输入行号,按下G(大写)来到目标行号
Lesson 4.2: The search command:
按下/,输入所需要查找的目标。输入需要查找的目标,按下
继续向下查找目标按下n键位,向上查找目标按下N(大写)键
如果一开始就需要向上查找,按下?键,与之相反的是/,向下查找。
按下ctrl+o(字母o)来回到跳转到这儿之前的地方,ctrl+I往前跳转。
Lesson 4.3: Matching parentheses search:
光标定位到任何一个括号,比如{},[],()都行,然后按下%。会跳转到与之相对应的括号。
Lesson 4.4: The substitute command:
输入 :s/old/new g 来所有的old 替换为new。其中g表示替换整行。
:#,# s/old/new/g 表示在两个行号之间替换字符
:%s/old/new/g 在整个文件当中替换,就是全局替换的意思
:%s/old/new/gc 在整个文件当中寻找old并且高亮old,提示是否替换为new。
Lesson 5.1: How to execute an external command:
输入:!
Lesson5.2: More on writing files:
为了保存对文档的修改,输入 :w filename来另存为文件
Lesson 5.3: Selecting text to write:
选取部分文档,另存为到新的文件当中。
- 首先按下v,此时进入到可视化选取(visual selection)当中,可以使用$,w,e,h,j,kl等操作移动光标来增加所选取的内容。
- 输入:,此时右下角的字符会变成,:<>
- 然后输入 w filename,来保存所选取的内容到filename当中,如果filename已经存在,可以改为w!来覆盖
Note:
可以通过v操作来选取文本,然后使用d操作来删除
Lesson 5.4: Retriving and merging file:
在光标位置处插入文档,输入:r filename。同样的,也可以在光标位置出插入命令的输出结果,比如说:r !ls,插入当前路径下的文件名。
Lesson 6.1: The Open command:
按下o(小写)会在光标所在的行之后新开一行插入文字。如果需要在当前光标行之上新开一行插入数据,按下O(大写)。
Lesson 6.2: The append command:
按下a来从当前光标位置后插入。
Lesson 6.3: Append way to replace:
按下大写的R,从光标位置开始,然后在键盘中输入你想要替换的内容。
Lesson 6.4: Copy and paste text:
使用y操作来复制,然后用p操作来拷贝。首先使用v来选中需要复制的文本,然后按下y,移动光标到想要的位置,按下p即可。
Note: y可以视为一个operator,所以我们可以使用yw来复制一个单词,y$复制该行剩下的部分。
Lesson 7.1:Getting Help:
输入:help 来查看手册,也可以指定内容,比如说:help w,来查看w相关的内容。
Lesson 7.3: Completion:
输入:e,按下ctrl+D,可以显示所有以e开头的命令,比如说echo,edit等等。按下d,再按下