当前位置:网站首页>15、文本编辑工具VIM使用
15、文本编辑工具VIM使用
2022-07-07 12:47:00 【51CTO】
VIM使用格式
vim [option] ...file ...
常见选项
+# 打开文件后,让光标处于第#行
+/pattern 让光标处于第一个呗pattern匹配到的行行首
-b file 二进制方式打开文件
-d file1 file2 ... 比较多个文件,相当于vimdiff
-m file 只读打开文件
-e file 直接进入ex模式,相当于ex file
-y file easy mode直接看操作文件
VIM三种模式
vim有三种模式(命令或普通模式、插入或编辑模式、扩展命令模式)
三者之间需要进行转换
扩展命令模式
在命令模式中,在英文字符下,按住shift+:(输入:)进入扩展命令模式,底部会出现:
扩展命令基本命令
w 写入保存
wq 写入保存退出
x等同于wq
X加密
q退出
q!强制不保存退出
r filename 读文件内容到当前文件中
w filenamen 将当前文件写入到另一个文件中(另存为)
!commad 执行命令
r!command 读入命令的输出
地址定界
格式:开始,结束
# 具体第#行
#,#从左侧#开始 #结束
#,+# 从#开始,#+#结束
. 当前行
$ 最后一行
% 全文,相当于1,$
/pattern/ 从当前行向下查找匹配到pattern第一行
/pattern1/,/pattern2/ 从第一次pattern1匹配行开始到第一次被pattern2匹配行结束
地址定界后跟一个编辑命令
y 复制
d 删除
w file 指定文件另存为
r file 在指定位置插入指定文件中的所有内容
查找和替换
s/要查找的内容/替换为的内容/修饰符
说明:后面如无修饰符,只匹配一次要查找内容进行替换,后面需要加g修饰符,进行全局替换;如遇到查找到内容中包含/,可使用其他分隔符;如 [email protected]/[email protected]/[email protected] 该命令使用@替换/分隔符
修饰符
i 忽略大小写
g 全局替换
gc 全局替换,每次替换前询问
定制vim的工作特性
全局 /etc/vimrc 个人 ~/.vimrc
设置行号显示 set number 简写 set nu
取消行号显示 set nonumber
忽略字符大小写启用 set ignorecase 简写 set ic
取消忽略大小写 set noic
自动缩进 set autoindent 简写 set ai
取消自动缩进 set noai
复制保留格式 set paste
取消复制保留格式 set nopaste
显示tab和换行符 set list 禁用set nolist
高亮搜索 set hlsearch 禁用 set nohlsearch
语法高亮 syntax on 禁用 syntax off
文件格式 windows set fileformat=dox unix set fileformat=unix(set ff=dos|unix)
tab用空格代替 set expandtab (set et 默认8个空格) 禁用 set expandtab
指定tab多少个空格代替 set tabstop=#
设定文本宽度 set textwidth=# set wrapmatgin=#
设定标示线 set cursorline (set cul) 禁用 set nocursorline
加密 set key=password 禁用 set key=
命令模式
命令模式又称为normal模式
光标跳转
h:左 L:右 j:下 k:上
#h/l/j/k:跳转#个字符
w:下一个单词首部
e:下一个单词尾部
b:当前单词首部
#w/e/b同上
H:页首 M页中间 L页底
zt 将光标当前屏幕顶端
zz 将光标移动到当前屏幕中间
zb 将光标移动到当前屏幕底部
^ 行首非空白字符 0行首 $行尾
#G 跳转到第#行 G最后一行 1G或者gg 第一行
ctrl+f 尾部翻一屏 ctrl+b首部翻一屏 ctrl+d尾部半屏 ctrl+u 首部半屏
字符编辑
x 删除光标处字符 #x删除光标起始x个字符 xp交换光标所在出的字符及其后面字符的位置
~转换大小写 J删除当前行后的换行符
替换命令
r 只替换光标所在处一个字符 R切换成replace模式,按esc可回到命令模式
删除命令
d 删除命令
d$删除到行尾 d^删除到行首
dd剪切光标所在行
#dd 多行删除
D:从当前光标位置一直删除到行尾等同于d$
复制命令
y y$ y^ 同上解释
粘贴命令
p 粘贴到目标所在的后面,如果是行,则在光标所在行下方
P 同小p相反
改变命令
c:删除后切换成插入模式 c$ c^ cc #cc等
查找
/pattern向下查找
?pattern向上查找
n 与命令同方向
N 与命令反方向
撤销更改
u:撤销最近的更改 #u 撤销之前多次更能够
U 撤销当前光标所在行所有更改
高级用法
0y$ (先到行头,y开始复制,$到行尾字符)
100ilgw 输入100次lgw
di“ 删除“”之间的内容
yi( 复制()之间的内容
vi[ 光标在[]之间,选中[]之间的内容
dtx 删除字符直到遇见光标后的第一个x字符
ytx 复制字符直到遇见光标之后的第一个x字符
可视化模式
在末尾有“--visual--”指示,表示在可视化模式
允许选中文本块
v 面向字符
V 面向整行
ctrl-v 面向块
在所有行首插入# crtl+v --- G---I---#---esc
多窗口模式
vim -o|O file1 file2
-o 水平或上下分割 -O 垂直或左右分割
在窗口间切换 ctrl+w
crtl+w,s 水平分割,上下分屏 ctrl+w,v垂直分割,左右分屏
ctrl+w,q取消相邻窗口 ctrl+w,o取消全部窗口
:wqall 退出
编辑二进制文件
以二进制方式打开文件
vim -b file
扩展命令 %!xxd 转换成16进制 %!xxd -r 退回二进制。
更多vim使用方式请通过网上进行查找。
边栏推荐
- PD virtual machine tutorial: how to set the available shortcut keys in the parallelsdesktop virtual machine?
- Demis hassabis talks about alphafold's future goals
- 属性关键字OnDelete,Private,ReadOnly,Required
- 今日睡眠质量记录78分
- Find your own value
- Es log error appreciation -- allow delete
- leetcode:648. Word replacement [dictionary tree board + find the shortest matching prefix among several prefixes]
- Navigation — 这么好用的导航框架你确定不来看看?
- 防火墙基础之服务器区的防护策略
- #yyds干货盘点# 解决名企真题:交叉线
猜你喜欢
Computer win7 system desktop icon is too large, how to turn it down
Navigation - are you sure you want to take a look at such an easy-to-use navigation framework?
Because the employee set the password to "123456", amd stolen 450gb data?
Notes de l'imprimante substance: paramètres pour les affichages Multi - écrans et multi - Résolutions
Substance Painter笔记:多显示器且多分辨率显示器时的设置
Equipment failure prediction machine failure early warning mechanical equipment vibration monitoring machine failure early warning CNC vibration wireless monitoring equipment abnormal early warning
Introduction and use of Kitti dataset
安恒堡垒机如何启用Radius双因素/双因子(2FA)身份认证
【愚公系列】2022年7月 Go教学课程 005-变量
2022pagc Golden Sail award | rongyun won the "outstanding product technology service provider of the year"
随机推荐
Applet directory structure
#yyds干货盘点# 解决名企真题:交叉线
Five pain points for big companies to open source
Huawei cloud database DDS products are deeply enabled
Leetcode one question per day (636. exclusive time of functions)
Use case diagram
Instructions for mictr01 tester vibrating string acquisition module development kit
Navigation - are you sure you want to take a look at such an easy-to-use navigation framework?
AWS learning notes (III)
安恒堡垒机如何启用Radius双因素/双因子(2FA)身份认证
Oracle Linux 9.0 officially released
《微信小程序-进阶篇》组件封装-Icon组件的实现(一)
Substance Painter筆記:多顯示器且多分辨率顯示器時的設置
CPU与chiplet技术杂谈
全球首款 RISC-V 笔记本电脑开启预售,专为元宇宙而生!
Navigation - are you sure you want to take a look at such an easy-to-use navigation framework?
FFmpeg----图片处理
寺岗电子称修改IP简易步骤
Because the employee set the password to "123456", amd stolen 450gb data?
2022 cloud consulting technology series high availability special sharing meeting