该系列文章只是本人的学习笔记,文章中的文字描述提取自《Linux鸟哥私房菜》《Linux运维之道》等书中的重点内容,化繁为简能够在工作中快速复习掌握重点,并不代表个人立场,但转载请加出处,并注明参考文献。

VI/VIM模式概述

在 Linux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设定了,与微软的 Windows 系统不同的是,如果你用惯了 Microsoft Word 或 Corel Wordperfect 的话,那么除了 X window 里面的图形接口编辑程序,用起来尚可应付外,在 Linux 的文本模式下,会觉得文书编辑程序都没有窗口接口来的直观与方便.

VIM 有哪些特点呢 ?

1.所有的 Unix Like 系统都会内建 VIM 文本编辑器,其他的文书编辑器则不一定会存在.

2.很多个别软件的编辑接口都会主动呼叫 VIM (例如未来会谈到的 crontab, visudo, edquota 等指令)

3.VIM 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计.

4.因为VIM程序简单,并可自定义按键,从而编辑速度相当快速,在程序设计领域大有作为.

那么什么是 VIM 呢 ?

其实你可以将VIM视作VI的升级版,VIM可以用颜色或底线等方式来显示一些特殊的信息,简单的来说VI是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方.VIM则可以说是程序开发者的一项很好用的工具,就连VIM的官方网站自己也说VIM是一个『程序开发工具』而不是文字处理软件,因为VIM里面加入了很多额外的功能,例如支持正规表示法的搜寻架构、多档案编辑、区块复制等等.这对于我们在 Linux 上面进行一些配置文件的编辑时,是很好的一项功能.

那 VIM 的工作模式有哪些呢 ?

基本上VI/VIM共分为三种模式,分别是命令模式,输入模式,末行模式.

命令模式:

以 VI/VIM 打开一个文件就直接进入命令模式(这是默认的模式),在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理文件内容,也可以使用『复制、贴上』来处理你的文件数据.

编辑模式:

在输入模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的,要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式,注意,通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑.而如果要回到一般模式时,则必须要按下『Esc』这个按键即可退出编辑模式.

末行模式:

在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行,在这个模式当中,可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 VI/VIM、显示行号等等的动作则是在此模式中达成的.

## VI/VIM模式按键

◆命令模式◆

以 VI/VIM 打开一个文件就直接进入命令模式(这是默认的模式),在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理文件内容,也可以使用『复制、贴上』来处理你的文件数据.

操作类型 操作键(命令) 功能(作用)
光标方向移动 ↑ ↓ ← → 上、下、左、右
字母移动 H j k l 上、下、左、右
翻页 Page Down或Ctrl+F(大) 向下翻动一整页内容
Page Up或Ctrl+B(大) 向上翻动一整页内容
行内快速跳转 Home键或“^”、数字“00” 跳转至行首
End键或“$”键 跳转到行尾
行间快速跳转 1G或者gg 跳转到文件的首行
G 跳转到文件的末尾行
#G 跳转到文件中的第#行
删除 x或Del 删除光标处的单个字符
dd 删除当前光标所在行
#dd 删除从光标处开始的#行内容
d^ (d shift+6) 删除当前光标之前到行首的所有字符(不包含光标)
d$ 删除当前光标处到行尾的所有字符(包含光标)
复制 yy 复制当前行整行的内容到剪贴板
#yy 复制从光标处开始的#行内容
粘贴 p 将缓冲区中的内容粘贴到光标位置处之后(下一行)
P(大) 粘贴到光标位置处之前(上一行)
替换 r 替换光标所在字符
R 从光标出开始替换,按ESC键结束
/word /word 从上而下在文件中查找字符串“word”
?word ?word 从下而上在文件中查找字符串“word”
n n 定位下一个匹配的被查找字符串
N N 定位上一个匹配的被查找字符串
u u 按一次取消最近的一次操作,多次重复按u键,恢复已进行的多步操作
U U 用于取消对当前行所做的所有编辑
Shift+zz或者ZZ Shift+zz(小)或者ZZ 保存当前的文件内容并退出vi编辑器

◆编辑模式◆

在输入模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的,要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式,注意,通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑.而如果要回到一般模式时,则必须要按下『Esc』这个按键即可退出编辑模式.

操作类型 操作键(命令) 功能(作用)
光标后插入 a 在光标所在字符后插入
光标行尾插入 A 在光标所在行尾插入
光标前插入 i 在光标所在字符前插入
光标后插入 I 在光标所在行行首插入
光标下插入 o 在光标下插入新行
光标上插入 O 在光标上插入新行

◆末行模式◆

在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行,在这个模式当中,可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 VI/VIM、显示行号等等的动作则是在此模式中达成的.

功能 命令 备注
保存文件 :w 保存所做操作
:w /root/newfile 另存为其它文件
退出vi :q 未修改退出
:q! 放弃对文件内容的修改,并退出vi
:wq 保存文件退出
删除多行文件 :n,nd 删除从n-n的行
:e ~/install.log 打开新的文件进行编辑
:r /etc/filesystems 在当前文件中读入其他文件内容
:!命令 直接执行命令打印到屏幕上
:r!命令 导入命令结果到光标所在处
行号显示 set nu 在编辑器中显示行号
:set nonu 取消编辑器中的行号显示
颜色开关 :syntax off 关闭颜色显示
:syntax on 开启颜色显示
正则替换

