专栏首页理想二旬不止快速上手 Vim 编辑器【Linux必知】

快速上手 Vim 编辑器【Linux必知】

如果有兴趣的朋友,可以看我之前写过的几篇文章,Linux我也用的不是特别多,也只是一个在学习途中的菜鸡,整理点文章,顺便总结,顺便与大家一起交流~

Linux基础入门+基本命令的万字碎碎念

CentOS-6.8 手把手安装教程(多图+贴镜像文件)

(一) 什么是 Vim

在我看一本书的时候,有一句话印象很深刻,“在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数”,所以我们需要学习一种文本编辑工具也就是今天的 Vim,那么什么是 Vim 呢?

Vim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器

也就是说 Vim 是从 Vi 发展而来的,但是却功能更加的完善以及强大,你将它理解一个可扩展的编辑器就可以了,因为它的功能强大,甚至可以扩展后作为 IDE 使用,不过作为入门,我们首先要学会其基本用法

注:当然编辑器还有很多种例如 Vim、emacs、pico、nano 等,有兴趣可以自行了解

(二) Vim 安装

首先,很多 Linux 的发行版系统,通常都已经默认安装好了 vi 或 Vim 文本编辑器,例如 CentOS,今天演示的机器是一台 Ubuntu-18.04.1 的版本,它默认是没有 Vim 的,如果直接使用会显示找不到命令,如下显示:

Command 'vim' not found, but can be installed with:

apt install vim       
apt install vim-gtk3  
apt install vim-tiny  
apt install neovim    
apt install vim-athena
apt install vim-gtk   
apt install vim-nox 

所以可以根据提示通过简单的命令进行安装:apt install vim (关于安装系列的命令会在后面的文章中介绍)

可以输入 vim --version 看一下有没有返回信息判断是否安装成功

(三) Vim 的三种模式

(1) 命令模式

此模式下可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作,下图为 Ubuntu-18.04.1 图形界面下 Terminal 的一个演示场景

说几个非常常用的命令:

  • i键 切换到输入模式,以输入字符
  • Esc键 切换到命令模式
  • :键 切换到末行模式,以在最底一行输入命令。

如果你想要编辑点什么:启动 Vim,进入到文件就进入了命令模式,按下i键,切换到输入模式,按Esc键切换到命令模式,再按:键切换到末行模式,执行保存退出,或者直接退出等命令

(2) 输入模式

输入模式,就是普通的文本录入,例如我在下例中,在命令模式下输入了 i 进入了输入模式,然后输入了上述文本

当然了,输入模式的命令有很多,摘一些常用的出来,首先是关于文本插入的

在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动

再有就是一些别的常用的

删除(剪切)光标所在整行

还有就是使用上下左右键移动键盘,然后 Ecs键 切换到命令模式

(3) 末行模式

编辑模式主要用于对文件进行保存或者退出等等操作

使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了

保存文件

(四) 编辑文件

上面虽然讲解了三种模式,其实如果只是针对一些普通的配置,其实上面所讲的内容已经够用了,但是如果想更加行云流水般的对文本内容进行操作就需要再多学习一些命令

(1) 打开文件

首先编辑之前当然是打开文件,如果我们已经存在某个文件,就可以直接进入,如果没有此文件,则会先创建再进入,例如下面的意义,就是进入 demo.txt 的编辑模式

root@ubuntu:~# vim demo.txt

这个时候,我们就可以通过比较常用的 i键 进入输入模式,就能编辑文本了

打开或新建一个文件,并将光标置于第一行的首部

(2) 进行编辑

关于几种常见的插入文本的命令,在前面已经输入模式已经说过了,所以我们直接从查找开始说

A:删除文本

删除光标所在位置的字符

B:复制粘贴

将剪贴板中的内容粘贴到光标后

(3) 查找替换

A:查找

有一点需要注意的是,要查找的字符串要严格区分大小写

从光标所在位置向前查找字符串 abc

B:替换

替换光标所在位置的字符

例如,要将某文件中所有的 "root" 替换为 "ideal-20",有两种输入命令,分别为:

shell :1, $s/root/ideal-20/g 或 :%s/root/ideal-20/g

  • 第一种写法中,1,$ 代表到第一行到最后一行,如果写成 1,30 就是 1-30行
  • 第二种写法中 % 代表到第一行到最后一行
  • 如果不指定,就会在当前行生效

结尾

邮箱:ideal_bwh@163.com

如果能帮到你的话,那就来关注我吧!

如果您更喜欢微信文章的阅读方式,可以关注我的公众号

如果您更加喜欢PC端的阅读方式,可以访问我的个人博客

域名:www.ideal-20.cn

在这里的我们素不相识,却都在为了自己的梦而努力 ❤ 一个坚持推送原创开发技术文章的公众号:理想二旬不止

本文分享自微信公众号 - 理想二旬不止(ideal-20),作者:BWH_Steven

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 操作系统笔记【进程互斥同步及通信死锁问题】

    由于我们今天的问题是基于并发的,所以我简单的通过一个 Java 多线程的例子来引入今天的内容(今天主要讲的是进程,这里的多线程问题,体会一下出现的问题就好了)

    BWH_Steven
  • MyBatis 延迟加载(懒加载)一篇入门

    前面一篇文章,介绍了多表查询,在实际使用中,我们会经常性的涉及到多表联合查询,但是有时候,并不会立即用到所有的查询结果,我来举两个例子:

    BWH_Steven
  • JDBC:【第三篇:数据库数据库连接池 & JDBCTemplate】

    简单理解:就是一个存放数据库连接的容器,当用户需要访问数据库的时候,容器提供连接对象给用户用,之后用户将连接对象归还给容器

    BWH_Steven
  • 【业界】人工神经网络在这6大领域超过人类!

    五年前,研究人员对能够解释图像的软件的准确性方面有了相当大的飞跃。人工神经网络支撑了我们目前在AI领域看到的“繁荣”。然而,我们仍然没有达到像“终结者”或“黑客...

    AiTechYun
  • Science:人工智能的发展离不开神经科学,先天结构或是下一个方向

    数学家阿兰·图灵 1950 年的开创性论文引领了人类对人工智能(AI)的探索,他在这篇论文中提出了一个问题:「机器能否思考?」,那时候唯一已知的能够进行复杂计算...

    机器之心
  • 一步一步学Linq to sql(四):查询句法

    aehyok
  • ElasticSearch(7.2.2)-为什么不⽤mysql做全⽂搜索

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    cwl_java
  • Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.ba...

    用户1155943
  • AI行业实践精选:机器学习在Google的昨天,今天与明天

    【AI100 导读】你知道吗?早在十多年前,Google 就已经在内部教自己的工程师机器学习的相关知识了。本篇文章将告诉你 Google 是如何使用机器学习来不...

    AI科技大本营
  • 答《小学生学习Python语言有什么好处》

    时代和技术在发展,如果站着不动,就会落后,这也就是为什么提倡“终身教育”。刻意练习,每日精进。让我们的知识不会落后太久。

    程序员小助手

扫码关注云+社区

领取腾讯云代金券