Linux文本编辑器

  Linux系统下有许多文本编辑器,按编辑区域可分为行编辑器和全屏幕编辑器,例如行编辑器有ed,全屏幕编辑器有vi。按运行环境可分为命令行控制台文本编辑器和X Window图形界面编辑器。例如vi属于命令行控制台编辑器,gedit则属于图形界面编辑器。

一、Linux文本编辑器概述

1、ed

  在早期的unix平台上,ed可以说是唯一的编辑工具。它是一个很古老的行编辑器,vi这些编辑器都是ed演化而来。行编辑器使用起来很不方便,每次只能对一行进行操作。

2、vi 和 vim 

  vi是在UNIX平台上历史悠久的编辑器,是“visual interface"的缩写,vi是UNIX平台上可视化编辑器(或者说基于屏幕的编辑器)的代表,。

  vim意为vi IMproved,增强版vi。vim和vi相比,增加了更多特性,如彩色和高亮显示,可以使我们的编辑工具更轻松。通过设置vim会自动检测文件中内容的类型,并以不同的颜色进行高亮显示,如注释变成蓝色,关键字变成褐色,而字符串变成红色等,与vi传统的黑白显示模式相比,vim更易读易用。另一个有趣的功能是vim支持从右到左输入字符,这在使用一些特殊语言(如Farsi)进行编程时是比较有用的。

在这里分享几个vim学习链接:

  linux操作系统vim的安装与配置:https://jingyan.baidu.com/article/046a7b3efd165bf9c27fa915.html

  Vim学习指南 :http://www.linuxidc.com/Linux/2013-08/89096.htm

  强大的Vim 编辑器 http://www.linuxidc.com/Linux/2013-07/87544.htm 

  在CentOS 6.2上搭建Vim开发环境 http://www.linuxidc.com/Linux/2013-07/87363.htm

  CentOS 5.4 安装高亮Vim编辑工具 http://www.linuxidc.com/Linux/2013-06/86508.htm

  Vim技巧分享:C语言设置 http://www.linuxidc.com/Linux/2012-12/77124.htm

       Ubuntu中设置Vim的行号 http://www.linuxidc.com/Linux/2012-12/75485.htm

  Vim编辑器使用基础教程 http://www.linuxidc.com/Linux/2013-05/84031.htm

  

3、emacs

  emacs编辑器是自由软件基金会发行的软件产品,在Linux系统中比较流行。emacs的含义是宏编辑程序(editor macros),最开始是由Richard Stallman 编写的,其设计功能远不只是一个编辑工具,他的初衷是将emacs设计成一个Linux的shell,同时还希望增加一些现代操作系统应支持的用户环境,比如:mail的传递,web浏览器的查询,新闻(Usenet)阅读,日志功能等。另外,emacs中还包括了Lisp语言的解释执行功能。emacs功能很强大,使用它基本可以解决操作系统交互中的所有问题。当然emacs的强大功能带来的另一个问题是它占用的磁盘空间比较大。

4、gedit

  gedit包含语法高亮和标签编辑多个文件的功能,对中文支持很好,支持包括GB2312、GBK在内的多种字符编码。利用GNOME VFS库,它还可以编辑远程文件。它支持完整的恢复和重做系统以及查找和替换功能。它还支持包括多语言拼写检查和一个灵活的插件系统,可以动态的添加新特性。例如snippets和外部程序的整合。另外,gedit还包括一些小特性,包括行号显示,括号匹配。文本自动换行等。

二、vi编辑器使用介绍

1、vi的工作模式

vi的工作模式分为如下三种:

  命令模式:进入vi的默认模式,可以对文件进行复制、粘贴。删除、移动光标等。

  末行模式:用于文件的保存、退出、查找、替换、设置行号等。

  编辑模式:在此模式下可以输入字符。

vi编辑器的使用主要是根据操作需要在各种模式下切换,切换方法如图所示:

 

vi的常用命令:

1、文件打开、保存与关闭

  vi filename:打开或新建文件,并将光标置于第一行首。

  vi +n filename:打开文件,并将光标置于第n行首。

  vi + filename:打开文件,并将光标置于最后一行首。

  vi +/pattern filename:打开文件,并将文件置于第一个与pattern匹配的串处。

  vi -r filename:在上次正用vi编辑器时发生系统崩溃,恢复filename。

  vi filename...filename:打开多个文件,依次进行编辑。可在末行模式下采用e filename命令切换所编辑的文件。

