文本编辑器VI
vi工作模式 [ 只是一个文本编辑器 -- 类似记事本 ]
命令模式:
vi filename 初始模式即为命令模式;
所有键盘上的键都可能是命令,eg:hjkl移动光标
插入模式:
在命令模式下按 i,a,o/I,A,O进入插入模式:
i: 在光标前插入文本;
I: 在本行开始插入文本;
a: 在光标后附加文本;
A:在本行末附加文本;
o:在光标下插入新行;
O:在光标上插入新行。
返回命令模式:按esc键;
编辑模式:
在命令模式下按 : 进入编辑模式;
命令以回车结束编辑
eg: set nu 设置行号; set nonu
退出VI:
①在命令模式下:ZZ;
②在编辑模式下:q/wq/!q
命令模式定位命令:
h: 左移一个字符
j: 下移一个字符
k: 上移一个字符
l: 右移一个字符
$: 直接移至行尾
0: 直接移至行首
enter: 移至下行行首
H: 移至屏幕上端
M: 移至屏幕中端
L: 移至屏幕下端
G: 移到文件内容的最后一页最后一行
1G: 移动到文件第一行
nG: 移动到文件第n行
编辑模式定位命令:
:20 移动到第20行
:set nu 设置行号
:set nonu 取消行号
系统vi 设置:
cd ~
vi .vimrc 每个用户都不相同
命令行模式删除命令
x: 删除光标处的字符
X: 删除光标前面的字符
dd:删除光标所在行
dG:删除光标所在行到末尾的内容
D:删除光标所在处到结尾
编辑模式删除命令
:n1,n2d eg: 1,10d
命令行模式复制命令
yy/Y:复制当前行
nyy/nY:复制当前行以下n行
p:将已经选择复制或已经被删除的行放置当前行下 (粘贴)
命令行模式替换和取消的命令
r:取代光标所在处字符
R:从光标处开始替换字符,按esc结束
s:替换光标所在处字符,并进入插入文本模式
S:替换光标所在全行,并进入插入文本模式,按esc结束
u:取消上一步的操作,取消到上次打开文件时的状态,并不是上次保存的时候;
ctrl+r: 取消操作的回撤
U:取消当前行的所有操作
命令行模式保存和退出命令
:w 保存
:w new_filename 另存为
:wq 保存退出
ZZ 保存退出
:q 退出
:q! 强制退出
:wq! 强制保存退出
:x 保存退出
:x! 强制保存退出
搜索和替换命令
/string
n 下一个
N 前一个
?string
n 前一个
N 下一个
:%s/oldStr /newStr/g 替换所有选中内容
:r fileOther.txt 导入文件
:! 操作系统命令 命令行模式下使用系统命令
同时打开多个文本
vi -o file1 file2 纵向/ vi -O file1 file2 横向
文件间的切换: ctrl + ww
vi工作模式 [ 只是一个文本编辑器 -- 类似记事本 ]
命令模式:
vi filename 初始模式即为命令模式;
所有键盘上的键都可能是命令,eg:hjkl移动光标
插入模式:
在命令模式下按 i,a,o/I,A,O进入插入模式:
i: 在光标前插入文本;
I: 在本行开始插入文本;
a: 在光标后附加文本;
A:在本行末附加文本;
o:在光标下插入新行;
O:在光标上插入新行。
返回命令模式:按esc键;
编辑模式:
在命令模式下按 : 进入编辑模式;
命令以回车结束编辑
eg: set nu 设置行号; set nonu
退出VI:
①在命令模式下:ZZ;
②在编辑模式下:q/wq/!q
命令模式定位命令:
h: 左移一个字符
j: 下移一个字符
k: 上移一个字符
l: 右移一个字符
$: 直接移至行尾
0: 直接移至行首
enter: 移至下行行首
H: 移至屏幕上端
M: 移至屏幕中端
L: 移至屏幕下端
G: 移到文件内容的最后一页最后一行
1G: 移动到文件第一行
nG: 移动到文件第n行
编辑模式定位命令:
:20 移动到第20行
:set nu 设置行号
:set nonu 取消行号
系统vi 设置:
cd ~
vi .vimrc 每个用户都不相同
命令行模式删除命令
x: 删除光标处的字符
X: 删除光标前面的字符
dd:删除光标所在行
dG:删除光标所在行到末尾的内容
D:删除光标所在处到结尾
编辑模式删除命令
:n1,n2d eg: 1,10d
命令行模式复制命令
yy/Y:复制当前行
nyy/nY:复制当前行以下n行
p:将已经选择复制或已经被删除的行放置当前行下 (粘贴)
命令行模式替换和取消的命令
r:取代光标所在处字符
R:从光标处开始替换字符,按esc结束
s:替换光标所在处字符,并进入插入文本模式
S:替换光标所在全行,并进入插入文本模式,按esc结束
u:取消上一步的操作,取消到上次打开文件时的状态,并不是上次保存的时候;
ctrl+r: 取消操作的回撤
U:取消当前行的所有操作
命令行模式保存和退出命令
:w 保存
:w new_filename 另存为
:wq 保存退出
ZZ 保存退出
:q 退出
:q! 强制退出
:wq! 强制保存退出
:x 保存退出
:x! 强制保存退出
搜索和替换命令
/string
n 下一个
N 前一个
?string
n 前一个
N 下一个
:%s/oldStr /newStr/g 替换所有选中内容
:r fileOther.txt 导入文件
:! 操作系统命令 命令行模式下使用系统命令
同时打开多个文本
vi -o file1 file2 纵向/ vi -O file1 file2 横向
文件间的切换: ctrl + ww