Vim是解决文本快速处理(尤其是服务器端)的神器,本文简单总结下常用的命令。

1. 基本概念和功能
1.1 模式及其切换

Vim中包括如下常见模式“
普通模式:Vim启动后的默认模式,可用于光标的移动、文本的删除等。
插入模式:向文本中插入字符。
可视化模式:用于区块选择,可通过v一类的命令进入
命令行模式: 在命令行内输入命令。在其它模式下,通过ESC 进入命令行模式。

1.2 界面设置

:set number 显示各行行号, set nonumber取消该功能
:set list 显示制表符和行末, set nolist取消该功能
:set fileencoding 查看当前文件编码
:e ++enc=gb18003 强制采用某种编码重新打开本文档(临时的)

1.3 文件保存和退出

:w 保存文件但不退出vim
:w file 将修改保存到file,但不退出vi
:waZZ:x 保存文件并退出vi
"q! 不保存文件,退出vi
:e! 放弃所有修改,并从上次保存文件开始再编辑

2. 选择区块

通过光标移动选择指定的字符区间/行/区块,是实现其它复杂操作的基础。

2.1 光标行内移动

->l向右逐字符移动
<-h 左箭头,向左逐字符移动
w 下一个单词的开头, 可实现跨行
e 下一个单词的结尾,可实现跨行
b 上一个单词的开头, 可实现跨行
^ 行首(第一个非空字符)
$ 行末(最后一个非空字符)
0|:当前行的第一列

2.2 光标跨行移动

向上箭头k 向上一行
向下箭头j 向下一行
数字+向上/下箭头 向上/下移动数字行
+Enter键 下一行的第一个非空字符
- 上一行的的第一个非空字符
H: 屏幕第一行
M: 屏幕中建行
L: 屏幕最后一行
( : 句子的开头
): 句子的结尾
{: 段落的开头
}: 段落的结尾
ctrl+f 向前翻页
ctrl+b 向下翻页
gg 第一行
G 最后一行
数字+% 文档的 数字%处

2.3 指定文本定向查找

:set ic 查找时忽略大小写
:set noic 查找时对大小写敏感

/text 命令行模式下输入,从文本从头开始,向下寻找目标字符串,最终定位到字符串所在行第一个非空字符
?text 命令行模式下输入,从文本从尾开始,向上寻找目标字符串,最终定位到字符串所在行第一个非空字符
n: 配合前面的/text?text使用,向同一方向寻找下一个。
N: 配合前面的/text?text使用,向相反方向寻找下一个。

查找功能还支持正则表达式,如^$选择空行。

2.4 可视化模式

v 字符可视化模式,文本选择以字符为单位,跨行选择时前序行会被全部选中。
V 行可视化模式,文本选择以行为单位,直接选择所在所在行,
ctrl+v 块可视化模式,文本选择以矩形区块为单位,通过指定矩形左上角和右下角点,定义所选区块,特别适用于选择表格列等场景。

3. 插入模式
3.1 进入插入模式

i 在光标所在位置处进入插入模式(效果类似于左侧插入)
I 在光标所在行行首进入插入模式
a 在光标所在位置右边进入插入模式(效果类似于右侧插入)
A 在光标所在行行尾进入插入模式
o 在光标所在行下,插入新的一行进入插入模式
O 在光标所在行上,插入新的一行进入插入模式
s 删除光标所在字符,并进入插入模式
S 删除光标所在行,并进入插入模式

3.2 复制和剪切

yy 将当前行的内容复制到临时缓冲区
nyy 将第n行的内容复制到临时缓冲区
x 剪切

p 将临时缓冲区内的文本粘贴到光标后
P 将临时缓冲区内的文本粘贴到光标前

3.3 修改

c: 可视化模式选择高亮指定文本后,使用c即可删除指定文本,同时进入插入模式
rchar: 用 char 替换当前字符(注意是单个字符)
R text ESC : 用 text 替换当前字符直到按下 Esc 键

3.4 删除

d: 删除,注意删除后的文本是在剪切板里的,所以仍可将其进行p操作
db: 删除光标前面的word
dw: 删至下一个字的开头
d^: 删除光标至行首
dw: 删除光标至行末
dd: 删除一行
dG: 从当前行一直删至文件结束
数字+dd: 删除光标起的若干行
:m,nd: 删除第m-n行,其实这是进入命令行模式后的删除,此处的m和n可以采用数字表示绝对行号,也可以采用+m表示从本行开始往下的第m行(+0表示本行),-m同理

3.5 缩进

> 增加光标区域所在行的缩进
< 减少光标区域所在行的缩进

3.5 撤销与反撤销

u 撤销上一步操作
U 撤销当前行的所有修改
ctrl+r 恢复上一步被撤销的操作

3.6 插入新文本

:r file 读入文件 file 内容,并插在当前行后
:nr file 读入文件 file 内容,并插在第 n 行后

3.7 批量替换

:ranges/oldtext/newtext/g 全文范围内,用newtext 替换 oldtext
:m,ns/oldtext/newtext 第m-n行范围内,用newtext 替换 oldtext,这里的m和n除了用绝对行号,还可以使用相对行号
:g/text1/s/text2/text3 全文范围内,查找包含 text1 的行,用 text3 替换 text2,
:g/text/command 上一条命令的通用版本,在所有包含 text 的行运行 command 所表示的命令,这里的g可以改为指定行区间

