linux vi/vim 编辑器学习总结

很多时候我们开发人员不可避免的会涉及到项目部署,这个时候使用的就不是我们所熟知的 Windows 和 Mac OS 操作系统了,而是类 Unix 系统。项目部署时通常需要更改一些配置操作,比如环境地址更换,系统挂载,docker 镜像修改等,这时候我们就需要用一款编辑器来修改代码。

vi/vim

在所有的类 Unix 系统中都会内建 vi 编辑器,其他的编辑器则不一定会存在。vim 是从 vi 发展出来的一个文本编辑器,命令众多,代码补全等方便编程的功能特别丰富,使用非常广泛。

vim官网对 vim 的解释:

Vim is a highly configurable text editor for efficiently creating and changing any kind of text. It is included as "vi" with most UNIX systems and with Apple OS X.

Vim 是一个高度可配置的文本编辑器,用于有效地创建和更改任何类型的文本。它作为 “vi” 包含在大多数 UNIX 系统和 Apple OS X 中。

vi/vim 的使用方法

vim 分为三种模式:

  • 命令模式
  • 输入模式
  • 底线命令模式

vim <filename> 命令,将进入 vim 命令模式,如果没有该文件,将新建该文件。

命令模式

启动 vi/vim 编辑器,默认进入命令模式。这时候敲击键盘被认为是命令,而不是字符。

命令模式下,可使用:

  • 复制:yy 和 nyy, yy 复制光标所在的那一行,n 表示数字,3yy 表示复制光标所在的及其向下的 3 行。
  • 粘贴:p 表示将复制的内容粘贴到光标所在的下一行。P 表示将复制的内容粘贴到光标所在的上一行。
  • 复原(撤销):u 表示撤销上一步命令,相当于 Windows 下的 ctrl + z, Mac 下的 command z
  • 重复:ctrl + r 表示重复撤销前的上一个命令, 相当于 Windows 下的 ctrl + shift + z, Mac 下的 command + shift + z
  • 删除:在一行字符中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键)。
  • 行删除:dd 和 ndd, dd 删除光标所在的那一整行, ndd 删除光标所在的及其向下的 n 行。

输入模式

在命令模式下按下 i/I, 或 a/A, 或 o/O (字母 o/O) 就进入输入模式。如果是在底行命令模式下,就先按下 esc 键进入命令模式,在按下 i/I, 或 a/A, 或 o/O (字母 o/O) 就进入输入模式。

输入模式中,可使用:

  • 字符按键,Shift + 字符按键组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,(或 fn + BACK SPACE)删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END (或 fn + 左方向键/fn + 右方向键),移动光标到行首/行尾
  • Page Up/Page Down (或 fn + 上方向键/fn + 下方向键),上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。如果是在输入模式下,就先按下 esc 键进入命令模式,在按下:(英文冒号)进入底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。如:

  • w 保存文件
  • q 退出程序
  • 0 数字 0, 将光标移动到该文件的第一个字符处
  • $ 将光标移动到该文件的最后一行处
  • ESC 键可随时退出底线命令模式,回到命令行模式

vi/vim 的使用实例

下面使用 Mac 的 iTerm2 来演示和说明。

准备

首先新建 “vim编辑器学习总结”文件夹,然后进入该文件夹 mkdir vim编辑器学习总结 && cd vim编辑器学习总结

然后新建文件 “test.txt” touch test.txt,然后使用 vim 编辑器打开该文件,vim test.txt

也可以直接使用 vim 编辑器打开一个文件,如果该文件不存在,将会创建它。

下面使用一个事先准备好的文件docker-compose.yml来演示命令。

底行命令模式实例

这时候输入 : 就进入底行命令模式,输入 $ 就到了最后一行。

命令模式实例

然后输入 esc 便进入命令模式,这时候我想要复制当前行和下面一行

ports:
- 58000:8000

再粘贴到当前行的下面,于是就出现了

ports:
ports:
- 58000:8000
- 58000:8000

这时候敲击 u 就撤销了上一步粘贴,敲击 ctrl + r 就复原了上一步粘贴。 这时候敲击 i 便进入了输入模式

输入模式实例

在输入模式下,可以输入除 esc 以外的任意字符。

可以在输入模式下输入任意字符,输入 esc 就会退出输入模式,进入命令模式,输入 :wq! 就会强制保存然后退出 vim 编辑器。

