vim基础操作
vi的三种基本工作模式:
①命令模式
②文本输入模式
③末行模式
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e69c745fed6fef6600f2ce42e2e6856c.png)
命令行模式
任何时候,不管用户处于何种模式,只要按一下Esc键,即可使Vi进入命令模式。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。
文本输入模式
在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键Esc即可。
末行模式
末行模式也称ex转义模式。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。例如:
: sp newfile
则分出一个窗口编辑newfile文件。如果要从命令模式转换到编辑模式,可以键入命令a或者i;如果需要从文本模式返回,则按Esc键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。
基础操作
进入文本输入模式:
命令 | 含义 |
---|
i | 插入光标前一个字符 |
I | 插入首行 |
a | 插入光标后一个字符 |
A | 插入行尾 |
o | 向下新开一行,插入行首 |
O | 向上新开一行,插入行首 |
进入命令模式
Esc:从插入模式或者末行模式进入命令模式
移动光标
命令 | 含义 |
---|
h | 左移光标 |
j | 下移 |
k | 上移 |
l | 右移 |
0 | 移到本行第一个字符上 |
$ | 移到本行行尾 |
M | 光标移动到中间行 |
L | 光标移动到屏幕最后一行行首 |
nG | 移动到指定行n。用法:行号+G,例:12G |
G | 快速回到代码最后一行 |
gg | 快速回到代码第一行 |
w/b | 下一个/上一个单词开头 |
W/B | 和w/b相同,但是跳过符号 |
{ | 按段落移动,上移 |
} | 按段落移动,下移 |
Ctrl+d/Ctrl+u | 向下/向上翻半屏 |
Ctrl+f/Ctrl+b | 向下/向上翻一屏 |
删除命令
命令 | 含义 |
---|
x | 删除光标后一个字符,相当于Del |
X | 删除光标前一个字符,相当于Backspace |
dd | 删除光标所在行,n dd 当前光标开始,删除指定的行数n。 |
dj/dk | 删除上一行/下一行 |
D | 删除光标后本行所有内容,包含光标坐在字符 |
d0 | 删除光标前本行所有内容,不包含光标所在字符 |
dw | 删除光标开始位置的字,包含光标所在字符 |
注: 其实这里说删除并不确切,确切来说是剪切。
自动补齐
命令 | 含义 |
---|
Ctrl+n/Ctrl+p | 在编辑模式下自动补齐 |
撤销命令
重复命令
文本行移动
复制粘贴
命令 | 含义 |
---|
yy | 复制当前行,n yy 复制从光标当前位置开始的向下n行 |
p | 在光标所在位置向下新开辟一行,粘贴 |
可视模式
命令 | 含义 |
---|
v | 按字符移动,选中文本 |
V | 按行移动,选中文本可视模式可以配合d,y,>>,<<实现对文本块的删除,复制,左右移动 |
替换操作
查找命令
/|str查找,如:/abc,搜索全文的abc
n|查找下一个
N|查找上一个
替换命令
把abc全部替换成123
末行模式下,将光标所在行的abc替换成123
:%s/abc/123/g
末行模式下,将第一行至第10行之间的abc替换成123
:1,10s/abc/123/g
vim里执行shell下命令
末行模式里输入 ! 后面跟命令
关闭退出vi
末行模式下:
w:保存
q:退出
wq:保存并退出
shift+zz = wq = x