目录
一、前言
二、Vim编辑器
1.vim和vi的关系
2.vim基本概念
1.三种常用模式
2.模式间的转换
3.命令模式的命令集
1.光标移动类
2.编辑操作类
4.底行模式的命令集
5.vim操作总结
6.补充:
1.视图模式下:批量化注释、去注释
2.实用功能
:!command
:vs filename
:%s/target/src/g
ctrl+ww(命令模式下)
vim filename +行号
!命令行首字母
7.常见问题
1.vim异常退出问题
2.怎么把普通用户添加到白名单(可以执行sudo命令)
8.vim配置问题
插件使用
三、小结
一、前言
本篇向大家介绍Linux基础开发工具最重要的一环——vim编辑器。vim是 Linux 下最经典、最强大的文本编辑器,也是很多程序员和运维人员的首选。它源自vi,功能更丰富,几乎任何 Linux 系统都能见到它。
附:
二、Vim编辑器
1.vim和vi的关系
2.vim基本概念
1.三种常用模式
正常/普通/命令模式(Normal mode)控制屏幕光标的移动,字符、字或⾏的删除,移动复制某区段及进⼊Insert mode下,或者到 last line mode插⼊模式(Insert mode)只有在Insert mode下,才可以做⽂字输⼊,按「ESC」键可回到命令⾏模式。该模式是我们后⾯⽤ 的最频繁的编辑模式。末⾏模式(last line mode)⽂件保存或退出,也可以进⾏⽂件替换,找字符串,列出⾏号等操作。在命令模式下,*shift+:* 即可进⼊该模式。要查看你的所有模式:打开 vim,底⾏模式直接输⼊ :help vim-modes
2.模式间的转换
如上图所示:
进⼊vim,在系统提⽰符号输⼊vim及⽂件名称后,就进⼊vim全屏幕编辑画⾯:$ vim test.c不过有⼀点要特别注意,就是你进⼊vim之后,是处于[正常模式],你要切换到[插⼊模式]才能够输⼊⽂字。[正常模式]切换⾄[插⼊模式]按「i」切换进⼊插⼊模式「insert mode」,按“i”进⼊插⼊模式后是从光标当前位置开始输⼊⽂件;按「a」进⼊插⼊模式后,是从⽬前光标所在位置的下⼀个位置开始输⼊⽂字;按「o」进⼊插⼊模式后,是插⼊新的⼀⾏,从⾏⾸开始输⼊⽂字。[插⼊模式]切换⾄[正常模式]⽬前处于[插⼊模式],就只能⼀直输⼊⽂字,如果发现输错了字,想⽤光标键往回移动,将该字删 除,可以先按⼀下「ESC」键转到[正常模式]再删除⽂字。当然,也可以直接删除。[正常模式]切换⾄[末⾏模式]「shift + ;」, 其实就是输⼊「:」退出vim及保存⽂件,在[正常模式]下,按⼀下「:」冒号键进⼊「Last line mode」,例如:: w (保存当前⽂件): wq (输⼊「wq」,存盘并退出vim): q! (输⼊q!,不存盘强制退出vim)
3.命令模式的命令集
1.光标移动类
上下:按[gg]:进⼊到⽂本开始(首行)按[shift+g]:进⼊⽂本末端(尾行)按[#+shift+g]:进⼊第 # 行左右:按「$」:移动到光标所在⾏的“⾏尾”按「^」:移动到光标所在⾏的“⾏⾸”位移动:vim可以直接⽤键盘上的光标来上下左右移动,但正规的vim是⽤⼩写英⽂字⺟「h」、「j」、 「k」、「l」,分别控制光标左、下、上、右移⼀格,#+h/j/k/l :移动#位光标以单词为单位移动:按[#+w]:光标回到下个单词的开头按[#+b]:光标回到上个单词的开头
2.编辑操作类
删除⽂字(在插入模式下也可以直接delete删除)「x」:每按⼀次,删除光标所在位置的⼀个字符「#x」:例如,「6x」表⽰删除光标所在位置的“后⾯(包含⾃⼰在内)”6个字符「dd」:删除光标所在⾏「#dd」:从光标所在⾏开始删除#⾏复制、粘贴「yy」:复制光标所在⾏到缓冲区。「#yy」:例如,「6yy」表⽰拷⻉从光标所在的该⾏“往下数”6⾏⽂字。「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。撤销上⼀次操作「u」:如果您误执⾏⼀个命令,可以⻢上按下「u」,回到上⼀个操作。按多次“u”可以执⾏多次回复。「ctrl + r」: 撤销的恢复替换「r」:替换光标所在处的字符。「R」:替换光标所到之处的字符,直到按下「ESC」键为⽌。
博主可能没有给大家写的那么全,但是这些指令足够我们日常使用了,不必担心!
4.底行模式的命令集
基础操作
列出⾏号「set nu」: 输⼊「set nu」后,会在⽂件中的每⼀⾏前⾯列出⾏号。「set nonu」:取消显示行号。跳到⽂件中的某⼀⾏「#」:「#」号表⽰⼀个数字,在冒号后输⼊⼀个数字,再按回⻋键就会跳到该⾏了,如输⼊数字 15,再回⻋,就会跳到⽂章的第15⾏。查找字符「/关键字」: 先按「/」键,再输⼊您想寻找的字符,如果第⼀次找的关键字不是您想要的,可以 ⼀直按「n」会往后寻找到您要的关键字为⽌。「?关键字」:先按「?」键,再输⼊您想寻找的字符,如果第⼀次找的关键字不是您想要的,可以⼀直按「n」会往前寻找到您要的关键字为⽌。保存⽂件「w」: 在冒号输⼊字⺟「w」就可以将⽂件保存起来离开vim「q」:按「q」就是退出,如果⽆法离开vim,可以在「q」后跟⼀个「!」强制离开vim。「wq」:⼀般建议离开时,搭配「w」⼀起使⽤,这样在退出的时候还可以保存⽂件。
| 操作 | /(向下搜索) | ?(向上搜索) |
|---|---|---|
| 搜索方向 | 向文件末尾 | 向文件开头 |
按n | 继续向下找 | 继续向上找 |
按N | 反向向上找 | 反向向下找 |
| 典型场景 | 从开头找后面的内容 | 从末尾找前面的内容 |
5.vim操作总结
6.补充:
1.视图模式下:批量化注释、去注释
批量加注释(
//)
把光标移到你要注释的第一行的开头。
按
Ctrl + v进入可视块模式。按
j(或方向键下)选中你要注释的所有行。按大写
I(Shift + i),进入插入模式。输入注释符,比如
//。按
Esc,稍等一秒钟,选中的所有行首都会自动加上//。批量去注释
光标移到第一行注释符
//的位置。按
Ctrl + v进入可视块模式。按
j选中所有带//的行。按
d或x,直接删除选中的注释符。
2.实用功能
:!command
作用:在 Vim 中直接执行外部的 Shell 命令。
用法:在底行模式下输入
:!ls、:!pwd、:!gcc %等。原理:Vim 会挂起自己,把命令交给系统 Shell 执行。执行完后,会提示
Press ENTER or type command to continue,按回车就会回到 Vim。
:vs filename
水平分屏对比:如果垂直分屏是
:vs,那水平分屏就是:sp filename(全称split)。使用场景:写代码时左边看头文件、右边写实现,或者对照两个文件。
:%s/target/src/g
功能:把文件内容里的所有的target替换成src
ctrl+ww(命令模式下)
作用:在 Vim 的多个分屏窗口之间循环切换光标焦点。
归属模式:这是在普通模式下按的(先按
Ctrl+w,松开后再按w),绝对不能在底行模式下输入。用法:
你先用
:vs或:sp分屏。按
Ctrl + w,再按w(下文统称Ctrl+ww),光标会在不同窗口之间跳来跳去。进阶:除了
w循环切换,你还可以按Ctrl + w后接方向键:
Ctrl + w+h:切换到左边窗口
Ctrl + w+j:切换到下边窗口
Ctrl + w+k:切换到上边窗口
Ctrl + w+l:切换到右边窗口
vim filename +行号
功能:启动vim时光标定位到指定行,常用于编译file出现报错时进行快速定位修改。
!命令行首字母
功能:匹配到最近一次以指定字母开头的命令,简化高频命令,提高效率。
7.常见问题
1.vim异常退出问题
场景:你编写了几百行代码,由于网络问题Xshell和服务器断开连接,写的那么多代码没有来得及保存自动退出了,该怎么恢复代码?
我们每次启动vim时,系统会自动生成一个隐藏文件实时保存我们编写的代码,正常保存退出时该文件自动删除,若异常退出,可通过该文件恢复代码(code.c.swp)。
2.怎么把普通用户添加到白名单(可以执行sudo命令)
步骤:在root账号下,vim /etc/sudoers 下翻添加用户,wq!强制保存退出。
8.vim配置问题
把vim的配置项写入到当前用户的/home/xxx/.vimrc里。
配置⽂件的位置在⽬录 /etc/ 下⾯,有个名为vimrc的⽂件,这是系统中公共的vim配置⽂件,对所有⽤⼾都有效。⽽在每个⽤⼾的主⽬录下,都可以⾃⼰建⽴私有的配置⽂件,命名为:“.vimrc”。例如,/root⽬录下,通常已经存在⼀个.vimrc⽂件,如果不存在,则创建之。切换⽤⼾成为⾃⼰执⾏su,进⼊⾃⼰的主⼯作⽬录,执⾏cd ~打开⾃⼰⽬录下的.vimrc⽂件,执⾏vim .vimrc
插件使用
在gitee上搜vimforcpp,直接在命令行粘贴配置行,自动下载安装插件,给大家贴在下面了:
https://gitee.com/HGtz2222/VimForCpp
三、小结
本文系统介绍了Linux下最经典的文本编辑器Vim。从vi与vim的关系讲起,明确了vim是vi的升级版,兼容所有指令且支持语法高亮和可视化操作。重点拆解了Vim的三种核心模式:命令模式、插入模式、底行模式,并给出了模式间的切换方法和常用命令集,包括光标移动、删除复制、撤销替换等编辑操作,以及底行模式下的行号显示、查找替换、保存退出等。针对
/和?的查找方向区别做了实验对比,并补充了批量注释去注释、分屏、执行外部命令等实用技巧。最后,针对异常退出恢复、普通用户sudo白名单、vim配置文件及插件安装等常见问题给出了解决方案。掌握这些内容,足以应对日常开发中的绝大多数文本编辑场景。建议多动手练习,把命令变成肌肉记忆。如果觉得有帮助,欢迎点赞收藏,一起在Linux的世界里进阶!