标签:vim模式转换 命令模式下的操作 扩展模式下的操作 vim多文件模式 vim多窗口模式 vim编辑二进制文件
linux文本编辑之王——vim
vim:全屏的、模式化的文本编辑器
vi:visual interface
vim:vi improved(vi增强版)
一、vim [options] [file ..]
vim file 打开或新建一个文件
如果该文件存在,文件被打开并显示内容
如果该文件不存在,当编辑后第一次存盘时创建它
vim +# file 打开文件,并让光处于第#行
vim + file 打开文件,并让光处于文件末行vim + file 打开文件,并让光处于文件末行
vim + /pattern file 打开文件,让光标处于第一个被PATTERN匹配到的行的行首
vim –b file 二进制方式打开文
vim –d file1 file2… 比较多个
vim -m file 以只读方式打开文件
vim –e file 打开文件后,直接进入扩展命令模式
二、击键行为是依赖于 vim的 “模式”
vim三种主要模式:
命令模式(默认):移动光标,剪切/粘贴文本
输入(编辑)模式:修改文本
扩展命令模式:保存,退出等
三、vim模式转换:
1,命令模式——>输入模式
i:在当前光标所在字符的前面,转为输入模式
a:在当前光标所在字符的后面,转为输入模式
o:在当前光标所在行的下方插入新行,并转为输入模式
I:在当前光标所在行的行首,转为输入模式
A:在当前光标所在行的行末,转为输入模式
O:在当前光标所在行的上方插入新行,并转为输入模式
2,命令模式——>扩展模式 :——冒号
创建一个命令提示符,处于底部的屏幕左侧
3,编辑模式——>命令模式 ESA按键
4,扩展模式——>命令模式 ESA按键
5,编辑模式无法直接转换到扩展模式
6,锁定和解锁 Ctrl+s,Ctrl+q
四、关闭文件
1,命令模式:
ZZ 保存并退出
ZQ 不保存退出
2,扩展模式:
:w 保存
:q 退出
:wq 保存并退出
:x 保存并退出 等同于:wq
:q! 不保存退出
:w! 强行保存
五、扩展命令模式下的常用命令:
r filename 从其它文件中读取内容到当前文件中
w filename 将当前文件另存为一个新文件
addr1,addr2w filename 将当前文件的第#行到第#行另存为一个新文件
!command 直接启动其它命令,执行完成之后,按ENTER键返回vim界面
r!command 直接启动其它命令,并把执行结果插入到当前位置
#d 删除第#号
#,#d 删除第#行到第#行
1G 跳转到文件首行
G 跳转到文件末行
六、命令模式下的操作:
1,移动光标:
k:上 j:下 h:左 l:右
#(kjhl)上下左右跳转#
2,行内跳转:
^: 跳转至行首的第一个非空白字符;
0: 跳转至行首
$: 跳转至行尾
3,句子间跳转:(——上一句 )——下一句
4,段落间跳转{——上一段 }——下一段
5,文件首尾行跳转[[——首行 ]]——尾行
6,翻屏操作
Ctrl+f: 向文件尾部翻一屏
Ctrl+b: 向文件首部翻一屏
Ctrl+d: 向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
7,字符编辑:
x: 删除光标处的字符;
#x: 删除光标处起始的连续#个字符
xp: 交换光标所在处的字符及其后面字符的位置
~:转换大小写
8,替换命令(r, replace)
r: 替换光标所在处的字符
R:切换成REPLACE替换模式
9,删除命令:
dd,D: 删除光标所在的行
#dd:删除连续的多行
d$: 删除光标所在处到行尾(留有空行)
d^:删除光标所在处到非空行首
d0:删除光标所在处到绝对行首
10,删除字符的后(留有空行)转为输入模式:
cc,C: 复制光标所在的行后转输入模式
#cc:删除连续的多行后,转为输入模式
c$: 删除光标所在处到行尾后,转为输入模式
c^:删除光标所在处到非空行首后,转为输入模式
c0:删除光标所在处到绝对行首后,转为输入模式
11,复制命令:
yy,Y: 复制光标所在的行
#yy:复制连续的多行
y$: 复制到行尾
y^:复制光标所在处到非空行首
y0:复制光标所在处到绝对行首
12,粘贴命令:
p(小写):如果删除或复制的内容为整行,则粘贴至光标所在行的下方
如果删除或复制的内容为非整行,则粘贴至光标所在字符的后面
P(大写):如果删除或复制的内容为整行,则粘贴至光标所在行的上方
如果删除或复制的内容为非整行,则粘贴至光标所在字符的前面
13,#i“Input”:自动复制“Input”并粘贴#次
14,撤消更改
u撤销最近的更改
#u撤销之前多次更改
U 撤消光标落在当前行后所有对此行的更改
按Ctrl+r重做最后的“撤消”更改
. 重复前一个操作
n.重复前一个操作n次
七、扩展模式下的操作:
1,地址定界
#: 具体第#行
#,#: 从第#行开始,到第#行结尾
#,+#: 从第#行开始,向后延续#行
.: 当前行
$: 最后一行
.,$-1 当前行到倒数第二行
%:全文, 相当于1,$
/pat1/,/pat2/ 从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
#,/pat/从第#行开始,一直到第一次被pat匹配到的行结束
/pat/,$从第一次被pat1模式匹配到的行开始,一直到文件尾行
2,行间移动:
#G:跳转至第#行
G:跳转至最后一行
1G, gg: 跳转至第一行
3,查找
/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
n:与命令同方向
N:与命令反方向
4,查找并替换
s: 在扩展模式下完成查找替换操作
格式:s/PRTTERN/STRING/修饰符
s///或者s@@@或者s###
PATTERN:可使用正则表达式
STRING:不能使用模式,但可以使用\1, \2, (后项引用)
可以使用“&”引用前面查找时查找到的整个内容
修饰符:
i: 忽略大小写
g: 全局替换;默认情况下,每一行只替换第一次出现
gc:全局交互替换,每次替换前询问
5,可视化模式
允许选择文本块
v 面向字符
V 面向行
ctrl-v 面向块
可视化键可用于与移动键结合使用:
kjhl , ) , } ,方向箭头
突出显示的文字可以被删除,复制,变更,过滤,查找替换
八、vim多文件模式
vim FILE1 FILE2 ...
:next 下一个
:prev 上一个
:first 第一个
:last 最后一个
:wall 保存所有文件
:qa,:qall 退出所有
:wqa,:wqall 保存并退出所有
九、vim多窗口模式
1,单文件多窗口
Ctrl+w,s: split, 水平分割
Ctrl+w,v: vertical, 垂直分割
2,多文件多窗口
vim -o|-O FILE1 FILE2 ...
-o: 水平分割
-O: 垂直分割
3,窗口间切换:
Ctrl+w按两次自动跳转到下一个窗口
Ctrl+w,kjhl方向键
4,取消多窗口
ctrl+w,q:取消相邻窗口
ctrl+w,o:取消全部窗口
:wqall 保存并退出所有文件
十、vim寄存器
有a-z 26个字母命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容
字母命名寄存器可以在不同会话间共享
如:3"tyy 表示复制3行到t寄存器中
"tp 表示将t寄存器内容粘贴到当前位置
未指定,将使用无命名寄存器
有10个数字命名寄存器,用0-9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到2,2转存到3,以此类推。
数字命名寄存器不能在不同会话间共享
十一、vim编辑二进制文件
以二进制方式打开文件 vim –b binaryfile
扩展命令模式下,利用xxd命令转换为可读的十六进制格式 :%!xxd
编辑十六进制文件
扩展命令模式下,利用xxd命令转换回二进制 :%!xxd –r
保存退出
十二、vim工作特性定制
扩展模式:当前vim进程有效
更改配置文件:永久有效
全局:/etc/vimrc
个人:~/.vimrc(没有此文件时可自行建立)
1,行号
set nu:set number显示行号
set nonu:set nonumber取消显示
2,自动缩进
set ai:启用
set noai:禁用
3, 搜索高亮
set hlsearch:启用
set nohlsearch:禁用
4, 语法高亮
syntax on:启用
syntax off:禁用
5, 忽略字符的大小写
set ic:忽略
set noic:不忽略
6, 括号成对匹配
set sm:set showmatch 启用
set nosm:set noshowmatch 禁用
7, 文件格式
set fileformat=unix 设置文件格式为unix格式
set fileformat=dos 设置文件格式为dos格式
8, 设置文本宽度(只能用于vim)
默认宽度80个字符
:set textwidth=65 设置左侧宽度
:set wrapmargin=15 设置右侧宽度
9,设置tab宽度
set ts(tabstop)=#
本文出自 “爱情防火墙” 博客,请务必保留此出处http://183530300.blog.51cto.com/894387/1836182
标签:vim模式转换 命令模式下的操作 扩展模式下的操作 vim多文件模式 vim多窗口模式 vim编辑二进制文件
原文地址:http://183530300.blog.51cto.com/894387/1836182