提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
国立西北农林专科学校的Linux实践的学习笔记,为更好的使用C语言做准备,希望大佬们可以来指点指点。(第一次使用markdown做笔记,好菜的T_T)
一、VIM四种模式
1. 命令模式
进入 vi 后,首先进入的就是命令模式。此时,从键盘输入的任何字符都被 vi 认为是
编辑命令并去执行,若是正确命令则被执行,否则 vi 会发出嗡鸣进行提醒。另外要注意
的是,在命令模式下输入的命令并不在屏幕上显示。
2. 编辑模式
i:进入输入模式的插入状态。输入的字符将会被插入到当前光标所在位置字符的前
面。
a:进入输入模式的插入状态。进入时光标会向后移动一个字符。
o/O:进入输入模式的插入状态。进入时会创建一个新行并将光标放在行首;不同的是“o”是在当前行之下创建新行,而“O”是在当前行之前插入新行。
r/R:进入输入模式的改写状态。“r”只允许改写光标所在位置的一个字符,然后自动返回命令模式;“R”允许改写其他的字符。
3. 末行模式
进入末行模式的方法只有一个,在命令模式下使用 : 或 / 的方式进入。在末行模式中可以进行文件保存、退出、查找与替换、显示行号、paste模式等等
:w => 代表对当前文件进行保存操作,但是其保存完成后,并没有退出这个文件
:q => 代表退出当前正在编辑的文件,但是一定要注意,文件必须先保存,然后才能退出
:wq => 代表文件先保存后退出(保存并退出)
:q! => 代表强制退出但是文件未保存(不建议使用)
4. 可视化模式
二、VIM的基本使用
VIM编辑器的使用
1.移动光标
H | 左 |
J | 下 |
K | 上 |
L | 右 |
[n] Speace | 光标在本行向后移动 n 个字符。 |
[n] h | 光标在本行向前移动 n 个字符。 |
0 或 ^ | 将光标移动到行首 |
$ | 将光标移动到行尾 |
:n/$ | 末行模式 将光标移动到第 n 行,$:将光标移动到末行 |
% | 将光标移动到和当前括号匹配的另一个括号的位置 |
gg | 移动光标到首行 |
[n]+G | 移动光标到n行 直接G便是末行 |
2.复制/剪切/粘贴/删除/撤销 !
命令格式 | 说明 |
---|---|
[n]yy | 从当前行开始复制指定的行数,yy是当前行 |
[n]x | 从当前位置开始删除 n 个字符,默认删除一个字符。 |
[n]dd | 从当前行开始删除 n 行,默认删除一行。 |
D | 从当前位置删除到行尾 |
d^ | 删除到行首 |
d$ | 删除到行末 |
dw | 删除光标所在位置的单词 |
d% | 删除匹配的两个括号之间(包括括号)之间的所有内容 |
p | 粘贴 |
[n]U | 恢复命令,取消上(n)次操作,可恢复到最旧时的 |
[n] . | 重复上次命令 n 次,默认重复一次 |
Ctrl+r | 撤销取消 |
*所有被删除的字符将会进入缓冲区(剪切板)。
3.查找与替换
功能 | 命令格式 | 说明 |
---|---|---|
查找 | :/内容 | 按照指定模式从光标向下全文检索。若检索到指定模式的字符,则vi 会将所有匹配到的字符串反白显示,并将光标从当前位置开始向后移动到第一个匹配到的字符串的位置。后面可通过 n/N 检索后一个/前一个。 |
查找 | :?内容 | 向上检索,其他同上 |
查找替换 | :[l1,l2]s/模式/替换内容[/gc] | 在指定范围按指定模式进行搜索,并使用“替换内容”替换匹配到的内容。默认只搜索当前行;l1、l2 为行号 g :表示将一行内所有匹配到的内容都替换,默认只替换行内第一匹配到的内容。 c:替换时询问,默认一次全部替换不询问 |
查找替换 | g/模式/s//替换内容[/gc] | 功能同上。 |
4.set paste模式
在终端Vim中粘贴代码时,发现插入的代码会有多余的缩进,而且会逐行累加。原因是终端把粘贴的文本存入键盘缓存(Keyboard Buffer)中,Vim则把这些内容作为用户的键盘输入来处理。导致在遇到换行符的时候,如果Vim开启了自动缩进,就会默认的把上一行缩进插入到下一行的开头,最终使代码变乱。
粘贴数据前开启paste模式
:set paste
关闭paste模式
:set nopaste
总结
- 命令模式
- 编辑模式
- 末行模式
- 可视化模式
- 移动光标
- 复制/剪切/粘贴/删除/撤销 !
- 查找与替换
- set paste模式