当前位置:网站首页>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的重要性
边栏推荐
- 10大主流3D建模技术
- 基于RT1052 Aworks nanopb string 类型固定长度使用方式(二十七)
- The latest masterpiece!Alibaba just released the interview reference guide (Taishan version), I just brushed it for 29 days
- The difference between /usr/local/bin and /usr/bin
- IPD流程专业术语
- 一文带你了解 Grafana 最新开源项目 Mimir 的前世今生
- leetcode:126. 单词接龙 II
- Shell常用脚本:Nexus批量上传本地仓库增强版脚本(强烈推荐)
- Usage of mysql having
- 网络安全--通过握手包破解WiFi(详细教程)
猜你喜欢
程序进程和线程(线程的并发与并行)以及线程的基本创建和使用
基于simulink的Passive anti-islanding-UVP/OVP and UFP/OFP被动反孤岛模型仿真
二叉树非递归遍历
如何减少软件设计和实现之间鸿沟
A high-quality WordPress download site template theme developed abroad
SVN服务器搭建+SVN客户端+TeamCity集成环境搭建+VS2019开发
编译型语言和解释型语言的区别
Handwritten a simple web server (B/S architecture)
Shell常用脚本:Nexus批量上传本地仓库增强版脚本(强烈推荐)
cobaltstrike
随机推荐
uniapp小程序检查、提示更新
Thinking and Implementation of Object Cache Service
Unity-通过预制件和克隆方法动态实现各个UGUI下控件的创建和显示
博弈论(Depu)与孙子兵法(42/100)
Federated Learning: Multi-source Knowledge Graph Embedding in Federated Scenarios
The difference between /usr/local/bin and /usr/bin
leetcode:126. 单词接龙 II
标段参数说明
LevelSequence source code analysis
Unity-LineRenderer显示一条线
TypeScript 的组件
网络安全--通过握手包破解WiFi(详细教程)
[QNX Hypervisor 2.2 User Manual]9.14 set
如何导入 Golang 外部包并使用它?
Unity - LineRenderer show a line
一文带你了解 Grafana 最新开源项目 Mimir 的前世今生
新产品如何进行网络推广?
什么是动态规划,什么是背包问题
【Acwing】第62场周赛 题解
Daily--Kali opens SSH (detailed tutorial)