Vim是vi improved的缩写是vi的改进版本,vi被认为是事实上的标准编辑器

所有版本的Linux都带有vi编辑器
占用的资源少
与ed,ex等其他编辑器相比,vi对用户更加友好

进入vi编辑器

'vi filename'
如果filename存在,则打开;否则会创建一个新的文件在打开
'vi -R filename'
以只读模式(只能查看不能编辑)打开现有文件
'view filename'
以只读模式打开现有文件
例如:使用vi 编辑器创建一个新文件并打开:
$vi testfile
|
~
~
"testfile" [New File]

"|":表示光标位置
"~": 表示没有任何内容
如果没有~,也看不到任何内容,那说明这一行肯定有空白字符(空格,tab缩进,换行符等)或不可见字符

工作模式

'普通模式'
有shell进入vi编辑器时,首先进入普通模式,在普通模式下,从键盘输入任何字符都被当做命令来解释。
普通模式下没有任何提示符。输入命令后立即执行,不需要回车,而且输入的字符不会再屏幕上显示出来。
'编辑模式;
编辑模式主要用于文本的编辑,该模式下用户输入的任何字符都被作为文件的内容保存起来,并且在屏幕上显示出来
'命令模式'
命令模式下,用户可以对文件进行一些高级处理,尽管普通模式下的命令可以完成很多功能,但是要执行一些如字符串查找,
替换,显示行号等操作还是必须要进入命令模式
ps:有时命令模式也会合并到普通模式

工作模式切换

在普通模式下输入“i(输入)”,"c(修改)",“o(另起一行)”进入编辑模式,按esc键退回到普通模式
在普通模式下输入冒号(:)进入命名模式。驶入完命令按回车,命令执行完成后自动退回普通模式。
提示:如果不确定当前处于那种模式,按两次Esc键将回到普通模式

退出vi编辑器

一般在命令模式下退出vi编辑器
q:如果文件违背修改将直接退回到Shell,否则提示保存文件
q!:强行退出,不保存修改内容
wq:w命令保存文件,q命令退出vi,合起来就是保存并退出
ZZ:保存并退出,相当于wq,但是更加方便

vim打开文件命令

'vim + ssgao'
打开ssgao文件光标定位到最后一行
'vim +3 ssgao'
打开文件光标定位到第三行

'vim +/ssgao ssgao'
打开ssgao文件定位到第一次出现ssgao出现的哪一行,按字母n出现类似查找的功能

'vim aa bb cc'
一次创建或打开多个文文件,在底行通过n或N进行文件切换

普通模式常用命令

':w' 保存修改
':w new_file' 另存为指定文件new_file
'ZZ' 快捷键,保存修改并退出
':q' 退出当前编辑器打开的文件
':!' 表示强制执行,通常':q!'组合使用 ':wq' 保存之后直接退出
':ls' 列出当前编辑器打开的所有文件
':n' 切换到后一个文件':N'切换到前一个文件
':15' 光标快速定位到第15行
'/xxx' 从光标位置开始向后搜索,搜索到xxx第一次出现的位置, ("使用字母n来搜索下一个出现的位置")
'?xxx' 从光标位置开始向前搜索,搜索到xxx第一次出现的位置

'%s/源字符串/新字符串/g' 将文件中的源字符串全部替换为新的字符串
'n1,n2s/old/new/g'  在一定范围内替换指定字符串

普通模式下常用命令

'h' 光标左移
'j' 光标下移
'k'光标上移
'l' 光标右移
'ctrl+f'向下翻页
'ctrl+b'向上翻页
'ctrl+d'向下翻半页
'ctrl+u'向上翻半页

'dd' 删除光标所在的行

'g' 光标定位到第一行
'G/shift+g' 光标定位到最后一行

'o' 在光标所在行的下方插入一行并切换到输入模式
'O' 在光标所在行的上一行打开新行

'i' 在光标所在位置插入文本
'I' 在一行的开头插入文件

'a' 在光标所在位置附加文件
'A' 在光标所在行的最后附加文件

'u' 撤销上一个动作
'U' 将一整行恢复到原来的状态

'yy'复制光标所在的行
'小写p' 在光标所在行的下方粘贴
'大写P' 在光标所在行的上方粘贴

'+' 到下一行的第一个字符
'-' 到下一行的第一个字符

