【VI的工作模式】
1.命令模式
2.插入模式
3.末行模式
【常用VI命令及解释】
命令模式
Esc 退出或进入命令模式
i 在光标前插入
I 在行首插入
a 在光标后插入
A 在行末插入
s 剪切光标后一个字符,并变为插入模式
S 剪切光标所处的一行,并变为插入模式
o 在当前行的下面另起一行,并变为插入模式
O 在当前行的上面另起一行,并变为插入模式
(文本的剪切、复制、粘贴及撤销)
x 剪切后一个字符
X 剪切前一个字符
nx 剪切光标后的n个字符
dd 剪切一行(delete中的‘d’)
D 剪切到行尾
ndd/nD 剪切n行/剪切到n行行尾
J 删除换行符,使下一行并上来
nJ 连接后面的n行
Y/yy 复制整行
yw 复制一个单词
nyy 复制从当前行开始的n行
p 在下一行粘贴(paste中的‘p’)
P 在上一行粘贴
u 撤销上一次操作(undo中的‘u’)
U 撤销当前行的所有修改
ctrl+r 对撤销的撤销
(光标的移动)
k/j/h/l或方向键上下左右 上下左右
/关键字 找关键字,按n键可以跳到下一个,N上一个
^/0 移动到行首
$ 移动到行尾
w 右移一个字,光标处于下一个字的字首(forword中的‘w’)
nw 右移n个字,光标处第于n个字的字首
b 左移一个字,光标处于下一个字的字首(back中的‘b’)
nb 左移n个字,光标处于第n个字的字首
( 移到本句的句首,若已位于句首,则移动至前一句的句首
) 移到下一句的句首
{ 移到本段的段首,若已位于段首,则移动至前一段的段首
} 移到下一段的句首
+ 移动到下一行的行首
- 移动到上一行的行首
将光标放在“{”处,然后输入v%就可以吧大括号中内容选定
如果光标放在第一个s上,想删除到“(”为止,则输入dt(就可以了,t(的作用是 跳到下一个“(”前
% 跳到相对应的括号上 编程时常用
nG 跳转到第n行行首,此时按``可以返回到原来行位置,按''可以返回到原来行行首
gg/1G 移动到文件首行的行首
G 移动到文件末行的行首
<Ctrl>+g 报告光标所处的位置,位置信息显示在VI的最后一行
ctrl+u/d 向上/下滚动半屏
ctrl+y/e 向上/下滚动一行
ctrl+b/f 向上/下滚动一屏 这个比较实用,记住
zz 将当前行滚动于屏幕中间,方便查看上下文
zt 将当前行滚动于屏幕顶部,方便查看下文
zb 将当前行滚动于屏幕底部,方便查看上文
ps:遇到'.'或'?'或'!',VI认为是一句的结束,VI以空白行来作为段的开始或结束
末行模式
n1,n2y 复制n1到n2行
n1,n2d 删除n1到n2行
n1,n2mn3 n1到n2剪切到n3后
n1,n2con3 n1到n2复制粘贴到n3后
set number/nu 显示行号
set nonu 隐藏行号
【常用VI的简单配置】
set number 显示行号
set cursorline 突出显示当前行
set tabstop=4 tab长度设置为4
set ruler 在右下角显示光标位置的状态行
set autoindent 自动对齐,使用上一行的
syntax on 打开语法高度显示
set smartindent 智能对齐方式
set shiftwidth=4 设置对齐时的缩进长度
set tabstop=4 设置TAB缩进长度
set mouse=a 允许使用鼠标移动光标
map<Fn> : 第 行模式下的命令<CR>
map<Fn> 视图模式下命令命令
1.命令模式
2.插入模式
3.末行模式
【常用VI命令及解释】
命令模式
Esc 退出或进入命令模式
i 在光标前插入
I 在行首插入
a 在光标后插入
A 在行末插入
s 剪切光标后一个字符,并变为插入模式
S 剪切光标所处的一行,并变为插入模式
o 在当前行的下面另起一行,并变为插入模式
O 在当前行的上面另起一行,并变为插入模式
(文本的剪切、复制、粘贴及撤销)
x 剪切后一个字符
X 剪切前一个字符
nx 剪切光标后的n个字符
dd 剪切一行(delete中的‘d’)
D 剪切到行尾
ndd/nD 剪切n行/剪切到n行行尾
J 删除换行符,使下一行并上来
nJ 连接后面的n行
Y/yy 复制整行
yw 复制一个单词
nyy 复制从当前行开始的n行
p 在下一行粘贴(paste中的‘p’)
P 在上一行粘贴
u 撤销上一次操作(undo中的‘u’)
U 撤销当前行的所有修改
ctrl+r 对撤销的撤销
(光标的移动)
k/j/h/l或方向键上下左右 上下左右
/关键字 找关键字,按n键可以跳到下一个,N上一个
^/0 移动到行首
$ 移动到行尾
w 右移一个字,光标处于下一个字的字首(forword中的‘w’)
nw 右移n个字,光标处第于n个字的字首
b 左移一个字,光标处于下一个字的字首(back中的‘b’)
nb 左移n个字,光标处于第n个字的字首
( 移到本句的句首,若已位于句首,则移动至前一句的句首
) 移到下一句的句首
{ 移到本段的段首,若已位于段首,则移动至前一段的段首
} 移到下一段的句首
+ 移动到下一行的行首
- 移动到上一行的行首
将光标放在“{”处,然后输入v%就可以吧大括号中内容选定
如果光标放在第一个s上,想删除到“(”为止,则输入dt(就可以了,t(的作用是 跳到下一个“(”前
% 跳到相对应的括号上 编程时常用
nG 跳转到第n行行首,此时按``可以返回到原来行位置,按''可以返回到原来行行首
gg/1G 移动到文件首行的行首
G 移动到文件末行的行首
<Ctrl>+g 报告光标所处的位置,位置信息显示在VI的最后一行
ctrl+u/d 向上/下滚动半屏
ctrl+y/e 向上/下滚动一行
ctrl+b/f 向上/下滚动一屏 这个比较实用,记住
zz 将当前行滚动于屏幕中间,方便查看上下文
zt 将当前行滚动于屏幕顶部,方便查看下文
zb 将当前行滚动于屏幕底部,方便查看上文
ps:遇到'.'或'?'或'!',VI认为是一句的结束,VI以空白行来作为段的开始或结束
末行模式
n1,n2y 复制n1到n2行
n1,n2d 删除n1到n2行
n1,n2mn3 n1到n2剪切到n3后
n1,n2con3 n1到n2复制粘贴到n3后
set number/nu 显示行号
set nonu 隐藏行号
【常用VI的简单配置】
set number 显示行号
set cursorline 突出显示当前行
set tabstop=4 tab长度设置为4
set ruler 在右下角显示光标位置的状态行
set autoindent 自动对齐,使用上一行的
syntax on 打开语法高度显示
set smartindent 智能对齐方式
set shiftwidth=4 设置对齐时的缩进长度
set tabstop=4 设置TAB缩进长度
set mouse=a 允许使用鼠标移动光标
map<Fn> : 第 行模式下的命令<CR>
map<Fn> 视图模式下命令命令