当前位置:网站首页>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使用方式请通过网上进行查找。
边栏推荐
- 属性关键字ServerOnly,SqlColumnNumber,SqlComputeCode,SqlComputed
- Ian Goodfellow, the inventor of Gan, officially joined deepmind as research scientist
- 2022云顾问技术系列之高可用专场分享会
- Navigation - are you sure you want to take a look at such an easy-to-use navigation framework?
- Démontage de la fonction du système multi - Merchant Mall 01 - architecture du produit
- 一款你不容错过的Laravel后台管理扩展包 —— Voyager
- Base64 encoding
- leetcode:648. Word replacement [dictionary tree board + find the shortest matching prefix among several prefixes]
- MicTR01 Tester 振弦采集模块开发套件使用说明
- Pert diagram (engineering network diagram)
猜你喜欢
AWS learning notes (III)
Navigation — 这么好用的导航框架你确定不来看看?
Pytorch model trains practical skills and breaks through the bottleneck of speed
Full details of efficientnet model
JS get the current time, month, day, year, and the uniapp location applet opens the map to select the location
Leetcode one question per day (636. exclusive time of functions)
In the field of software engineering, we have been doing scientific research for ten years!
什么是云原生?这回终于能搞明白了!
防火墙基础之服务器区的防护策略
Bill Gates posted his resume 48 years ago: "it's not as good-looking as yours."
随机推荐
[today in history] July 7: release of C; Chrome OS came out; "Legend of swordsman" issued
Leetcode——344. Reverse string /541 Invert string ii/151 Reverse the word / Sword finger in the string offer 58 - ii Rotate string left
PAG experience: complete AE dynamic deployment and launch all platforms in ten minutes!
AWS学习笔记(三)
属性关键字ServerOnly,SqlColumnNumber,SqlComputeCode,SqlComputed
PD虚拟机教程:如何在ParallelsDesktop虚拟机中设置可使用的快捷键?
Pert diagram (engineering network diagram)
Wechat applet - Advanced chapter component packaging - Implementation of icon component (I)
Decrypt the three dimensional design of the game
【服务器数据恢复】某品牌StorageWorks服务器raid数据恢复案例
电脑Win7系统桌面图标太大怎么调小
在软件工程领域,搞科研的这十年!
Excuse me, does PTS have a good plan for database pressure measurement?
PLC:自动纠正数据集噪声,来洗洗数据集吧 | ICLR 2021 Spotlight
Bill Gates posted his resume 48 years ago: "it's not as good-looking as yours."
Leetcode——344. 反转字符串/541. 反转字符串 II/151. 颠倒字符串中的单词/剑指 Offer 58 - II. 左旋转字符串
PD virtual machine tutorial: how to set the available shortcut keys in the parallelsdesktop virtual machine?
Mlgo: Google AI releases industrial compiler optimized machine learning framework
PLC: automatically correct the data set noise, wash the data set | ICLR 2021 spotlight
LeetCode 648. 单词替换