保存文件和退出vi可以在命令模式输入下列指令完成。

  :w  //保存文件

  :w filename  //保存至filename文件

  :q  //退出编辑器,如果文件已修改请使用下面命令。

  :q!  //退出编辑器且不保存。

  :wq  //退出编辑器,且保存文件

  :x  //退出编辑器,且保存文件

保存和退出需要在末行模式下完成,因此以上输入冒号是表示vi从命令模式切换至末行模式,冒号后面的命令则表示完成的操作。感叹号表示强制执行。  

2、插入文本或行

在命令模式下,按以下命令,则进入插入模式,插入模式可输入文本,按esc键可返回命令模式。

  a:在当前光标位置的右边添加文本。

  i:在当前光标位置的左边添加文本。

  A:在当前行的末尾添加文本。

  I:在当前行的开始处添加文本。

  O:在当前行的上面新建一行。

  o:在当前行的下面新建一行。

  s:删除光标后的一个字符,然后进入插入模式。

  S:删除光标所在的行,然后进入插入模式。

  R:替换(覆盖)当前光标位置及后面的若干文本。

3、移动光标

(1)基本的移动方式

  在命令模式下,vi可以直接用键盘上的方向键来上下左右移动光标,也可以用小写英文字母k、j、h、l,分别控制光标上下左右移一格。在插入模式下,可以用方向键控制光标移动。

(2)同一行中光标移动方式

  数字0:移动到当前行行首。

  $:移动到光标所在行的行尾。

  ^:移动到光标所在行的行首。

  w:光标移动到下个字的开头。

  b:移动到当前字的字首,如果已经处于字首的,则光标回到上个字的开头。

  e:移动到当前字的字尾,如果已经处于字尾的,则光标跳到下个字的字尾。

  <n>w:右移n个字。

  <n>b:左移n个字。

(3)在页面间移动光标

  Ctrl + b:向上翻一页(相当于PageUp键)。

  Ctrl + f: 向下翻一页(相当于PageDown键)。

  Ctrl + u:向前翻半页。

  Ctrl + d:向后翻半页。

  H:将光标移到当前屏幕的最上行的行首。H表示Highest。

  xH:将光标移到当前屏幕的第x行。例如:2H就是将光标移到当前屏幕的第二行。注意当前屏幕的第二行并不一定是本文件的第二行。

  G:移动到文章最后。

  ):由游标所在位置至下一个句子的第一个字母。

  (:由游标所在位置至该句子的第一个字母。

  {:由游标所在位置至该段落的最后一个字母。

  }:由游标所在位置至该段落的第一个字母。

(4)删除、恢复字符或行

在命令模式下,可以使用下列命令进行删除或撤销操作。

  x:删除当前字符。

  nx:删除从光标开始的n个字符。

  dd:删除当前行。

  ndd:向下删除当前行在内的n行。

  u:撤销上一步操作。

  U:撤销对当前行的所有操作。

(5)搜索

  /<pattern>:向光标以下搜索pattern字符串。

  ?<pattern>:向光标以上搜索pattern字符串。

  n:向下搜索前一个搜索前一个搜索动作。

  N:向上搜索前一个搜索动作。

以上命令在命令模式下使用。

(6)设置行号

  :set nu  //显示行号

  :set nonu  //取消显示行号

(7)跳至指定行

  n+:向下跳n行。

  n-:向上跳n行。

  nG:跳到行号为n的行。

以上命令在命令模式下使用,另外,用户也可以在末行模式下跳转到制定行,例如:n,其中n为行号。

(8)复制粘贴

在命令模式下输入下列命令:

  yy:将当前行复制到缓存区,也可以用ayy复制,其中a为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。

  nyy:将当前行向下n行复制到缓冲区,也可以用anyy复制,a为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。

  yw:复制从光标开始到字尾的字符。

  nyw:复制从光标开始n个字。

  y^:复制从光标到行首的内容。

  y$:复制从光标到行尾的内容。

  p:粘贴剪贴板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用ap进行粘贴。

  P:粘贴剪贴板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用aP进行粘贴。

(9)替换操作

在末行模式下,输入下列命令:

  :s/old/new  //用new替换行中首次出现的old

  :s/old/new/g  //用new替换行中所有old

  :n,m s/old/new/g  //用new替换从n到n行里所有的old 

  :%s/old/new/g  //用new替换当前文件里所有old

vi与shell交互

在vi中,我们可以在末行模式下用"!"符号来访问Linux的shell,进行操作。格式如下:

: ! 命令

直接在!后面接着所要执行的命令即可。

转载于:https://www.cnblogs.com/RanWhoo/p/9927537.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值