史上最全VIM使用手册
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,vim是一个向上兼容于vi的文本编辑器,可用于编辑各种纯文本。它对编辑程序特别有用。基本模式:编辑模式:默认编辑文件进入的模式输入模式:末行模式:内置的命令行接口基本使用: # vim [option
千家信息网最后更新 2025年12月02日史上最全VIM使用手册
vim是一个向上兼容于vi的文本编辑器,可用于编辑各种纯文本。它对编辑程序特别有用。
基本模式:
编辑模式:默认编辑文件进入的模式输入模式:末行模式:内置的命令行接口
基本使用:
# vim [options] [file ..]+#:打开文件后,直接让光标处于第#行的行首;+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行;
模式转换:
编辑模式:默认模式编辑模式 -> 输入模式: i:insert,在光标所在处输入; a: append,在光标在处后方输入; o:在光标所在处的下方打开一个新行; I:在光标所在行的行首输入; A:在光标所在行的行尾输入; O:在光标所在处的上方打开一个新行; 输入模式 -> 编辑模式 ESC键 编辑模式 -> 末行模式 :键 末行模式 -> 编辑模式 ESC键
关闭文件:
1.编辑模式下: ZZ:保存并退出; ZQ:不保存直接退出;2.进入末行模式: :q 退出 :q! 强制退出,不保存此前的编辑操作 :wq 保存并退出; :w, :q :x 保存并退出; :w /PATH/TO/SOMEFILE 保存到指定文件
命令模式光标跳转
光标跳转:
字符间跳转 h:左 j:下 k:上 l:右现在直接上下左右键#COMMAND:跳转由#指定的个数的字符;
单词间跳转
w:下一个单词的词首;e:当前或后一个单词的词尾;b:当前或前一个单词的词首;#COMMAND:跳转由#指定的个数的单词;
行首行尾跳转
^:跳转至行首的第一个非空白字符;0:跳转至行首;$:跳转至行尾;
行间跳转
#G:跳转至由#指定的行;1G, gg:第一行;G:最后一行;
句间跳转:
) 下一句( 上一句
段间跳转
} 下一段{ 上一段翻屏:
Ctrl+f:向文件尾翻一屏Ctrl+b:向文件首部翻一屏Ctrl+d:向文件尾部翻半屏Ctrl+u:向文件首部翻半屏Enter:按行向后翻
当前页跳转:
H:页首M:页中间行L:页底zt:将光标所在当前行移到屏幕顶端zz:将光标所在当前行移到屏幕中间zb:将光标所在当前行移到屏幕底端
vim的编辑命令:
字符编辑:
默认模式 x:删除光标所在处的字符; #x:删除光标所在处起始的#个字符; xp:交换光标所在处的字符与其后面的字符的位置; 替换命令(replace): r:替换光标所在处的字符; rCHAR ~:大小写切换
删除命令:
编辑模式删除 d:删除命令,可结合光标跳转字符,实现范围删除; d$:删除光标所在位置到行尾的字符; d^:删除光标所在位置到非空行首的字符; d0:删除光标所在位置到行首的字符; dw:删除光标所在位置到下个单词词首的字符 de:删除光标所在位置到当前单词或下个单词词尾的字符 db:删除光标所在位置到当前单词或上一个单词单首的字符 #COMMAND: D:等同于d$ dd:删除光标所在处的行; #dd:删除光标所处的行起始的共#行;
粘贴命令(p, put, paste):
编辑模式粘贴 p:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方;否则,则粘贴至当前光标所在处的后方; P:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否则,则粘贴至当前光标所在处的前方;
复制命令(yank, y):
编辑模式复制 y:复制,工作行为相似于d命令; y$:复制光标所在位置到行尾的字符 y^:复制光标所在位置到非空行首的字符 y0:复制光标所在位置到行首的字符 ye:复制标所在位置到当前单词或下个单词词尾的字符 yw:复制光标所在位置到下个单词词首的字符 yb:复制光标所在位置到当前单词或上一个单词单首的字符 #COMMAND yy:复制一整行 #yy:复制#行
改变命令(change, c):
编辑模式 --> 输入模式,实现删除操作; c$:删除光标所在位置到行尾的字符并且切换为输入模式; c^:删除光标所在位置到非空行首的字符并且切换为输入模式; c0:删除光标所在位置到行首的字符并且切换为输入模式; cb:删除光标所在位置到当前单词或上一个单词单首的字符并且切换为输入模式; ce:删除光标所在位置到当前单词或下个单词词尾的字符并且切换为输入模式; cw:删除光标所在位置到下个单词词首的字符并且切换为输入模式; #COMMAND cc:删除光标所在的行,并且切换为输入模式; #cc:删除#行并且切换为输入模式;
其它编辑操作:
可视化模式:
选定字符 v:按字符选定; V:按行选定; 结合编辑命令使用:d, c, y 撤销(undo)操作: u:撤销此前的操作; #u:撤销此前的#个操作; 撤销此前的撤销: Ctrl+r 重复执行前一个编辑操作: . vim自带的练习教程:vimtutor
vim末行模式:
内建的命令行接口
(1) 地址定界
:start_pos[,end_pos] #:特定的第#行,例如5即第5行; .:当前行; $:最后一行; #,#:指定行范围,左侧为起始行,右侧为结束行; #,+#:指定行范围,左侧为超始行绝对编号,右侧为相对左侧行号的偏移量;例如:3,+7 .,$-1:范围为当前行指倒数第二行 1,$:范围为第一行至最后一行 %:全文 /pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行; /first/,$:从光标所在处起始,第一次由pat1匹配到的行开始,至最后一行中间的所有行 /pat1/,/pat2/:从光标所在处起始,第一次由pat1匹配到的行开始,至第一次由pat2匹配到的行结束之间的所有行; 可同编辑命令一同使用,实现编辑操作: d:地址定界后接d实现删除该定界范围内的行 y:地址定界后接d实现复制该定界范围内的行 c:地址定界后接d实现替换该定界范围内的行并且切换为输入模式 w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中; r /PATH/FROM/SOMEFILE:将指定的文件中的文本读取并插入至指定位置;
(2) 查找
模式匹配查找 /PATTERN:从当前光标所在处向文件尾部查找能够被当前模式匹配的所有字符串; ?PATTERN:从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串; n:下一个,与命令方向相同; N:上一个,与命令方向相反;
(3) 查找并替换
s:末行模式的命令; 使用格式: s/要查找的内容/替换为的内容/修饰符 要查找的内容:可使用正则表达式; 替换为的内容:不能使用正则表达式,但可以引用; 如果"要查找的内容"部分在模式中使用分组符号:在"替换为的内容"中使用后向引用; 直接引用查找模式匹配到的全部文本,要使用&符号; 修饰符: i:忽略大小写; g:全局替换,意味着一行中如果匹配到多次,则均替换; 可把分隔符替换为其它非常用字符: s@@@ s### 示例: %s@\@T\1@g %s@\ @&er@g
vim的多文件功能:
多文件:
vim FILE1 FILE2 ... 在文件间切换: :next 下一个 :prev 上一个 :first 第一个 :last 最后一个 退出所有文件: :wqall 保存所有文件并退出; :wall :qall
多窗口:
窗口分割 -o:水平分割窗口 -O:垂直分割窗口 在窗口间切换:Ctrl+w, ARROW 注意:单个文件也可以分割为多个窗口进行查看: Ctrl+w, s:水平分割窗口 Ctrl+w, v:垂直分割窗口
定制vim的工作特性:
注意:在末行模式下的设定,仅对当前vim进程有效; 永久有效: 全局:/etc/vimrc 用户个人:~/.vimrc 1、行号 显示:set number, 简写为set nu 取消显示:set nomber, set nonu 2、括号匹配高亮 匹配:set showmatch, set sm 取消:set nosm 3、自动缩进 启用:set ai 禁用:set noai 4、高亮搜索 启用:set hlsearch 禁用:set nohlsearch 5、语法高亮 启用:syntax on 禁用:syntax off 6、忽略字符大小写 启用:set ic 禁用:set noic 获取帮助: :help :help subject
光标
模式
所在
字符
位置
单词
文件
输入
命令
切换
范围
内容
一行
起始
文本
地址
第一次
词尾
大小
尾部
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳海云安网络安全
公司电脑网络安全使用规范
原神刚进游戏就重连服务器
软件开发 显示器 效率
潍柴动力公司软件开发员工前景
甘肃服务器机柜推荐
纬度的数据库
保定友泽软件开发有限公司
存储服务器与管理平台
率土之滨最近的几个服务器
重庆指路人网络技术
三级网络技术备考时间
中国移动网络技术好吗
网络技术专利专利价值
公司数据库的特点
河北pdu服务器专用电源多少钱
五年网络安全手抄报
oa系统服务器网址
工作室怎么做到全服务器都有金币
网络安全与技术知识点
华为软件开发云项目西安
2019网络安全周活动方案
计算机网络技术考什么内容
阿里云服务器定时任务
国际民航网络安全吗
服务器如何控制游戏
服务器永久保留日志如何设计架构
掘泥打击者魔兽数据库
如何实现数据库与redis一致
一个域名可以绑两台服务器吗