编辑器 - vim
为什么使用 vim 呢?因为它是所有 Linux 环境下自带的。
vi / vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 mac os、windows。
vim 的基本概念
vim 的常见三种模式(其实有好多模式,掌握常见这 3 种即可)的功能如下:
-
正常 / 普通 / 命令模式(Normal mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 模式或者 last line mode 模式下。 -
插入模式(Insert mode) 只有在 Insert mode 模式下,才可以做文字输入编辑。 -
底行模式(last line mode) 文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 如果要查看你的所有模式:打开 vim,底行模式直接输入 :help vim-modes
【拓展】
安装vimforcpp插件
在使用vim前,可以安装一个vimforcpp插件,方便写C/C++代码。初学时不了安装和配置可以直接复制下面这段指令到命令行中:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
常见错误
如果上一次编辑时异常退出了,就会产生这样的警告,这是因为异常退出导致.swp文件没有删除,当进入vim时遇到这样的警告,按"d"将.swp文件删除即可。
vim 的基本操作
刚进入 vim 编辑器时,是处于「命令模式」下的,你要切换到「插入模式」才能够输入文字。
- 「命令模式」切换至「插入模式」,有 3 种方式:
- 按「i」进入插入模式后,从当前光标所在位置开始输入文字。
- 按「a」进入插入模式后,从当前光标所在位置的下一个位置开始输入文字。
- 按「o」进入插入模式后,插入新的一行,从行首开始输入文字。
- 「插入模式」切换至「命令模式」
- 「命令模式」切换至「末行模式」
- 按下「
shift + : 」,其实就是输入「 : 」冒号。 - 退出 vim 操作,在「正常模式」中输入「 : 」冒号进入「末行模式」,然后输入:
- w(保存当前文件)
- wq(保存当前文件并退出 vim)
- q!(不保存强制退出 vim)
vim 在命令模式中的命令集 (🌟)
移、删、复、替、撤、更、跳,这是正常模式常用的七个类型的指令。
移动光标:
- vim 可以直接用键盘上的方向键来控制光标上下左右移动,但正规的 vim 是用小写英文字母「h」、「j」、「k」、「l」来分别控制光标向左、下、上、右移一格。
- 按[gg]:移动到文本的开始
- 按「shift+g / G」:移动到文章的最后
- 按「 $ 」:移动到光标所在行的 “行尾”
- 按「^」:移动到光标所在行的 “行首”
- 按「w」:光标跳到下个字的开头(以单词为单位)
- 按「e」:光标跳到下个字的字尾(以单词为单位)
- 按「b」:光标回到上个字的开头(以单词为单位)
- 按「#l」:光标移到该行的第 # 个位置,如:5l、56l
- 按「#G」:光标移动到第 # 行
- 按「#j / k」光标向下 / 上移动 # 行
- 按「ctrl」+「b」:光标往上移动一页
- 按「ctrl」+「f」:光标往下移动一页
- 按「ctrl」+「u」:up 光标往上移动半页
- 按「ctrl」+「d」:down 光标往下移动半页
删除文字:
- 「x」:每按一次,删除光标所在位置的一个字符(常用)
- 「#x」:例如,「6x」删除光标后面6个字符(包括光标所在位置)
- 「shift+x / X」:大写的 X,每按一次,删除光标所在位置的 “前面” 一个字符(不包括光标所在位置)
- 「#X」:例如,「20X」表示删除光标所在位置的 “前面” 20个字符
- 「dd」:删除光标所在行(常用)
- 「#dd」:从光标所在行开始删除 # 行
👉 这里的删除本质上都是剪切,可以通过p进行粘贴。
复制文字:
- 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
- 「#yw」:复制 # 个字到缓冲区。
- 「yy」:复制光标所在行到缓冲区。(常用)
- 「#yy」:例如,「6yy」表示拷贝从光标所在的行(包含自己在内) “往下数” 6 行文字。
- 「p」:将缓冲区内的字符粘贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。(常用)
- 「#p」:将缓冲区内的字符粘贴 # 份到光标所在位置。
- yy + p:复制粘贴
- dd + p:剪切粘贴
替换操作:
- 「r」:替换光标所在处的字符(局部文本替换)。(常用)
- 「R」:替换光标所到之处的字符,直到按下「ESC」键为止(整体文本替换)。
字母大小写转换:
- 「shift+~」:先按下 shift 键,再按下波浪号 ~ 不要停,往后遇到的所有小写字母将被转成大写,所有大写字母将被转成小写。
撤销上一次操作:(常用)
- 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次 “u” 可以执行多次恢复,相当于Windows下的Ctrl+z
- 「ctrl + r」: 撤销的恢复,相当于Windows下的Ctrl+y
更改操作:
- 「cw」:更改光标所在处的字到字尾处。
- 「c#w」:例如,「c3w」表示更改3个字。
跳至指定的行:
- 「ctrl」+「g」列出光标所在行的行号。
- 「#G」:例如,「15G」表示移动光标至文章的第 15 行行首。
vim 在末行模式中的命令集 (🌟)
在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再输入「 : 」冒号即可进入末行模式。
列出行号:
- 「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。
跳到文件中的某一行:
- 「#」:# 号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字 15,再回车,就会跳到文章的第 15 行。
查找字符命令:
:/word :向光标之下寻找一个名称为 word 的字符串,如果第一次找的关键字不是您想要的,可以一直按「n」键向下继续寻找该关键字。(常用):?word :向光标之上寻找一个字符串名称为 word 的字符串,如果第一次找的关键字不是您想要的,可以一直按「n」键向上继续寻找该关键字。
批量化替换字符命令:
:%s/printf/cout/g (把文中所有 printf 替换成 cout,g --global 表示全局的意思)(常用) 见下文拓展
查看函数手册命令:
:!man [选项] [函数名] (按 q 退出手册)(常用)
保存文件命令:
- 「w」: 在冒号输入字母「w」就可以将文件保存起来。可以跟一个感叹号「 w! 」强制保存。
退出 vim 命令:
- 「q」:按「q」就是退出,如果无法退出 vim,可以跟一个感叹号「 q! 」强制退出 vim。
- 「wq」:一般建议退出时,搭配「w」一起使用,这样在退出的时候还可以保存文件。(常用)
多文件多屏操作:
-
比如:如果我们想把 test.c 文件中的 10 行代码复制 test1.c 文件中,该如何操作呢? -
:vs test1.c (在 vim 中打开 test1.c 文件,左右分屏) -
分屏模式下 按 ctrl + ww 组合键可以切换文件(w 要按两下)。
跑任何想跑的命令:
拓展(添加/取消多行注释 和 替换命令)(?)
vim 中批量添加 & 删除注释:
多行注释:
-
进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来 -
再按「shift + i / I 」键(大写字母),进入“Insert” 插入模式,插入注释符,例如// -
最后按「ESC」键,就会全部注释了
取消多行注释:
-
进入命令行模式,按ctrl + v 进入 visual block模式,按字母l(L)横向选中列的个数,例如 // 需要选中2列 -
按字母j,或者k选定要去注释的行,将注释符号//两个斜杠全部覆盖 -
按d/x 键就可全部取消注释
替换命令 替换的功能,在我们开发过程中可谓天天使用,使用命令如下:
0:%s/string1/string2/g
简单解释一下:
0:表示从第0行到最后一行搜索一个叫string1的字符串
%s : s表示切换到替换模式下去
string1/string2,即把string1替换成string2
g : 强制替换不用提示
首先将光标移动至要进行替换的行,按":“进入底行模式,键入s/,后面跟要被替换的字符,再键入”/“,后面跟替换后的字符,最后面再跟一个”/"。 如图: 这个指令的含义是,将光标所在行的main替换成linux。 替换结果:
此外,还可可以在s前面加"%",表示全文,或"num1,num2"指定行,而在后面加"g"表示当前行所有。
这个语句的含义是,将全文所有的main替换成linux。 替换结果:
如何配置 vim 编辑器(vim 配置成本太高,一般建议直接使用别人配置好的)
-
配置文件的位置
-
在目录 /etc/ 下面,有个名为 vimrc 的文件,这是系统中公共的 vim 配置文件,对所有用户都有效。 -
在每个用户的主目录 ~ 下,都可以自己建立私有的配置文件,命名为:.vimrc 。 比如 root 用户的 /root 目录下,通常已经存在一个 .vimrc 文件,如果不存在,则创建之。 -
切换用户成自己,执行 su ,执行 cd ~ 进入自己的主工作目录。 然后执行 vim .vimrc 打开自己目录下的 .vimrc 文件。添加配置选项即可。
-
常见的一些配置选项
- 设置语法高亮:
syntax on - 显示行号:
set nu - 设置 tab 缩进的空格数为 4:
set shiftwidth=4
-
使用插件配置 vim
要配置好看的 vim,原生的配置可能功能不全,可以选择安装插件来完善配置,需要保证用户是你要配置的用户。
|