- 本期主题:linux中vim/vi的使用和介绍。
- 博客主页:小峰同学
- 分享小编的在Linux中学习到的知识和遇到的问题
小编的能力有限,出现错误希望大家不吝赐
目录
🍁vim键盘图
🍁vim基本概念
🍁vim的基本操作
🍁vim命令模式命令集
🍁vim末行模式命令集
🍁vim简单配置
🍁vim键盘图
这是vim/vi的键盘图,基本的一些操作,上面都标识的比较清晰。
🍁vim基本概念
- ·vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。
- 我们讲解vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和 底行模式(last line mode)。
各模式的功能区分如下:
- 正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。- 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。- 末行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。按「ESC」键可回到命令行模式。- 想要查看所有模式,在末行下输入:help vim-modes,直接可以看到所有的模式,有很多的模式。
基本的三种模式之间的相互转换:
🍁vim的基本操作
进入vim:在系统提示符处输入vim [文件名称] , 就进入vim全屏幕编辑画面
- vim test.c 用vim 打开test.c
- 进入之后是在正常模式(命令模式)下。
进入:
命令模式界面:
[正常模式]切换至[插入模式]
- a:向后退一个字符开始输入。
- i:当前位置开始输入。
- o:另起一行,开始输入。
[插入模式]切换至[正常模式]
- 目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
[正常模式]切换至[末行模式]
- 「shift + ;」, 其实就是输入「:」
退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」
- w :保存当前文件。
- wq :存盘并退出vim。
- q! :不存盘强制退出vim。
- w!:强制退出。
- wq!:强制写入并退出。有时候我们在修改系统配置文件的时候就要用到。
🍁vim命令模式命令集
命令模式的意义归根结底就是利用命令代替鼠标操作,运用命令来提高编辑效率。
切换到插入模式
- 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件。
- 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字。
- 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
- 按「O」进入插入模式后,是插入新的上一行,从行首开始输入文字。
光标移动
- vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。
- 如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!
- 按「 $ 」:移动到光标所在行的“行尾”
- 按「^」:移动到光标所在行的“行首”
- 按「w」:光标跳到下个字的开头,也支持#w。
- 按「e」:光标跳到下个字的字尾
- 按「b」:光标回到上个字的开头
- 按「#l」:光标移到该行的第#个位置,如:5l,56l
- 按[gg]:进入到文本开始
- 按[shift+g]:进入文本末端
- 按「ctrl」+「b」:屏幕往“后”移动一页
- 按「ctrl」+「f」:屏幕往“前”移动一页
- 按「ctrl」+「u」:屏幕往“后”移动半页
- 按「ctrl」+「d」:屏幕往“前”移动半页
- [n+shift+g]:跳转光标到第 n 行。
删除文字
- 「x」:每按一次,删除光标所在位置的一个字符。
- 「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符。
- 「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符。
- 「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符。
- 「dd」:删除光标所在行。
- 「#dd」:从光标所在行开始删除#行。
注意:配合p使用就是剪切操作。所以删除就是删除到缓冲区。
复制
- 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
- 「#yw」:复制#个字到缓冲区
- 「yy」:复制光标所在行到缓冲区。
- 「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
- 「p」:将缓冲区内的字符贴到光标所在位置。
- 「#p」:#次粘贴。[6p] 粘贴6次。
注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
撤销上一次操作
- 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。(撤销)
- 「ctrl + r」: 撤销的恢复。取消u操作。
替换
- 「r」:替换光标所在处的字符。
- 「#r」:将后面#个字符全部替换,成同一个字符。例如:5r+【字符】,就是讲从光标开始向后5个字符全部替换为输入的字符。
- 「R」:替换光标所到之处的字符,直到按下「ESC」键为止。其实就是进入替换模式(批量化替换)。
- 「shift+ ~」:自动大小写切换。按一次切换一个,长按切换一行。
更改
- 「cw」:更改光标所在处的字到字尾处。
- 「c#w」:例如,「c3w」表示更改3个字。
注意:这里是字,指的是单词,不是字符。也是直接进入插入模式。进行修改。
🍁vim末行模式命令集
在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式
调出行号和取消行号
- 列出行号「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。
- 取消行号「set nonu」: 输入「set nonu」后,行号会消失。
跳到文件中的某一行
- 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
分屏操作
- vs test2.c 会再次打开一个文件,分屏操作。(无论分多少个屏幕,光标在那个屏幕,就是操作那个屏幕。
- ctrl+ww 在各个屏幕下切换光标。(在命令模式下,不在底行模式)。
注意:假如我们现在要退出,要退出那个文件,直接光标在那个文件中,进入底行模式 wq 即可。(光标在那个屏幕就操作那个屏幕)。
底行模式下执行linux命令
- !【linux命令】:直接在底行模式下执行linux命令。按 任意键 退回到vim页面。
全局搜索替换
🍁vim简单配置
- 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。这个是全局的vim配置。
- 虽然每个用户,用的是同一个vim程序,但是,大家可以使用不同的vim配置。
- 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下。
- 通常已经存在一个.vimrc文件,如果不存在,则创建之。
- 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
- 打开自己目录下的.vimrc文件,执行 vim .vimrc 。写入命令就可以了。
- vim的基本配置修改自己的 ".vimrc" 文件,root用户也有自己的 ”.vimrc” 文件。不要动不属于自己的配置文件。
- 配置的指令需要我们自己去网上查找。一般很多帖子都会讲的很清楚。直接去百度vim配置大全。
这就是 vim 的基本配置,就是给自己家目录下的 “.vimrc” 文件写入配置指令。
vim 的一键配置,就是运用别人写好的脚本。直接配置。
在gtiee上 有一个项目,直接搜索:vimforcpp 下面有一个链接,直接拷贝下来,一键配置。(注意只是支持 Centos7 x86_64 环境。
找到下面的链接即可:
完成后再次打开 vim test.c文件就可以看到 配置好的文件。
关于什么首行缩进,语法高亮都会配置好,也可以自己打开 .vimrc文件 修改配置。
我给大家找了一篇文章,可以看看,学习vim配置的更多知识。
拓展阅读。