linux vi/vim 编辑器学习总结的更多相关文章

  1. Linux vi/vim编辑器常用命令与用法总结

    (一)vi/vim是什么?Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便. ...

  2. $Linux vi/vim编辑器常用命令与用法总结 (Markdown编辑版)

    vi/vim是什么? Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便.vi ...

  3. Linux vi/vim编辑器

    所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 ...

  4. 【Linux学习】Vi / Vim编辑器—编辑器工作模式、vi编辑操作

    Vi / Vim编辑器-编辑器工作模式.vi编辑操作 推荐一个很好的学习指南:http://www.oschina.net/translate/learn-vim-progressively 一.编辑 ...

  5. 【转】Linux上vi(vim)编辑器使用教程

    Linux上vi(vim)编辑器使用教程 ------------------------------------------------------------ ikong ------------ ...

  6. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  7. Linux随笔 - vi/vim 编辑器显示行号

    显示行号 1. 打开vi 编辑器 2. 输入  :set number 3. 回车 关闭行号显示 1. 打开vi 编辑器 2. 输入  :set nonumber 3. 回车 行号在每次打开 vi/v ...

  8. vi/vim编辑器的基本操作

    vi/vim编辑器的基本操作 Contents 1. 工具准备(下载gvim) 2. vi/vim基本入门 2.1. 安装 2.2. 基本使用 3. vi/vim基本命令表 1 工具准备(下载gvim ...

  9. windows下vi/vim编辑器的基本操作

    windows下vi/vim编辑器的基本操作 Contents 1. 工具准备(下载gvim) 2. vi/vim基本入门 2.1. 安装 2.2. 基本使用 3. vi/vim基本命令表 1 工具准 ...

随机推荐

  1. 实现:创建/复制/移动文件API

    使用的API: 1.DeleteFile DeleteFileW( _In_ LPCWSTR lpFileName ); 2.CopyFile CopyFileW( _In_ LPCWSTR lpEx ...

  2. service里无法注入mapper,mapper空指针

    被困扰了一天,终于解决了,记录一下 下面是mapper的代码 @Mapper public interface ProductDao { @Select("select * from pro ...

  3. 面试15--strcmp,strcpy,memmove实现

    一. strcmp strcmp是用于比较两个字符串的大小的.   int strcmp( const char *string1, const char *string2 ) char *strin ...

  4. python的虚拟环境管理工具venv使用方法介绍及与nodejs的包管理方式对比

    一.nodejs 包管理方式 我们知道, nodejs的包管理工具npm可以安装项目所需要的包,安装方法及区别如下: npm i module_name -g 全局安装 npm i module_na ...

  5. jq 轮播图 转载-周菜菜

    <style> li{list-style-type:none ; display:inline; width:90px; height:160px; float:left; } .pic ...

  6. Vue的Key属性,v-for和v-if,v-if/v-show,v-pre不渲染,v-once只渲染一次

    key属性为什么要加 key -- api 解释 key的特殊属性主要用在vue的虚拟dom算法,如果不适用key,vue会使用一种最大限度减少动态元素并且尽可能的尝试修复/再利用相同类型元素的算法. ...

  7. 一个bug程序员的入园

    大家好,我叫dg是一个只写bug的程序员.当然只写bug也是有好处的,那就是踩过的坑多了,摔的跟斗多了,并且没有被摔死,勇敢的活了下来,练就了一身钢筋铁骨.哈哈,开个玩笑.但是猜的坑多了就知道了哪里有 ...

  8. Ubuntu 19.04 安装docker

    配置国内源: deb https://mirrors.ustc.edu.cn/ubuntu/ disco main restricted universe multiverse deb https:/ ...

  9. [Beta]Scrum Meeting#6

    github 本次会议项目由PM召开,时间为5月11日晚上10点30分 时长15分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客整理文档 撰写博客整理文档 swoip 改进界面 为适应新功能 ...

  10. arris1750 pandorabox安装bandwidthd之后带宽监控(nlbwmon)报资源不足

    nlbwmon 报错资源不足不能看的原因很可能是内存不足导致,因为重启进程会概率可用一下,且删除老的数据后又好用了. 可能与设置的最大数据库条数有关,条数过大导致申请内存大,改成默认的10000. 可 ...