:v/text/command 上一条命令的反向命令,即所有不包含 text 的行运行 command 所表示的命令,这里的g可以改为指定行区间

【NLP工具】Vim常用命令小结相关推荐

  1. Linux下实用工具Vim常用命令总结

    vi有输入和命令两种工作模式.输入模式用于输入.命令模式则是用来运行一些编排文件.存档以及离开vi等操作命令.当执行vi后,首先进入命令模式,此时输入的任何字符都被视为命令. vi默认是命令模式,在命 ...

  2. [Window] Windows批处理(cmd/bat)常用命令小结

    目录 Windows批处理(cmd/bat)常用命令小结 什么是批处理? 批处理命令简介 批处理符号简介 常用DOS命令 Windows Batch 常用命令 Windows批处理(cmd/bat)常 ...

  3. Linux常用命令小结(间歇性更新纠正)

    Linux的常用命令小结 参考:全文是关于根据菜鸟教程."兄弟连细说Linux"等教程资料学习的部分知识点记录. ssh 端口:22 ftp 端口:20(用于传输数据) 21(用于 ...

  4. 数据包构造分析工具Hping3常用命令集合大学霸IT达人

    数据包构造分析工具Hping3常用命令集合大学霸IT达人 Hping是一个命令行下使用的TCPIP数据包组装分析工具.该工具的命令模式很像Unix下的ping命令.它不止能发送ICMP回应请求,还支持 ...

  5. 基于ARP的网络扫描工具netdiscover常用命令集合大学霸IT达人

    基于ARP的网络扫描工具netdiscover常用命令集合大学霸IT达人 ARP是将IP地址转化物理地址的网络协议.通过该协议,可以判断某个IP地址是否被使用,从而发现网络中存活的主机.netdisc ...

  6. 批量探测工具fpingping常用命令集合大学霸IT达人

    批量探测工具fpingping常用命令集合大学霸IT达人 批量探测工具fpingping是各个系统自带的基于ICMP协议的主机探测工具.但该工具一次只能检测一个主机,不满足渗透测试批量探测的需要.fp ...

  7. ARP探测目标工具arping常用命令集合大学霸IT达人

    ARP探测目标工具arping常用命令集合大学霸IT达人 ARP协议是一种将IP地址转化物理地址的协议.通过ARP请求包和响应包,可以判断一个IP地址是否在使用.同理,通过该协议可以探测局域网主机是否 ...

  8. Wifitap是一个WiFi注入工具集常用命令集合大学霸IT达人

    Wifitap是一个WiFi注入工具集常用命令集合大学霸IT达人 该工具集允许任何应用程序都可以发送和接收IP数据包,使用802.11流量捕获和注入,并通过WiFi网络简单配置接口wj0.Wifita ...

  9. 无线密码离线破解工具Pyrit常用命令集合大学霸IT达人

    无线密码离线破解工具Pyrit常用命令集合大学霸IT达人 Pyrit是一款可以使用GPU加速的无线密码离线破解工具.该工具提供了大量的命令,可以用来实现不同的功能.使用Pyrit工具中的命令,可以通过 ...

最新文章

  1. ListT随机返回一个
  2. WebViewJavascriptBridge原理解析
  3. spring-boot环境搭建
  4. [POJ1741]Tree
  5. 跟我一起学Redis之Redis持久化必知必会
  6. javaone_JavaOne 2015 –第二十版十大收获
  7. 依赖管理和Maven
  8. 用pyqt5做一个能python程序能插入图片的ide
  9. 社区智慧+机器智能=奇虎经验的知识机器人
  10. spark之常见的机器学习算法
  11. 2 机器学习基本概念
  12. 《经济机器是怎样运行的》笔记(一)
  13. android7.1.2安装包,APK.1文件安装器下载-APK.1安装:微信APK安装器下载1.7 安卓版-西西软件下载...
  14. C++面向对象(1):防卫式声明
  15. 数据对接利用hutool工具类进行xml解析,xml转换成map,然后进行数据入库
  16. 智能体的奇幻漂流之“成都折叠”篇
  17. win10进入安全模式和退出安全模式
  18. spark python_Python、流、SQL 有更新!耗时两年,Spark 3.0 重磅发布!
  19. SRPG游戏开发(五十三)第十一章 地图动作与地图事件 - 二 地图剧情(Map Plot)
  20. 微特技术钢丝绳探伤仪自动监测系统功能概述

热门文章

  1. amd服务器芯片组,超微已为AMD十二核皓龙准备好两款主板
  2. 从Cloudflare事件,看DNS服务的重要性
  3. ps图层混合计算公式
  4. 申宝概述光刻胶等概念表现抢眼
  5. 值得收藏的 开发网站
  6. 风控模型-风险预警模型
  7. 永恒之蓝漏洞(windows7)
  8. 关于AndroidTv端的小白理解
  9. SQL Server动态查询每天八点到第二天八点的数据
  10. photoshop文件巨大_如何手动清除Photoshop的大量临时文件