vim编辑器

五种模式切换

在这里插入图片描述

命令模式–>插入模式
i insert,在光标所在处输入
I 在当前光标所在行的行首输入
a append,在光标所在处后面输入
A 在当前光标所在行的行尾输入
o 在当前光标所在行的下方打开一个新行
O 在当前光标所在行的上方打开一个新行
命令模式->可视化模式
v 面向字符
V 面向行
Ctrl+v 面向块

常用选项

+# 打开文件后,让光标处于第#行的行首,+默认行尾
+/PATTERN 让光标处于第一个被PATTERN匹配到的行的行首
-b 二进制方式打开文件
-d 加多个文件,比较多个文件
-m 只读方式打开文件
-e 直接进入ex模式

命令模式

ZZ 保存退出
ZQ 不保存退出

光标跳转

字符间跳转:
h:左 l:右 j:上 k:下
#COMMAND:跳转由#指定个数的字符
单词间跳转:
w:下一个单词的词首
e:当前或下一个单词的词尾
b:当前或前一个单词的词首
#COMMAND:由#指定依次跳转的单词数
当前页跳转:
H:页首 M:页中间行 L:页底
zt:将光标所在当前行移到屏幕顶端
zz:将光标所在当前行移到屏幕中间
zb:将光标所在当前行移到屏幕底端
行首行尾跳转:
^ 跳转至行首的第一个非空白字符
0 跳转至行首
$ 跳转至行尾
行间移动:
#G 或者扩展命令模式下:# 跳转至第#行
G 最后一行
1G,gg 第一行
例:命令模式执行,dG 删除当前行到最后一行的内容
句间移动:
)下一句 ( 上一句
被“.”隔开的算一句
段落间移动:
}下一段 { 上一段
命令模式翻屏操作
Ctrl+f 向文件尾部翻一屏,前后屏之间有两行衔接行
Ctrl+b 向文件首部翻一屏,前后屏之间有两行衔接行
Ctrl+d 向文件尾部翻半屏
Ctrl+u 向文件首部翻半屏
字符编辑
x 删除光标处的字符
#x 删除光标处起始的#个字符
xp 交换光标出的字符及其后面字符的位置
~ 转换大小写
J 删除当前行后的换行符
r 替换光标处所在的字符

删除复制粘贴查找撤销

剪切命令(相当于删除)
d 删除命令,可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dw 删除当前光标处到下一个单词的词首
de 删除当前光标处到当前或下一个单词的词尾
db 删除当前光标处到当前或前一个单词的词首
#command
dd 删除光标所在行
#dd 多行删除
D 从当前光标位置一直删除到行尾,等价于d$
复制命令(y,yank)
y 复制命令,用法与d命令类似
……
yy 复制整行
#yy 复制多行
Y 复制整行
粘贴命令(p,paste)
p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,粘贴到当前光标所在处后面
P 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,粘贴到当前光标所在处的前面
删除命令(c,change 删除后进入插入模式)
c 用法与剪切删除类似
……
查找
/PATTERN 从当前光标位置向文件尾部查找
?PATTERN 从当前光标位置向文件首部查找
n 与命令同方向
N 与命令反方向
撤销
u 撤销最近的更改
#u 撤销之前多次更改
U 撤销光标所在行的所有更改
Ctrl+r 重做最后的撤销更改
. 重复前一个操作
#. 重复前一个操作#次
其他
di" 光标在“ ” 之间,则删除“ ”之间的内容
yi( 光标在()之间,则复制()之间的内容
vi[ 光标在[] 之间,则选中[]之间的内容

扩展命令模式

地址界定

地址定界
:start_pos,end_pos
# 具体第#行,例如2表示第2行
#,# 从左侧#表示起始行,到右侧#表示结束行
#,+# 从左侧#表示的起始行,加上右侧#表示的行数
示例:2,+3 表示2到5行
. 当前行
$ 最后一行
.,$-1当前行到倒数第二行
% 全文,相当于第一行到最后一行

/pattern/ 匹配pattern的行
/pat1/,/pat2/ 从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
使用方式:后面跟一个编辑命令
d
y
w file:将范围内的行另存至指定文件中
r file:在指定位置插入指定文件中的所有内容

查找并替换

格式::[range]s/{pattern}/{string}/[flags] [count]
pattern:要查找的内容,可使用模式
string:要替换成的内容,不能使用模式,但可以使用\1,]2,…登后向引用符号;还可以使用“&”引用前面查找到的整个内容呢
该命令在[range]中的每一行中搜索{pattern},并将其替换为{string}。 是与命令[count]相乘的正整数。
如果未给出[range]和[count],则仅替换当前行中找到的pattern。 当前行是光标所在的行。
修饰符:
i 忽略大小写
g 全局替换,默认情况下,每一行之替换第一次出现
gc 全局替换,每次替换前询问
查找替换中的分隔符/可替换为其他字符
s@han@hua@g
s#han#hua#i

vim的寄存器

vim有26个命令寄存器和1个无名寄存器,长存放不通的剪切板内容,可以不同会话间共享
寄存器名称a,b……z26个字母,格式:"寄存器 放在数字和命令之间
如:3"tyy 表示复制3行到t寄存器中
"tp 表示将t寄存器内容粘贴
未指定,将使用无名寄存器
有10个数字寄存器,用0,1……9表示,0表示存放最难复制的内容,1存放最近删除的内容。当新的文本变更和删除时,1转存到2,2转存到3,以此类推。数字寄存器不能在不同会话间共享。

使用多个“窗口”

多文件分隔
vim -o|-O file1 file2 …
-o:水平分隔
-O:垂直分隔
在窗口间切换:Ctrl+w,Arrow
单文件窗口分隔
Ctrl+w,s split,水平分割
Ctrl+w,v vertical,垂直分割
Ctrl+w,q 取消相邻窗口
Ctrl+w,o 取消全部窗口
:wqall 退出

定制vim的工作特性

配置文件:永久生效
全局:/etc/vimrc
个人:~/.vimrc
扩展命令模式:当前vim进程有效
行号:
显示:set number,简写 set nu
取消显示:set nonumber,简写 set nonu
忽略大小写(查找时使用)
启用:set ignorecase,简写 set ic
不忽略:set noic
自动缩进
启用:set autoindent,简写 set ai
禁用:set noai 默认自动缩进未启用
复制保留格式
启用:set paste
禁用:set nopaste
显示Tab和换行符^I和$显示
启用:set list
禁用:set nolist
高亮搜索
启用:set hlsearch
禁用:set nohlsearch
语法高亮
启用:syntax on
禁用:syntax off
文件格式
启用windows 格式:set fileformat=dos
启用unix格式:set fileformat=unix
简写 set ff=dos|unix
设置光标所在行的标识线
启用:set cursorline ,简写 set cul
禁用:set nocursorline
设置tab缩进个数为4个空格
set tabstop=4

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩华盛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值