浅谈Vim

简介:

一、基本介绍
vim(Vi IMproved)顾名思义是vi的改进版,那么vi是什么?
vi 是一种常用于GNU/Linux下的一款编辑器,随着需求的不断扩充,在vi的基础上做了很多改进,于是vim诞生了。
vim相对于vi的这些优势主要体现在以下几个方面:
1、多级撤消我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。
2、易用性vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。
3、语法加亮vim可以用不同的颜色来加亮你的代码。
4、可视化操作就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
5、对vi的完全兼容某些情况下,你可以把vim当成vi来使用。
由此可见vim是一款非常强大、非常受欢迎的一款文本编辑器。
官方网站:http://www.vim.org/
linux下安装vim-minimal软件包
如果是在Linux下,可以安装VIM-Enhance使其扩展为完整版本的VIM

二、整体概述
vim编辑中有三种模式
1、一般模式:
在Linux终端中输入“vim 文件名”就进入了一般模式,但不能输入文字。
2、编辑模式:
在一般模式下按i就会进入编辑模式,此时就可以写程式,按Esc可回到一般模式。
3、命令模式:
在一般模式下按:就会进入命令模式,左下角会有一个冒号出现,此时可以敲入命令并执行。

三、使用方法
首先vim file 打开一个文件
一般模式

wKiom1UZEeLxUlBBAAJ9M_ojtZM912.jpg

命令模式

wKiom1UZEeLTFILsAAEyx3F8anw115.jpg

k、j、h、l分别是上下左右移动光标,个人比较喜欢用上下左右的箭头
w   跳到下一个字首,按标点或单词分割
W   跳到下一个字首,长跳,如end-of-line被认为是一个字
e     跳到下一个字尾
E     跳到下一个字尾,长跳
b     跳到上一个字
B     跳到上一个字,长跳
0 跳至行首,不管有无缩进,就是跳到第0个字符
*     查找光标所在处的单词,向下查找
#     查找光标所在处的单词,向上查找
s     删除当前字符并进入编辑模式
S     删除光标所在行并进入编辑模式

wq和x都是保存并退出,它们之间的区别在于:
wq   
强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。

写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。


一般模式下 "d gg"从当前行删除到行首的所有内容。

                “d G"从当前行删除到行尾的所有内容。


四、Other
部分命令解释:
% 全文(“%”是“1,$”范围的缩写)

:g 代表在全文档范围内

^代表行的开始

\s*代表空白字符

&代表行的结束

d代表删除
s 替
/搜索字符串开始
/搜索字符串结束
/g 替换字符串结束,g表示替换每一行的所有匹配结果。
n 查找下一个& (当在vim用//查找字符串的时候,字符串有多个的时候,按n,光标会跳到下一个字符串)

:g/^\s*$/d

删除所有空白行
批量注释或取消注释文本
注释文本:
一般模式下按下Ctrl+v,上下箭头选中每行,然后按大写I,插入#号,然后按两下ESC即可
取消注释:
一般模式下按Ctrl+v,然后上下箭头全内容(选每行的#),按下x即可


当用/查找字符串的时候,n为下一个字符串,N为上一个字符串

命令模式下 :n n为数字,跳到第n行



本文转自Jacken_yang 51CTO博客,原文链接:http://blog.51cto.com/linuxnote/1626491,如需转载请自行联系原作者

相关文章
|
机器学习/深度学习 编解码 并行计算
论文阅读笔记 | Transformer系列——CSWin Transformer
论文阅读笔记 | Transformer系列——CSWin Transformer
1085 0
论文阅读笔记 | Transformer系列——CSWin Transformer
|
SQL 监控 数据可视化
完全开源!国内首个完全开源JAVA企业级低代码平台
JeeLowCode 是一款专为企业打造的 Java 企业级低代码开发平台,通过五大核心引擎(SQL、功能、模板、图表、切面)和四大服务体系(开发、设计、图表、模版),简化开发流程,降低技术门槛,提高研发效率。平台支持多端适配、国际化、事件绑定与动态交互等功能,广泛适用于 OA、ERP、IoT 等多种管理信息系统,帮助企业加速数字化转型。
|
12月前
|
消息中间件 存储 缓存
如果对方没做幂等!记一次生产订单重复的反思
公司旧系统中发现一个严重bug:用户支付一年服务费,系统却将有效期增加了两年。经分析,原因是消息队列(MQ)向第三方服务发送了两次消息,且该接口未实现幂等性控制。此问题可能导致财务损失和信誉受损。解决方案包括:生产者端通过请求频率限制、幂等键等防重措施;消费者端利用缓存和数据库确保幂等性;消息队列层配置去重功能、TTL和死信队列等。
126 0
|
资源调度 分布式计算 Hadoop
使用YARN命令管理Hadoop作业
本文介绍了如何使用YARN命令来管理Hadoop作业,包括查看作业列表、检查作业状态、杀死作业、获取作业日志以及检查节点和队列状态等操作。
454 1
使用YARN命令管理Hadoop作业
|
存储 网络协议 安全
Epoll的实现原理
Epoll的实现原理
|
IDE 关系型数据库 MySQL
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。
759 3
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
vue组件中的插槽
本文介绍了Vue中组件的插槽使用,包括单个插槽和多个具名插槽的定义及在父组件中的使用方法,展示了如何通过插槽将父组件的内容插入到子组件的指定位置。
|
Java 容器
Java详解:GUI图形用户界面设计—容器组件及面板布局方式
Java详解:GUI图形用户界面设计—容器组件及面板布局方式
429 0
|
域名解析 弹性计算 Linux
阿里云服务器使用教程(从购买、配置到网站上线全流程)
阿里云服务器使用教程(从购买、配置到网站上线全流程)使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程
816 0
|
自然语言处理 JavaScript 前端开发
超越函数界限:探索JavaScript函数的无限可能
JavaScript中的函数是一种重要的编程概念,它允许我们封装可重用的代码块,并在需要时进行调用。本文将深入介绍JavaScript函数的各个方面,包括函数定义和调用、参数和返回值、作用域和闭包、高阶函数以及常见的函数应用场景。