Vim常用操作(文本编辑)
1. Vi和Vim的区别
Vi是原始的本文编辑器。Vi没有菜单,只有命令。
Vim是Vi的增强版,与Vi兼容。Vim支持多个窗口和缓冲、语法高亮显示、命令行编辑、联机帮助等功能。
2. 进入和退出Vim
# vim 文件名(filename) 进入Vim
如果输入的文件名存在(当前工作目录),则显示该文件的内容,并在最后一行显示该文件的信息。如果输入的文件名不存在(当前工作目录),并且当用户进行保存退出(:wq)时,系统会创建一个以该文件名命名的新文件。
当编辑完文件时,要执行退出Vim的命令。
- :wq 保存退出
- :q 退出
- :q! 强制退出(只有文件的所有者和root才能使用)
- :x 保存退出
- 快捷键:(ZZ) 保存退出(注意:ZZ都是大写)
- 快捷键:(ZQ) 不保存退出(注意:ZQ都是大写)
3. Vim的三种模式(工作方式)
①命令模式(命令方式)
②插入模式(插入方式)
③编辑模式(ex转义方式)
命令模式——插入模式:
用户在命令模式下输入a,i,o即可进入到插入模式;在插入模式下按ESC键即可进入到命令模式。
命令模式——编辑模式:
用户在命令模式下输入冒号(:)即可进入到编辑模式;在编辑模式下按Enter键即可进入到命令模式。
注意:在命令模式下输入的字符不会在屏幕上显示出来(字符被当做命令使用);在插入模式下输入的字符会在屏幕上显示出来(字符被当做普通字母出现);在编辑模式下输入的字符会在屏幕上显示出来(字符被当做命令使用)。
字符是否显示 | 是否属于命令 | |
命令模式 | 不显示 | 属于 |
插入模式 | 显示 | 不属于 |
编辑模式 | 显示 | 属于 |
4. 文本输入命令
①插入命令(i和I)
i 在光标位置之前插入字符
I 在光标所在行的行首插入字符
②附加命令(a和A)
a 在光标位置之后插入字符
A 在光标所在行的行尾插入字符
③打开命令(o和O)
o 在光标所在行的下面新开辟一行,并在新开辟行插入字符
O 在光标所在行的上面新开辟一行,并在新开辟行插入字符
④插入模式下的光标移动
利用方向键进行上下左右移动,利用退格键(Backspace)将光标从当前行上回退一个字符,并删除光标之前的一个字符。
5. 文本命令
剪切
dd 剪切当前行
ndd 剪切当前行以下n行
复制
yy 复制当前行
nyy 复制当前行以下n行
粘贴
p 在当前光标所在行下粘贴
P 在当前光标所在行上粘贴
设置行号
:set nu
取消行号
:set nonu
定位
gg 将光标移到第一行
G 将光标移到最后一行
nG 将光标移到第n行(命令模式)
:n 将光标移到第n行(编辑模式)
$ 将光标移到当前行末尾
0 将光标移到当前行行首
删除
x 删除光标所在处字符
X 删除光标前一个字符
nx 删除光标所在处后n个字符
nX 删除光标所在前n个字符
dd 删除当前行
ndd 删除当前行以下n行
dG 删除光标所在行到文件末尾内容
D 删除光标所在位置到行尾内容
:n1,n2d 删除指定范围(n1到n2)行(编辑模式)
s 删除光标所在处字符,并进入插入模式
S 删除光标所在行,并进入插入模式
cc 删除光标所在行,并进入插入模式
C 删除光标所在处到行尾字符,并进入插入模式
dw 删除光标所在处到下一个单词词首
daw 删除光标所在处的单词(包括空格字符)
diw 删除光标所在处的单词(不包括空格字符)
恢复
u 取消上一步操作(相当于撤销)
搜索
/搜索字符(string) 搜索指定字符
:set ic 搜索时忽略大小写(编辑模式)
替换
r 取代光标所在处字符
R 从光标所在处开始替换字符,按ESC退出
:%s/old/new/g 全文替换指定字符串(编辑模式)
:n1,n2s/old/new/c 在指定范围(n1到n2)行替换字符串(编辑模式)
注意:g表示不进行询问确认,c表示进行询问确认。
. 重复上一条命令(命令模式)
Ctrl+g 显示当前行信息
g Ctrl+g 字数统计
:w 文件名 另存为(当前工作目录)
v 光标所在处到所经地方会被选中,再按v结束
V 光标所在行到所经过的行都会被选中,再按V结束