linux文本编辑工具
2024-09-05 00:35:19
文本编辑工具VIM
vim 主要有三种工作模式,分别是命令模式、插入模式和编辑模式,输入 vim 文件名 我们可以进入命令模式,输入字符 i或者a或者o我们可以进入插入模式,进入插入模式之后我们可以进行文件的内容修改,修改完成之后,可以输入 :wq 可以保存退出。
编辑模式基本命令
w 写(存)磁盘文件
wq 写入并退出
x 写入并退出
X 加密
q 退出
q! 不保存退出,即使更改都将丢失
r filename 读文件内容到当前文件中
w filename 将当前文件内容写入另一个文件
!command 执行命令
r!command 读入命令的输出
选择范围
:2 具体第2行,例如2表示第2行
x,y 左侧x表示起始行,到右侧y表示结尾行
x,+5 左侧x表示起始行,加上右侧5表示的行数,范例:2,+3 表示2到5行
. 表示当前行
$ 表示最后一行
.,$-1 表示当前行到倒数第二行
% 表示全文, 相当于1,$
/xxxx/ 表示从当前行向下查找,直到匹配xxxx的第一行,即:正则表达式
/x/,/y/ 表示从第一次被x匹配到的行开始,一直到第一次被y匹配到的行结束
2,/x/ 表示从指定第二行开始,一直找到第一个匹配x的行结束
/x/,$ 表示向下找到第一个匹配x的行到整个文件的结尾的所有行
范围后跟命令
d 删除
y 复制
w file 将范围内的行另存至指定文件中
r file 在指定位置插入指定文件中的所有内容
查找与替换
s/要查找的内容/替换为的内容/修饰符
修饰符:
i 忽略大小写
g 全局替换,默认情况下,每一行只替换第一次出现的
gc 全局替换,每次替换前询问
查找替换中的分隔符/可替换为其它字符,如:#,@
编辑模式的配置只是对当前vim进程有效,可将配置存放在文件中持久保存
/etc/vimrc 全局
~/.vimrc 个人
行号
显示:set number,简写 set nu
取消显示:set nonumber, 简写 set nonu
自动缩进
启用:set autoindent,简写 set ai
禁用:set noai
复制保留格式
启用:set paste
禁用:set nopaste
文件格式
启用windows格式:set fileformat=dos
启用unix格式:set fileformat=unix
简写 set ff=dos|unix
查看不可见字符
:set list
命令模式基本命令
光标跳转
当前页跳转:
H:页首
M:页中间行
L:页底
zt:将光标所在当前行移到屏幕顶端
zz:将光标所在当前行移到屏幕中间
zb:将光标所在当前行移到屏幕底端
行首行尾跳转:
^ 跳转至行首的第一个非空白字符
0 跳转至行首
$ 跳转至行尾
行间移动:
G 或者编辑命令模式下 :3 跳转至由第3行
G 最后一行
1G, gg 第一行
字符编辑:
x 剪切光标处的字符
5x 剪切光标处起始的5个字符
xp 交换光标所在处的字符及其后面字符的位置
p 粘贴
~ 转换大小写
J 删除当前行后的换行符(将下一行内容移动到当前行末)
替换命令(replace)
r 只替换光标所在处的一个字符
R 切换成REPLACE模式(在末行出现-- REPLACE ),按ESC回到命令模式
删除命令(delete)
d 删除命令,可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
#COMMAND
dd: 剪切光标所在的行
#dd 多行删除
D:从当前光标位置一直删除到行尾,等同于d$
复制命令
y 复制,行为相似于d命令
#COMMAND
yy:复制行
#yy 复制多行
Y:复制整行
粘贴命令(paste)
p 缓冲区存的如果为整行,则粘贴在当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
P 缓冲区存的如果为整行,则粘贴在当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
查找
/PATTERN:从当前光标所在处向文件尾部查找
撤消更改
u 撤销最近的更改,相当于windows中ctrl+z
#u 撤销之前多次更改
U 撤消光标落在这行后所有此行的更改
Ctrl-r 重做最后的“撤消”更改,相当于windows中crtl+y
. 重复前一个操作
x. 重复前一个操作x次
可视化模式
在末行有”-- VISUAL -- “指示,表示在可视化模式
允许选择的文本块:
- v 面向字符,-- VISUAL --
- V 面向整行,-- VISUAL LINE --
- ctrl-v 面向块,-- VISUAL BLOCK --
最新文章
- bahuanghou111
- C#实现每隔一段时间执行代码(多线程)
- POJ 2559
- c#图片上绘制半透明矩形
- ubuntu 14.10 安装 zabbix
- USB HID报告及报告描述符简介
- java 数组注意点
- C++图结构的图结构操作示例
- The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
- ffmpeg 获得视频的时间长度, 仅仅学习一下
- 智能ERP收银统计-优惠统计计算规则
- springboot+mysql+mybatis+Mybatis-Generator+druid 项目demo
- 香港,将军澳,TKO,服务器,运维,机房,云清洗
- centos7多网卡配置bond0 (mode6无需交换机做配置)
- 如何设置在html中保留超链接格式但不实现跳转
- Java中的Lock接口
- JStorm-介绍
- 【MOOC EXP】Linux内核分析实验七报告
- HttpClient + Testng实现接口测试
- GoldenGate实时投递数据到大数据平台(2)- Cassandra