当前位置:网站首页>vim的基本使用概念
vim的基本使用概念
2022-07-31 23:23:00 【华为云】
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。
基本概念
主要了解vim的三种模式:
命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
- 正常/普通/命令模式(Normal mode)
- 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
- 插入模式(Insert mode)
- 只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
- 底行模式(last line mode)
- 文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入
在底行模式中输入:

可以查看到vim的模式有什么:

vim的基本操作
进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面
例如:vim test.c
vim后面跟的文件名,如果该文件不存在,则会自动创建文件然后打开, 如果存在,则直接打开
注意:进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字。
vim的重要性
- 培养习惯
作为初级程序员,我还有很多地方需要改进,工作流就是其中一个。在学习VIM之前,我从来不是一个真正利用热键/键绑定来发挥自己优势的人,而非常依赖鼠标。因为我打字一直很快,所以有人向我推荐典型的VIM尖峰时,“把手放在键盘上”这一点对我很有吸引力。
至少,我认为学习VIM不会带来任何负面影响。
- 潜力无限
在考虑是否应该学习VIM时,我观摩了一场相关的技术沙龙,它告诉我的是,在今后多年人们都可以持续使用VIM,并不断拓展工具使用范围。
这给了我一些提醒:首先,选择VIM意味着需要投入大量时间,但更重要的是,你始终在寻找提升技能的方法。作为新手开发人员,我想竭尽所能。
这重申了先前的观点,将不同的工具(以VIM为例)集成运用到开发工作流程中,就可以一石二鸟。
- Linux服务器上不再需要nano
这点来自于在Linux环境中远程工作多年,负责运行站点或服务器的程序员,是他们不了解VIM其实很烦人。如果需要修改在电脑中运行的服务器配置文件,则要安装nano,在我看来VIM就是:q!.
工作环境
日常工作中,我会将VSCode与VIM插件结合使用。我曾尝试安装诸如coc.nvim之类的插件并通过终端本身进行开发,效果just so so。
我一直非常喜欢在VSCode上编写代码。使用VIM VSCode插件的体验与运行VIM相同,但VSCode提供的生态系统让我受益更多。对我来说,使用此设置不失为两全其美之举。
:上述vim的重要性转载自文章:使用vim的重要性
边栏推荐
猜你喜欢
Mysql environment installation under Linux (centos)

新产品如何进行网络推广?

MLP神经网络,GRNN神经网络,SVM神经网络以及深度学习神经网络对比识别人体健康非健康数据

Document management and tools in the development process

Advanced Algebra _ Proof _ Any matrix is similar to an upper triangular matrix

Flink 1.13(八)CDC

(26) About menu of the top menu of Blender source code analysis

【云驻共创】【HCSD大咖直播】亲授大厂面试秘诀

网络安全--通过握手包破解WiFi(详细教程)

面试突击69:TCP 可靠吗?为什么?
随机推荐
HTC using official firmware as bottom bag made ROM brush card bag tutorial
消息队列存储消息数据的MySQL表格
Golang must know the Go Mod command
日常--Kali开启SSH(详细教程)
一文带你了解 Grafana 最新开源项目 Mimir 的前世今生
Fixed-length usage of nanopb string type based on RT1052 Aworks (27)
uniapp小程序检查、提示更新
@JsonFormat(pattern="yyyy-MM-dd") time difference problem
lua入门案例实战1234定义函数与标准函数库功能
10大主流3D建模技术
SQL注入 Less47(报错注入) 和Less49(时间盲注)
Components of TypeScript
(26) About menu of the top menu of Blender source code analysis
二叉树非递归遍历
C#中引用类型的变量做为参数在方法调用时加不加 ref 关键字的不同之处
周总结
Recognize anomalies (you will understand after reading this)
/etc/resolv.conf的作用
server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none failed
leetcode:126. 单词接龙 II