Linux系统VIM编辑器管理(2)的更多相关文章

  1. Linux系统VIM编辑器

    vim,linux系统中一款超好用的文本编辑器,是vi的升级版. 三种操作模式 命令模式: 控制光标移动,可对文本进行删除.恢复.黏贴等工作 输入模式: 正常的文本录入 末行模式: 保存,退出与设置编 ...

  2. Linux系统——vim编辑器

    一.Linux系统中最常用的文本编辑器 vi:类Unix系统中默认的文本编辑器 vim:vi编辑器的增强版 作用:创建或修改文本文件:维护Linux系统中各种配置文件 二.三种切换模式命令模式输入模式 ...

  3. 【Linux】Linux中VIM编辑器的使用

    vim编辑器是我们在Linux中不可或缺的一部分,我们通常会使用它去自定义编辑文本已达到我们的需求,那么vim文本编辑器具体要怎么使用呢.今天跟大家分享一下vim编辑器的使用: vim编辑器模式介绍 ...

  4. linux vi/vim 编辑器学习总结

    linux vi/vim 编辑器学习总结 很多时候我们开发人员不可避免的会涉及到项目部署,这个时候使用的就不是我们所熟知的 Windows 和 Mac OS 操作系统了,而是类 Unix 系统.项目部 ...

  5. Linux的vim编辑器中的翻页命令

    当我们进入Linux的vim编辑器查看脚本时,按上下键查看是不是非常慢?这个时候就要用到我们的翻页快捷键了,快捷键命令如: 整页翻页命令为:Ctrl + f 键   f 的英文全拼为:forward: ...

  6. Linux系统的磁盘管理

    Linux系统的磁盘管理有三个命令:df.du.fdisk. df:列出Linux中所有文件系统的整体磁盘使用量: du:对文件和目录所占用磁盘空间的查看: fdisk:用于磁盘分区时列出所有的磁盘. ...

  7. Linux 文件与目录管理,Linux系统用户组的管理

      一.Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什 ...

  8. Linux中vim编辑器常用操作技巧

    Normal 0 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-styl ...

  9. Linux中vim编辑器 的 快捷键 --- 常用 的 都比较全

    Linux中vim编辑器的功能非常强大,许多常用快捷键用起来非常方便,这里将我学vim入门时学的一些常用的快捷键分享给大家一下,希望可以帮助你们. 这个是我将鸟哥书上的进行了一下整理的,希望不要涉及到 ...

随机推荐

  1. POJ-3252 Avenger

    题意:在区间中,他们化成2进制的数的0的个数大于等于1的数有多少个. 思路:我们需要记录上一次0和1的个数,此外我们还要特别注意一下前导0. 如果前面全是0的时候我们就要注意下一位是不是还是0,如果一 ...

  2. canvas 实现贪吃蛇游戏

    var canvas = document.getElementById('canvas'); var cxt = canvas.getContext('2d'); // 定时器 var timer; ...

  3. GUI的优化操作/添加背景图片等

    一.背景图片的添加这是JAVA中添加背景图片的方式,基本思路先建立一个Label标签,然后建立一个层次的布局,将label标签添加到最下面去. ImageIcon image=new ImageIco ...

  4. 783. Minimum Distance Between BST Node

    方法一,非递归方法,中序遍历 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *l ...

  5. 2018.12.15 bzoj3998: [TJOI2015]弦论(后缀自动机)

    传送门 后缀自动机基础题. 求第kkk小的子串(有可能要求本质不同) 直接建出samsamsam,然后给每个状态赋值之后在上面贪心选最小的(过程可以类比主席树/平衡树的查询操作)即可. 代码: #in ...

  6. s4-3 CSMA

    载波侦听多路访问协议  CSMA:Carrier Sense Multiple Access 特点:"先听后发" 改进ALOHA协议的侦听/发送策略  分类 非持续式 持 ...

  7. JavaWeb多文件上传及zip打包下载

    项目中经常会使用到文件上传及下载的功能.本篇文章总结场景在JavaWeb环境下,多文件上传及批量打包下载功能,包括前台及后台部分.  首先明确一点:  无法通过页面的无刷新ajax请求,直接发下载.上 ...

  8. Redis-5.0.0集群配置

    版本:redis-5.0.0 参考:http://redis.io/topics/cluster-tutorial. 集群部署交互式命令行工具:https://github.com/eyjian/re ...

  9. java的静态内部类

    只是一个简单的记录.因为一直排斥java这个东西.java跟c++比是很不错的一个语言,至少内存管理这么麻烦的东西不用操心了.但是和不断崛起的脚本语言比起来,效率差的太多.无论如何做android还是 ...

  10. 构造函数new执行与直接执行的区别

    //创建一个Test构造 function Test(){ // new执行与直接执行 this的不同指向 this.init(); }; // this 指向 Test Test.prototype ...