对于Linux的初次使用者来说,进入Linux非图形界面后,不知道怎么创建文本(甚至于在图形界面,也找不到创建文本的菜单)。其实,每一个Linux的发行版本,都包含了一个最简单、也是最基础的文本编辑器:vi(Visual Interface)。

其实,想要创建文本文件,很简单,只要在终端中输入:vi myfile.txt就可以了。注意了,包括想要创建java文件,也可以这样的。

要使用vi,得从vi的三个状态讲起。

1、vi的三个状态

 a)命令行模式command mode)

控制屏幕光标的移动,字符、字或行的删除。

  b)插入模式(Insert mode)

在此模式下才能文字编辑,按「ESC」键可回到命令行模式。初学者发现自己怎么敲键盘都不能编辑文本,就是因为vi没有在插入模式下。

  c)底行模式(last line mode)

此模式下可以进行文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。

2、vi的最简入门

 a)进入vi

命令:

vi myfile

此刻,vi是在命令模式下。Widnows用户此刻习惯想用上下左右键移动光标,结果发现毫无用处。此时此刻,先按字母「i」就能进入插入模式,你才能进行真正的编辑。

 b)切换至插入模式(Insert mode)编辑文件

在命令模式下按一下字母「i」就可以进入插入模式,进行真正的文字编辑。

 c)退出vi及保存文件

按「ESC」进入到命令行模式,在按一下冒号「:」键就能进入底行模式,然后敲入命令:

: w filename 保存

: wq 保存并退出vi

: q! 强制退出,且不保存

3、命令行模式重要功能键

a)插入模式

按「i」切换进入插入模式「insert mode」;

b)从插入模式切换为命令行模式

按「ESC」键;

c)移动光标

按字母「h」、「j」、「k」、「l」,可以左、下、上、右移一格。

按「ctrl」+「b」:往后移动一页。

按「ctrl」+「f」:往前移动一页。

按「0」:移到开头。

按「G」:移到最后。

d)删除文字

「x」:删除光标之后"一个字符。

「#x」:如,「3x」删除光标后3个字符。

「dd」:删除当前行。

「#dd」:删除当前行之后#行

e)复制

「yy」:复制当前行。

「#yy」:复制当前行之后#行。

f)回复上一次操作

「u」:撤销上次操作。

 g)跳至指定的行

「ctrl」+「g」,列出所在行行号。

「#G」:光标移致第#行。

4、Last line mode重要命令

 a)列出行号

「set nu」:显示文本行号。

b)跳到文件中的某一行

「#」:光标移动到文本的第#行。

c)查找字符

「/关键字」:能定位到关键字所在位置。按「n」会往后继续查找。

d)保存文件

「w」:保存文件。

e)离开vi

「q!」:强行退出vi。

「qw」:保存并退出。

感谢关注“码农星球”。本文版权属于“码农星球”。我们提供咨询和培训服务,关于本文有任何困惑,请关注并联系我们。

技术杂记之:vi使用入门的更多相关文章

  1. Vi编辑器入门

    Vi编辑器入门   vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows上的记事本! 1.vi的基本概念  基本上vi可以分为三种状态,分别是命令模式(command mode ...

  2. Window Azure ServiceBus Messaging消息队列技术系列2-编程SDK入门

    各位,上一篇基本概念和架构中,我们介绍了Window Azure ServiceBus的消息队列技术的概览.接下来,我们进入编程模式和详细功能介绍模式,一点一点把ServiceBus技术研究出来. 本 ...

  3. vi使用入门指南

    一.Unix编辑器概述 编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少的部件.Unix及其相似的ix操作系统系列中,为方便各种用户在各个不同的环境中使用,提供了一系列的ex编辑 ...

  4. Azure Messaging-ServiceBus Messaging消息队列技术系列2-编程SDK入门

    各位,上一篇基本概念和架构中,我们介绍了Window Azure ServiceBus的消息队列技术的概览.接下来,我们进入编程模式和详细功能介绍模式,一点一点把ServiceBus技术研究出来. 本 ...

  5. 走进JavaWeb技术世界13:Hibernate入门经典与注解式开发

    原文地址:Hibernate入门这一篇就够了 前言 本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门,相信你们看了就会使用Hibernate了! 什么是Hibernate ...

  6. 走进JavaWeb技术世界14:Mybatis入门

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  7. 【JEECG-Boot 技术文档】新手入门教程

    Jeecg-Boot入门教程必看(新手学习) 1.开发环境搭建 http://jeecg-boot.mydoc.io/?t=345670 开发工具 :https://pan.baidu.com/sha ...

  8. vi 使用入门

    几种模式:     Normal Mode 命令模式     Insert Mode 编辑模式     Command-line Mode      Visual Mode      Select M ...

  9. 区块链技术(一):Truffle开发入门

    以太坊是区块链开发领域最好的编程平台,而truffle是以太坊(Ethereum)最受欢迎的一个开发框架,这是我们第一篇区块链技术文章介绍truffle的原因,实战是最重要的事情,这篇文章不讲原理,只 ...

随机推荐

  1. poj 2585 Window Pains 暴力枚举排列

    题意: 在4*4的格子中有9个窗体,窗体会覆盖它之下的窗体,问是否存在一个窗体放置的顺序使得最后的结果与输入同样. 分析: 在数据规模较小且不须要剪枝的情况下能够暴力(思路清晰代码简单),暴力一般分为 ...

  2. seajs载入流程图

    近期读seajs源代码,整理出了主要逻辑的流程图(注意:是逻辑示意图).感兴趣的朋友能够看看,欢迎批评指正~ http://www.gliffy.com/go/publish/image/607216 ...

  3. MySQL 高可用架构在业务层面细化分析研究

    相对于传统行业的相对服务时间9x9x6或者9x12x5,由于互联网电子商务以及互联网游戏的实时性,所以服务要求7*24小时,业务架构无论是应用还是数据库,都须要容灾互备.在mysql的体系中,最好通过 ...

  4. jQuery的AJax异步訪问

    用一个样例用以说明:点击button,将input内用户输入的数据发送给服务端.并将结果返回给页面. 首先是html承载内容: <!DOCTYPE html> <html> & ...

  5. 2016/05/16 thinkphp3.2.2 验证码使用

    Think\Verify类可以支持验证码的生成和验证功能. 生成验证码 下面是最简单的方式生成验证码: $Verify =new \Think\Verify(); $Verify->entry( ...

  6. Hibernate 之 HQL

    通过对Hibernate框架的学习,已经慢慢的对Hibernate有了进一步的了解,接下来我们要说的是HibernateQusery Language(HQL),如果你正在学习SSH框架,那SQL对你 ...

  7. lineage 世系 血缘 容错机制 DAG

    当某个RDD的部分数据丢失时候,Saprk会根据记录的世系关系找到该RDD的父RDD以及更上级的RDD.只需要将该RDD依赖的上级RDD重新计算就可以将该RDD进行恢复. Directed Acycl ...

  8. try-with-resources使用示例

    try (InputStream is = new FileInputStream("test")) { is.read(); ... } catch(Exception e) { ...

  9. codeforces 688E E. The Values You Can Make(dp)

    题目链接: E. The Values You Can Make time limit per test 2 seconds memory limit per test 256 megabytes i ...

  10. 并不对劲的AC自动机

    这像是能解决所有问题的样子(并不).AC自动机之所以叫AC自动机是因为它能解决所有AC自动机的题. 其实只能解决的是很多模式串匹配一个母串的问题. 把kmp中的next数组得到下一次跳转的位置看成特殊 ...