01 开篇初识 vim
vim 功能吊炸天,但我们掌握一些常用的命令即可应对日常的使用了,不记流水账!
- Linux 中最常用的编辑器是什么? vim !
- vi 跟 vim 啥区别? vim 就是 vi 的增强版,功能更强些,别纠结这个细节,掌握 vim 就好😺。
- 有几种模式?有四种模式,normal模式(默认模式)、编辑模式、命令模式、visual模式(这个模式不常用,下面不细说)。
02 normal 模式& 编辑模式 & 底线命令模式
normal 模式
vim [文件名] # 即进入normal 模式 ,这就是默认的 normal 模式,在进入其他模式后,可以使用 Esc 键返回到这个模式。
编辑模式
normal 模式下按下 i、a、o、s,进入编辑模式,使用频度一般也是这个顺序,编辑模式下和在 Windows 里记事本里操作没啥区别。
- i # insert,光标当前字符前插入
- a #append, 光标当前字符后插入
- o #下一行插入
- s #不常用,删除当前字符并插入
底线命令模式
在编辑模式下对文件修改操作后,按Esc进入normal模式,normal模式下使用冒号(:)进入底线命令模式。
底线命令模式常用命令字符如下:
- :q # 退出不保存
- :q! # 强制退出不保存
- :wq # 退出保存
- :wq! # 强制退出保存
03 normal模式下的移动、复制粘贴、撤销与查找
移动
- ctrl + f # 向下翻页
- ctrl + b # 向上翻页
- 0 # 行首
- $ # 行尾
- space # 空格键,一直向下移动一个字符。跟左方向键(→)的区别是,左方向键(→)只能在本行移动。 h、j、k、l 类似方向键的右下上左,顺时针,这些操作是体现 vim 牛的地方,可以飞快的跳转操作。
- G # 大写g,移动到文末。
- nG # n 是数字,代表行号。100G则是移动到第100行。1G文首,0G文末。
- gg # 移动到文首。同样效果还有1G。
删除
- dd # 删除当前行,可连续按d删除。
- ndd # 删除当前行及之后的多少行,如: 100dd,删除当前及之后的100行
- dG #删除当前行至末尾的所有行(光标放到首行,则可以删除全部)
- 删除列操作
1.光标定位到要操作的地方。
2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行。
3.d 删除。
撤销
u # 撤销操作。这应该是非常常用的操作了。如果上面使用 dd 删除错了,可按一下 u 进行撤销。编辑模式下撤销需要按 Esc 进入 normal 模式,再按 u 撤销。
复制粘贴
- y # 进入复制模式。
- yy # 复制当前行。
- nyy # n 是数字,代表行号。如: 16yy,即复制当前行至16行的内容。
- p # 粘贴当前vim剪切板中内容。
- yyp # 常用组合键,即在上面使用 yy 复制后,可立即使用 p 粘贴,或者移动到指定地点后按个 p,即把刚才的内容粘贴过来了。
- ggyG # 全选复制。看这个命令,到行首,按 y 进入复制模式,再移动光标到文末,然后可以按 p 粘贴了。这里有个缺陷,这样的复制内容只能在 vim 中进行粘贴,一旦退出 vim,剪切板中则无此内容了。那怎么办呢? 看下面这个命令。
- gg"*yG、gg"+yG # 这两个全选复制的命令,可以将内容带出到vim之外。
查找
normal 模式下输入 / 或 ? 。
- /hello # 即向下寻找hello这个字符串。按n会一直向下找。
- ?hello # 即向上寻找 hello 这个字符串。按n会一直向上找。
- n、N # 配合/、?则会很有趣,如: /hello Enter 后再按 n,一直向下找; N 一直向上找; ?hello Enter 后再按 n,一直向上找, N 一直向下找。
04 底线命令模式的查找替换
替换,则是要进入底线命令模式了,上面说过了,即在 normal 模式下使用冒号 : 进入此模式。
- :%s/old/new/g # 全局替换,将 old 字符替换成 new 。
- :[n1],[n2]s/old/new/g # n1、n2为行号,意思是从第n1行到n2行,指定行数区间替换。
- :[n1],%s/old/new/g # 从第 n1 行到最后一行的替换。