为什么使用 vim 呢?因为它是所有 Linux 环境下自带的。
vi / vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 mac os、windows。
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 编辑器时,是处于「命令模式」下的,你要切换到「插入模式」才能够输入文字。
shift + :
」,其实就是输入「 : 」冒号。移、删、复、替、撤、更、跳,这是正常模式常用的七个类型的指令。
移动光标:
删除文字:
这里的删除本质上都是剪切,可以通过p进行粘贴。
复制文字:
替换操作:
字母大小写转换:
撤销上一次操作:(常用)
更改操作:
跳至指定的行:
在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再输入「 : 」冒号即可进入末行模式。
列出行号:
跳到文件中的某一行:
查找字符命令:
:/word
:向光标之下寻找一个名称为 word 的字符串,如果第一次找的关键字不是您想要的,可以一直按「n」键向下继续寻找该关键字。(常用):?word
:向光标之上寻找一个字符串名称为 word 的字符串,如果第一次找的关键字不是您想要的,可以一直按「n」键向上继续寻找该关键字。批量化替换字符命令:
:%s/printf/cout/g
(把文中所有 printf 替换成 cout,g --global 表示全局的意思)(常用) 见下文拓展查看函数手册命令:
:!man [选项] [函数名]
(按 q 退出手册)(常用)保存文件命令:
退出 vim 命令:
多文件多屏操作:
比如:如果我们想把 test.c 文件中的 10 行代码复制 test1.c 文件中,该如何操作呢?
:vs test1.c
(在 vim 中打开 test1.c 文件,左右分屏)
分屏模式下 按 ctrl + ww 组合键可以切换文件(w 要按两下)。
跑任何想跑的命令:
格式 :!命令
(! 表示底行执行 bash 命令),比如:
:!ls -l
:!gcc -o test test.c
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,原生的配置可能功能不全,可以选择安装插件来完善配置,需要保证用户是你要配置的用户。