原文链接:https://www.cnblogs.com/kmsfan/p/vim_beginner.html
一、三种模式
1. 普通模式
在普通模式中,用的编辑器命令,比如移动光标、删除文本等等。这也是Vim启动后的默认模式。
2. 插入模式
在这个模式中,大多数按键都会向文本缓冲中插入文本。
在插入模式中,可以按ESC键回到普通模式。
3. 命令行模式
在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
命令行模式中输入wq回车后保存并退出vim。
注:三种模式的切换:
- 普通模式 --> 插入模式:按 i 键
- 普通模式 --> 命令行模式:按 : 键等
二、常用命令
1. 使用 vim practice_1.txt 进入界面
2. 普通模式下的游标移动
- h:左
- l:右(小写L)
- j:下
- k:上
- w:移动到一个单词
- b:移动到上一个单词
3. 插入模式编辑
- i:在当前光标处进行编辑
- I:在行首插入
- A:在行末插入
- a:在光标后插入编辑
- o:在当前行后插入一个新行
- 0:在当前行前插入一个新行
- cw:替换从光标所在位置后到一个单词结尾的字符
4. 命令行模式下保存文档
从普通模式输入:进入命令行模式,输入w回车,保存文档。输入:w 文件名可以将文档另存为其他文件名或存到其它路径下。
5. 退出vim
- 命令行模式保存并退出 :wq
- :q! —— 强制退出,不保存
- :q —— 退出
- :wq! —— 强制保存并退出
- :w <文件路径> —— 另存为
- :saveas <文件路径> —— 另存为
- :x —— 保存并退出
- :wq —— 保存并退出
- 普通模式下退出:输入Shift+zz即可保存退出vim
6. 删除文本
- 普通模式下删除
- x —— 删除游标所在的字符
- X —— 删除游标所在前一个字符
- Delete —— 同x
- dd —— 删除整行
- dw —— 删除一个单词(不适用于中文)
- d$ 或 D —— 删除至行尾
- d^ —— 删除至行首
- dG —— 删除到文档 结尾处
- d1G —— 删至文档首部
还可以在命令之前加上数字,表示一次删除多行,如:2dd表示一次删除2行。
7. 复制粘贴和剪切
(1) 复制粘贴
- 普通模式中使用y复制
- yy复制游标所在的整行(3yy表示复制3行);
- y^复制至行首,或y0,不含光标所在处字符;
- y$复制至行尾,,含光标所在处字符;
- yw复制一个单词;
- y2w:复制两个单词;
- yG复制至文本末;
- y1G复制至文本开头;
- 普通模式中使用p粘贴
- p(小写)代表粘贴至光标后(下);
- P(大写)代表粘贴至光标前(上);
(2) 剪切与粘贴
其实前面讲得dd删除命令就是剪切,你每次dd删除文档内容后,便可以使用p来粘贴,也这一点可以让我们实现一个很爽快的功能——交换上下行:ddp,就这么简单,即实现了快速交换光标所在行与它下面的行。
8. 查找
(1) 快速查找
普通模式下输入 / 然后键入需要查找的字符串,按回车后就会进行查找。 ?与/功能相同,只不过?是向上而/是向下查找。 进入查找之后,输入n和N可以继续查找 n表示继续查找,N反向查找。
(2) 高级查找
- 普通模式下输入 * 寻找游标所在处的单词;
- 普通模式下输入 # 同上,但 * 是向前(上)找,#则是向后(下)找;
- 普通模式下输入g*同* ,但部分符合该单词即可;
- 普通模式下输入g#同# ,但部分符合该单词即可;
以上查找n,N 的继续查找命令依然可以用。
9. 替换和撤销
替换和Undo命令都是针对普通模式下的操作。
- r+<待替换字母> :将游标所在字母替换为指定字母;
- R :连续替换,直到按下Esc键;
- cc : 替换整行,即删除游标所在行,并进入插入模式;
- cw :替换一个单词,即删除一个单词,并进入插入模式;
- C(大写) : 替换游标以后至行末;
- ~ : 反转游标所在字母大小写;
- u{n} :撤销一次或n次操作;
- U(大写) : 撤销当前行的所有修改;
- Ctrl+r :redo,即撤销undo的操作。
10. 行号的显示和隐藏
在普通模式下按:进入命令行模式,输入set number 或 set nonumber