vi(vim)简单操作手册

vi vim (增强版vi,现在各版本的linux都带有vim)

三种模式:
普通模式:控制光标移动,删除字符,段落复制(按ESC)
编辑模式:包含插入模式和替换模式,新增文字和修改文字
命令行模式/末行模式:保存文字,离开vim,以及其它设置

vim newfile 新建一vim空白文件进行编辑

普通模式
编辑模式下按ESC切换为普通模式
命令 说明

移动:

h 将光标向左移动一格
l 将光标向右移动一格
j 将光标向下移动一格
k 将光标向上移动一格
^ 光标移动到行首,即第一有效字符位置
0 将光标移动到该行的行首,行的第一格位置
$ 将光标移动到行尾
H 将光标移动到该屏幕的顶端
M 将光标移动到该屏幕的中间
L 将光标移动到该屏幕的底端
gg 将光标移动到文章的首行
G 将光标移动到文章的尾行
w 将光标移动到下一单词
b 将光标移动到上一单词
e 将光标移动到下一单词,光标到下一单词词尾
W 和w功能一样,只不过以.或-或)字符为分界
B 和b功能一样,只不过以.或-或)字符为分界
E 和e功能一样,只不过以.或-或)字符为分界
f f后跟一字符可直接跳到本行光标之后有此字符位置
F F后跟一字符可直接跳到本行光标之前有此字符位置
t 和f一样功能,只不过光标停在要搜索字符前一字符位置
T 和T一样功能,只不过光标停在要搜索字符后一字符位置
zt 将当前位置置于屏幕顶端
zb 将当前位置置于屏幕底端
zz 将当前位置置于屏幕中间
zf 创建折行
zc 折叠
zo 打开折叠
% 跳到匹配的括号
Ctrl+u 将窗口向上移动半屏
Ctrl+d 将窗口向下移动半屏
Ctrl+f 向前滚动一整屏
ctrl+b 向后滚动一整屏
ctrl+g 在窗口下方显示信息,告诉当前文件中的位置和文件名等
Ctrl+o 跳到上次光标位置
‘’ 跳到上次光标位置,和ctrl+o不同,它只能和上一次光标位置和当前位置来回跳转
ctrl+i 和ctrl+o功能相反
m 有名标记,在想要做标记位置按ma, 再到移动其它地方,当想回到做标记位置时,按’a就跳回做标记位置

简单搜索:

/ /后跟要搜索的关键词
n 移到下一个找到关键词位置
/\ 找以the结尾的关键词
/t.e 中间替换任何一个字符搜索关键词
* 移动关键词按*,会自动高亮,再按n就可查找此关键词

操作符命令:

x 删除当前光标下的字符,相当于dl,d 和 l的组合使用
X 删除当前光标前一个字符,相当于dh
u 恢复上一次命令,针对字符
U 恢复上一次命令,针对行
ctrl+r 和u相匹配重做
r 替换当前光标位置字符
dw 删除一个单词
D 删除当前光标后面所有字符,相当于d$
d^ 删除当前光标前面所有字符
d0 删除当前光标前所有的字符,置行首
dd 删除一行
c 和d功能一样,只不过删除完会进入插入模式
yy 选定光标所在行复制
p 粘贴yy复制的行,贴在光标所在位置之右
P 粘贴yy复制的行,贴在光标所在位置之左
cw 删除光标所在的单词并且进入插入状态
R 进入替换模式
i 在当前位置进入插入模式
I 将光标移动到行首进入插入模式
o 在本行向下新建一行进入插入模式
O 在本行向上新建一行进入插入模式
a 将光标之后进入插入模式
A 将光标移动到行尾进入插入模式
s 删除光标位置字符进入插入模式,相当于cl
S 删除光标所在行进入插入模式,相当于cc
. 重复上一次命令
~ 改变当前光标下字符的大小写
v 进入字符可视模式
V 进入行可视模式

可视模式:

vjjjjd 选中四个字符删除
Ctrl+v 可选择列进行操作

d 和 p 组合使用
d 删除相当于剪切,并没有完全丢掉,再按p可以粘贴

交换两个字符
x和p组合使用

命令行模式:

: 进入命令行模式

filetype plugin indent on
开启自动识别文件类型,自动用对应文件类型的搭配编辑选项

map ihello 键盘映射F5插入hello单词

set number 显示行号
set nonumber 关闭行号,所有命令前加no为关闭
set ruler 在右下角显示当前光标位置
set autoindent 开始新行时对该行施行上一行缩进方式
set nocompatible 不完全与Vi兼容,所以确保关闭
set nowrap 不要折行显示
set list 显示制表符
syntax enable 打开色彩
colorscheme evening 切换颜色方案

set ignorecase 忽略大小写搜索
set hlsearch 在关键词上按*,自动高亮
set incsearch 搜索时输入一个字符会自动跳到匹配位置,按回车再确定是否要搜索此关键词
set nowrapscan 搜索到头就停止,默认搜索到头会到最后一个匹配位置

marks 查看关于标记的列表
scriptnames 查看vimrc的具体名称和位置
options 新窗口注释选项列表

split 横分一新窗口
3split 指定新分的窗口高度为3
vsplit 竖分一新窗口
3vsplit 指定新分窗口宽度为3

Ctrl+w w 窗口之间切换

! 执行shell命令
r! 执行shell命令并把结果插入到当前光标位置
o 后面跟文件路径,可以横分屏打开文件
O 后面跟文件路径,可以竖分屏打开文件
w 保存
q 退出
qall 全部退出
wqall 全部保存退出
qall 全部强制退出

s/if/hello/ 把本行的第一个if替换成hello
1,$s/if/hello/ 把第一行到最后一行的每行的第一个if替换成hello
1,$s/if/hello/g 把第一行到最后一行的每行的if替换成hello
:240 快速定位到240行

打开多个文档

vim -o a.txt b.txt 横屏打开两文件
vim -O a.txt b.txt 竖屏打开两文件
vim a.txt +42 打开a.txt光标定到42行