文本编辑工具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 --

最新文章

  1. bahuanghou111
  2. C#实现每隔一段时间执行代码(多线程)
  3. POJ 2559
  4. c#图片上绘制半透明矩形
  5. ubuntu 14.10 安装 zabbix
  6. USB HID报告及报告描述符简介
  7. java 数组注意点
  8. C++图结构的图结构操作示例
  9. The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
  10. ffmpeg 获得视频的时间长度, 仅仅学习一下
  11. 智能ERP收银统计-优惠统计计算规则
  12. springboot+mysql+mybatis+Mybatis-Generator+druid 项目demo
  13. 香港,将军澳,TKO,服务器,运维,机房,云清洗
  14. centos7多网卡配置bond0 (mode6无需交换机做配置)
  15. 如何设置在html中保留超链接格式但不实现跳转
  16. Java中的Lock接口
  17. JStorm-介绍
  18. 【MOOC EXP】Linux内核分析实验七报告
  19. HttpClient + Testng实现接口测试
  20. GoldenGate实时投递数据到大数据平台(2)- Cassandra

热门文章

  1. SpringBoot源码解读系列——开篇
  2. Scala中的流程控制
  3. 使用grpcui测试gRPC服务
  4. Java面向对象之各种变量详解
  5. Solution -「JLOI 2015」「洛谷 P3262」战争调度
  6. Solution -「CF 1370F2」The Hidden Pair (Hard Version)
  7. java中的代码块(初始化块)
  8. .NET官方封装的Win32API类库
  9. operator 之旅(一)
  10. mysql学习+再复习