vim
常用选项
+# 打开文件后,让光标处于第#行的行首,+默认行尾
+/PATTERN 让光标处于第一个被PATTERN匹配到的行行首
-b file 二进制方式打开文件
-d file1 file2… 比较多个文件,相当于 vimdiff
-m file ? 只读打开文件
-e file ? 直接进入ex模式,相当于执行ex file
-y file ? Easy mode (like "evim", modeless),直接可以操作文件,ctrl+o:wq|q! 保存和不
保存退出
#编辑模式转输入模式
i:insert
a:append 光标所在处后方输入
I:光标所在处首行
A:光标所在处尾行
o:光标所在处下方打开一个新行
O:光标所在处上方打开一个新行
一次编辑多个文件例如:
[root@localhost ~]# vim issue fstab yum.conf -o
-o 上下分隔 ctrl+w+左右镜头切换
-O 水平分隔 ctrl+w+上下切换
打开多个文件跳转:
:next 下一个
:prev 上一个
:first 第一个
:last 最后一个
:qall 退出所有文件
:wqll 修改并退出所有文件
行首行尾跳转 ^ $
行间移动 #G #gg
1G 或1gg 跳到首行
G 跳到最后一行
x 删除光标所在处的字符
例如4x表示删除4个字符
d^ 删除光标之前的全部删除
d$ 删除光标所在行到尾部
dd删一行
#dd 删除光标所在行的后#行
复制
yy 复制一行
#yy 光标所在处向下复制#行
p小写向下粘贴
P大写向上粘贴
u 撤销之前的操作,如果错误操作
Ctrl+r 反撤销
50u 最多撤销50次
ZZ (大写)保存退出
翻屏
Ctrl +f 向文件尾部翻一屏
Ctrl+b 向文件首部翻一屏
Ctrl+d 向文件尾部翻半屏
Ctrl+u 向文件首部翻半屏
查找:
/keyword #查找支持正则表达式
? Keyword
n:往下翻查找结果
N:往上翻查找
可视化模式
-v 让光标走过的区域选择
-V 选择区域
Ctrl +v 使用这种方式注释选择行
例如:Ctrl +v shift+i # ESC
x可以删除内容
:set nu 设置行号
:set nonu 取消行号
:set ic 忽略大小写
:set noic
:set ai 设置对齐
:set noai 取消对齐
:set paste 保留原来的格式
显示Tab和换行符 ^I 和$显示
启用:set list
禁用:set nolist
支持正则表达式
:1,5d 1-5行全部删除
:.,+3d 当前行到后3行删除
:1,5/^#/d 第一行到第五行所有以#开头的全部删除
:1,5s#root#admin#g 1~5行的root全部替换为admin
:%s#root#admin#g 全文替换
i忽略大小写
替换:s 修饰符
s#/boot#/#i
s@/etc@/var@g 用@就不用转义了
:.,$d 当前行到最后一行删除
:.,$-1
:.,$-2
:.,$d 当前行到最后一行删除
:3,6d 第三行到最后一行都删除
:3,6y 第三行到第六行复制
:%d 删除全文
:%w f4.txt 会自动在当前的路径下创建一个f4的文件,且将内容写入到f4文件 :r /etc/passwd 将当前的文件的内容复制到现在正在编辑的文件的里面
:r!hostname -I 命令的执行结果写入当前正在编辑的文本 (r后面跟着文件 r!后面接的命令)
:!hostname 不退出在shell里面执行命令
:X 这一步加密
解密
:set key=
===========================================================================
p 粘贴在后面行
P 张贴在前面行
% 全局条件下
:set nu 设置行号
:set nonu 取消行号
:x 保存退出,如果内容没有更改就不会更新时间戳
格式:/xxx/xxx/ 三条固定的斜线之间插内容
/ / /三条斜线可以用@代替
:1,$s/^#// 第一行到最后一行所有行首的#全部替换空
:1,$s/^b/\/\// 第一行到最后一行所有行首以b开头的行全部替换为 //
:1,$s/^\/\//#/ 第一行到最后一行把那两条斜线替换为#号
窗口属性:
例如/etc/passwd 文件
:syntax on 打开语法高亮
off 关闭语法高亮
搜索高亮
:set hisearch
:set nohlsearch #取消高亮
:x 保存退出,如果内容没有更改就不会更新时间戳
:X 加密 解密的话输入两次空
替换:s 修饰符
g:全局替换
i:查找不区分大小写替换
格式:/xxx/xxx/ 三条固定的斜线之间插内容
/ / /三条斜线可以用@代替
:1,$s/^#// 第一行到最后一行所有行首的#全部替换空
:1,$s/^b/\/\// 第一行到最后一行所有行首以b开头的行全部替换为 //
:1,$s/^\/\//#/ 第一行到最后一行把那两条斜线替换为#号
窗口属性:
:syntax on 打开语法高亮
off 关闭语法高亮
搜索高亮
:set hisearch
:set nohisearch 简写为:nohi
:set ff=doc 将linux的格式转换为windows格式
:set ff=unix 将window的格式转换为linux的格式
:set cul 在某一行显示横线
============================================================
Tab来指定代表的空格的个数
启用:set expandtab 默认是八个
set noexpandtab
简写:
set et
set ts=4 指定为四个
===========================================
输入模式
当前页跳转:
H:页首 M:页中间行 L:页底
zt:将光标所在当前行移到屏幕顶端
zz:将光标所在当前行移到屏幕中间
zb:将光标所在当前行移到屏幕底端
ZZ 保存退出
ZQ 不保存退出
h左 l 右 j 下 k 上
dw 删除当前单词所在位置到这个单词的词尾
de 单前单词所在位置到下一个单词的词尾
3dd 当前行到后三行全部删除
u 撤回
ctrl r 回撤
U 撤回整行,不能离开此行
w 下一个单词的词首
e 当前的单词词尾
b 往前,上一个单词的词首
行首行尾跳转:
^ 跳转至行首的第一个非空白字符
0 跳转至行首,不管有没有空白符
$ 跳转至行尾
行间移动:
#G 或者扩展命令模式下 :# 跳转至由第#行
G 最后一行
1G, gg 第一行
句间移动:
) 下一句 ( 上一句
段落间移动:
} 下一段 { 上一段
命令模式翻屏操作
Ctrl+f 向文件尾部翻一屏
Ctrl+b 向文件首部翻一屏
Ctrl+d 向文件尾部翻半屏
Ctrl+u 向文件首部翻半屏
x 不切换输入模式删除,其实是剪切
xp 两个字母交换位置 x剪切的意思 剪切加粘贴
~自动转化为大写
J 两行凑一行
r替换一个字母
R 输入啥就替换啥
d 删除命令,可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dw
de
db
#COMMAND
dd: 剪切光标所在的行
#dd 多行删除
D:从当前光标位置一直删除到行尾,等同于d$
复制命令(yank)
y 复制,行为相似于d命令
y$
y0
y^
ye
yw
yb
#COMMAND
yy:复制行
#yy 复制多行
Y:复制整行
粘贴命令(paste)
p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
P 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
c: 删除后切换成插入模式
c$
c^
c0
cb
ce
cw
#COMMAND
cc:删除当前行并输入新内容,相当于S
#cc
C:删除当前光标到行尾,并切换成插入模式,相当于c$
查找
/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
n:与命令同方向
N:与命令反方向
撤消更改
u 撤销最近的更改,相当于windows中ctrl+z
#u 撤销之前多次更改
U 撤消光标落在这行后所有此行的更改
Ctrl - r 重做最后的“撤消”更改,相当于windows中crtl+y
. 重复前一个操作
#. 重复前一个操作#次
============= ===================================================================
高级用法:
0y$ 复制整行
100iwang 将wang粘贴100次
先输入100,再按esc 再输入i 然后wang ,最后esc键
删除引号之间的内容: 光标在引号之间,按d 再i 最后双引号
di[] 删除括号中的内容 ,前提是光标在括号里
===================
多文件编辑:
vim f1 f2 f3 f4
:next 下一个
;perv 上一个
:first 第一个
:wall 保存所有
:qall不保存退出所有
:wqall 保存退出所有
可视化模式
在末行有”-- VISUAL -- “指示,表示在可视化模式
允许选择的文本块
v 面向字符,-- VISUAL --
V 面向整行,-- VISUAL LINE --
ctrl-v 面向块,-- VISUAL BLOCK --
可视化键可用于与移动键结合使用
w ) } 箭头等
突出显示的文字可被删除,复制,变更,过滤,搜索,替换等
=========================================
范例:在文件行首插入#
输入ctrl+v 进入可视化模式
输入 G 跳到最后1行,选中每一行的第一个字符
输入 I 切换至插入模式
输入 #
按 ESC 键
VIM