'E' 到单词的结尾
'w' 往后一个单词
'b' 往前一个单词
'$' 到一行的结尾
'0' 到一行的开头

linux系统管理 vi编辑器的更多相关文章

  1. Linux 中 Vi 编辑器的简单操作

    Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi  filename //打开或新 ...

  2. Linux下vi编辑器粘贴复制剪切功能

    RedHat 9.0 Linux下vi编辑器实现简单的粘贴复制剪切功能": 如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到 ...

  3. Linux启动vi编辑器时提示E325: ATTENTION解决方案

    Linux启动vi编辑器时提示E325: ATTENTION解决方案 Vi编辑器是Linux的文本编辑器,在Linux系统的运用非常广泛,不少朋友在打开Vi编辑器的时候提示E325: ATTENTIO ...

  4. linux命令---vi编辑器快速定位行数

    linux命令—vi编辑器快速定位行数.删除当前行.和删除当前行后面的全部内容 1.vi 编辑器如何快速定位到第N行 命令方式下 :n http://bbs.chinaunix.net/thread- ...

  5. linux中vi编辑器的使用

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本 编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任 何版本,vi编辑器是完 ...

  6. linux中vi编辑器

    vi编辑器,通常称之为vi,是一种广泛存在于各种UNIX和Linux系 统中的文本编辑程序.它的功能十分强大,但是命令繁多,不容易掌握,它可以执行输出.删除.查找.替换.块操作等众多文本操作,而且用户 ...

  7. linux下VI编辑器的使用

    一.VI编辑器简述       VI 编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界面,使它成了效率很高的文本编辑器.尽管在Linux上也有很多图形界面的编辑器可 ...

  8. Linux之vi编辑器

    vi编辑器是Linux系统下标准的编辑器.而且不逊色于其他任何最新的编辑器.可是会用的有多少呢.下面介绍一下vi编辑器的简单用法和部分命令.让你在Linux系统中畅行无阻. 基本上vi可以分为三种状态 ...

  9. Kali Linux的vi编辑器/vim编辑器使用方法

    转载声明:本文为转载文章 原文地址:https://www.52host.cn/blog/kali-linux-vi-editor/ Kali Linux系统的vi编辑器/vim编辑器的使用和Cent ...

随机推荐

  1. feed

    a1=tf.placeholder(tf.float32)    # 占位符 a2=tf.placeholder(tf.float32)r=tf.multiply(a1,a2) with tf.Ses ...

  2. C# : 泛型的继承关系实现的一个可以存放不同数据类型的链表

    以下定义的是一个链表结点类型: internal sealed class Node<T> { public T m_data; public Node<T> m_next; ...

  3. 第 6 章 存储 - 044 - volume 生命周期管理

    volume 生命周期管理 1)备份 因为 volume 实际上是 host 文件系统中的目录和文件,所以 volume 的备份实际上是对文件系统的备份 例如:本地的Registry,所有镜像都存在/ ...

  4. POP3、SMTP和IMAP介绍和设置

    什么是POP3.SMTP和IMAP? 参照:http://help.163.com/09/1223/14/5R7P6CJ600753VB8.html 用于 Outlook 的 POP 和 IMAP 电 ...

  5. 关于 Oracle DB CONSTRAINT约束的一些SQL ORA-02292: integrity constraint violated

    ALTER TABLE table_name DISABLE CONSTRAINT constraint_name; select * from all_constraints where owner ...

  6. [jQuery] 判断复选框checkbox是否选中checked

    返回值是true/false method 1: $("#register").click(function(){ if($("#accept").get(0) ...

  7. Getting started with Processing 示例11-9 追随鼠标移动

    程序片段 int num = 60; int[] x = new int[num]; int[] y = new int[num]; void setup(){ size(240,120); noSt ...

  8. 雷林鹏分享:C# 封装

    C# 封装 封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中".在面向对象程序设计方法论中,封装是为了防止对实现细节的访问. 抽象和封装是面向对象程序设计的相关特性. ...

  9. Shell脚本中的并发(转)

    转自http://blog.csdn.net/wangtaoking1/article/details/9838571 主要记录一下Shell脚本中的命令的并发和串行执行. 默认的情况下,Shell脚 ...

  10. WPF程序开发方法小总结

    1.先做静态界面(静态界面带有 示例 数据---> 展示布局效果) 2.然后在VM写完之后,再对静态界面绑定数据源属性