首页 > 其他分享 >文本编辑器(Vi)及使用方法

文本编辑器(Vi)及使用方法

时间:2023-12-03 22:22:22浏览次数:35  
标签:bin 文本编辑 Vi 单词 命令 root 文本 方法 光标

可使用的文本编辑器:

  • Emacs——著名的集成开发环境和文本编辑器,被公认为是最受专业程序员喜爱的代码编辑器之一,有着极强扩展性的编程语言,从而实现了包括编程、编译乃至网络浏览等等功能的扩展。
  • Nano——一种被许多可启动Linux系统以及其他空间有限的Linux环境所使用的流行且简化的文本编辑器。例如在Gentoo Linux安装过程中使用nano编辑文本文件。
  • Gedit——在桌面运行的GNOME文本编辑器。
  • Jed——一种为编程人员开发的面向屏幕的编辑器。通过使用不同颜色,jed可以突出显示所创建的代码,以便开发人员更容易地阅读代码并发现语法。可使用Alt键选择不同菜单来操作文本。
  • Joe——joe编辑器与许多PC文本编辑器类似。使用控制键和箭头键进行移动。单击Ctrl+C进行无保存退出,或者单击Ctrl+X进行保存并退出。
  • Kate——来自kdebase包的外观漂亮的编辑器。它拥有许多附加功能,比如突出显示不同类型的编程语言以及用来管理自动换行的控件。
  • Mcedit——在该编辑器中,可以使用功能键获取、保存、复制、移动和删除文本。与jod和joe一样,mcedit也是面向屏幕的,来自RHEL和Fedora中的mc包。
  • Nedit——极佳的程序员编辑器,需要安装可选的nedit包.
此中内容为特殊补充:

在/etc/passwd文件中修改对应用户的shell路径,可以修改默认使用的shell类型。

[root@fedora32 ~]# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

[root@fedora32 ~]# vi /etc/passwd

root:x:0:0:root:/root:/bin/bash

root:x:0:0:root:/root: /usr/bin/bash

将第三方安装的文本编辑器路径添加到shell文档,以便后续查找。

[root@fedora32 ~]# !400 #查看Linux中所有可用的shell

cat /etc/shells

/bin/sh

/bin/bash

/usr/bin/sh/usr/bin/bash

[root@fedora32 ~]# which nano #查找nano编辑器的路径

/usr/bin/nano

[root@fedora32 ~]# echo /usr/bin/nano >> /etc/shells #将第三方安装的文本编辑器路径添加到shell列表中

[root@fedora32 ~]# !400

cat /etc/shells

/bin/sh

/bin/bash

/usr/bin/sh

/usr/bin/bash

/usr/bin/nano

[root@fedora32 ~]# which emacs

/usr/bin/emacs

[root@fedora32 ~]# echo /usr/bin/emacs >> /etc/shells

[root@fedora32 ~]# !400

cat /etc/shells

/bin/sh

/bin/bash

/usr/bin/sh

/usr/bin/bash

/usr/bin/nano

/usr/bin/emacs

Vim或vi编辑文本

Vi或vim中的主要操作模式有两种:命令和输入。Vi编辑器通常以命令模式启动。在可以添加或者更改文件中的文本之前,需要输入一条命令,告诉vi你想要做什么。

添加文本

若想进入输入模式,可以输入一个输入命令字母,当完成文本输入之后,单击Esc键(有时需要单击两次)返回到命令模式。

  • a——添加命令。通过该命令,可以从光标的右边开始输入文本。
  • A——在命令结束处添加。通过该命令,可以从当前的末尾行开始输入文本。
  • i——插入命令。通过该命令,可以从光标的左边开始输入文本。
  • I——在命令开始前插入。通过该命令,可以从当前行的开头输入文本。
  • o——在命令之下打开。该命令在当前行之下打开一个新行,并进入插入模式。
  • O——在命令之上打开。该命令在当前行之上打开一个新行,并进入插入模式。

输入内容之后,并单击Enter键,完成输入之后,单击Esc键返回命令模式。

文本中移动

想要在文本中移动,可以使用上、下、左、右箭头键或者h(向左)、l(向右)、j(向下)和k(向上)移动光标。

  • w——将光标移动到下一个单词的开头(用空格、制表符或标点符号分隔)
  • W——将光标移动到下一个单词的开头(用空格或制表符分隔)
  • b——将光标移动到前一个单词的开头(用空格、制表符或标点符号分隔)
  • B——将光标移动到前一个单词的开头(用空格或制表符分隔)
  • 0——将光标移到当前行的开头
  • $——将光标移到当前行的末尾
  • H——将光标移到屏幕的左上角(屏幕上的第一行)
  • M——将光标移到屏幕中间行的第一个字符
  • L——将光标移到屏幕的左下角(屏幕上的最后一行)

删除、复制和更改文本

可以使用以下来删除和更改文本。

  • x——删除光标下的字符
  • X——直接删除光标之前的字符
  • d<?>——删除一些文本
  • c<?>——更改一些文本
  • y<?>——复制一些文本

上述内容中,每个字母后面的<?>确定了可使用移动命令的位置,从而选择删除、更改或者复制的内容。

  • dw——删除(d)当前光标位置之后的一个单词(w)
  • db——删除(d)当前光标位置之前的一个单词(b)
  • dd——删除(d)整个当前行(d)
  • c$——更改(c)从当前字符开始到当前行末尾的字符(实际上是删除这些字符)($),并进入输入模式
  • c0——更改(c)从前一个字符开始到当前行开头的字符(实际上是删除这些字符)(0),并进入输入模式
  • c1——删除(c)当前字母(l),并进入输入模式
  • cc——删除(c)当前行(c),并进入输入模式
  • yy——将当前行(y)复制(y)缓冲区
  • y)——将光标右边的当前句子())复制(y)到缓冲区
  • y}——将光标右边的当前段落(})复制(y)到缓冲区

还可以使用数字对上述命令进行进一步修改,如下:

  • 3dd——从当前行开始,删除(d)3(3)行(d)
  • 3dw——删除(d)接下来的3(3)个单词(w)
  • 5cl——更改(c)接下来的5个(5)字母(l)
  • 12j——向下(j)移动12行(12)
  • 5cw——删除(c)接下来的5个(5)单词(w),并进入输入模式
  • 4y)——复制(y)接下来的4个(4)句子())

粘贴(放置)文本

在将文本复制到缓冲区之后(通过删除、更改或复制文件),可使用字母p或者P将该文本放回到文本中。

  • P——若被复制的文本由字母或单词组成,则将这些文本放到光标的左边;若被复制的文本包含文本行,则将其放到当前行的上一行。
  • p——若被缓存的文本由字母或者单词组成,则将其放到光标的右边;若包含文本行,则放到当前行的下一行。

重复命令

在删除、更改或者粘贴文本之后,可以通过输入一个句点(.)重复相关行为。例如,将光标移到名称vagrant的开头,然后输入cw和VCMD,从而将vagrant改为VCMD。随后在文件中搜索vagrant的下一次出现,若找到,将光标置于该名称的开头,并单击一个句点(.)。以此类推完成后面的替换。可按这种方式搜索一个文件,单击n转到下一次出现的位置,然后单击句点更改单词。

在文件中跳过

  • Ctrl+f——向前翻页,一次一页
  • Ctrl+b——向后翻页,一次一页
  • Ctrl+d——一次向前翻半页
  • Ctrl+u——一次向后翻半页
  • G——转到文件的最后一行
  • 1G——转到文件的第一行
  • 35G——转到任意行号(此时为35)

搜索文本

  • /hello——向前搜索单词hello
  • ?hello——向后搜索单词hello
  • /the.*fhh——向前搜索包含单词the并在此之后又包含单词fhh的行
  • ?[pP]rint——向后搜索print或者Print。

在输入了一个单词搜索之后,只需要输入n或者N可在相同方向n或反方向N上再次搜索单词。

退出vi

完成操作后可以使用下面所示的命令保存或退出文件。

  • ZZ——将当前更改保存到文件,并退出vi
  • :w——保存当前文件,但不退出vi。想要回退保存的内容,可以单击u键撤销更改,Ctrl+R用于撤销u的作用内容
  • :wq——工作过程与ZZ命令相同
  • :q——退出当前文件。但只有在没有未保存的更改内容时该命令才起作用。
  • :q!——退出当前文件,但不保存对文件所作的更改。

特殊命令用法

在vi中属于:!并紧跟一个shell命令名,可以运行shell命令,命令运行后单击Enter返回vi编辑器。

[root@fedora32 ~]# vi passwdbak

:!date

[No write since last change]

Sun 03 Dec 2023 01:45:24 PM UTC

Press ENTER or type command to continue

:!pwd

[No write since last change]

/root

Press ENTER or type command to continue

:!bash #在vi编辑器中输入此命令,打开一个新的shell

[No write since last change]

[root@fedora32 ~]# pwd

/root

[root@fedora32 ~]# ls

chmodbak original-ks.cfg passwdbak

[root@fedora32 ~]# exit #退出shell,返回到vi

若忘记了正在编辑的文件名,则可以单击Ctrl+g键显示改文件名,并在屏幕底部显示当前所在行。此外,还可以显示文件的总行数,到当前所在位置为止的内容占文件的百分比以及光标所在的列号。

"passwdbak" [Modified] 26 lines --53%--

使用ex模式

Vi编辑器最初基于ex编辑器,因此无法在全屏模式下工作。当输入一个冒号并使光标转到屏幕的底部时,实际上已处于ex模式。

  • :g/hello——搜索单词hello,并打印文件中每次出现该单词的所在行(若输出结果满屏,该输出将被发送到more命令)
  • :s/hello/hi——将当前行中首次出现的单词hello替换为hi
  • :g/hello/s/hi——将文件每一行中首次出现的单词hello替换为hi
  • :g/hello/s//hi/g——将文件中所有出现的单词hello替换为hi
  • :g/hello/s//hi/gp——将文件中所有出现的单词hello替换为hi。然后打印每一行,一边看到所做的更改(若输出多于一页,该输出将被发送到less命令)

想要学习更多关于vi编辑器的知识,可以尝试输入vimtutor。此命令将在vim编辑器中打开一个教程,介绍可以在vim中使用的常见命令和功能。

标签:bin,文本编辑,Vi,单词,命令,root,文本,方法,光标
From: https://www.cnblogs.com/sijiu/p/17873915.html

相关文章

  • Linux关于vim编辑器心得
    Linux系统中的编辑器是对一些服务配置和文件进行编辑的的工具,类型于windows系统中的记事本Vim编辑器主要有三种模式:命令模式、编辑模式、和末行模式(扩展命令模式)命令模式:控制光标、对文件进行复制、粘贴、删除、查询等操作。编辑模式:进行文本录入与更改。末行模式:文档保存与退......
  • R语言Outliers异常值检测方法比较|附代码数据
    原文链接:http://tecdat.cn/?p=8502原文出处:拓端数据部落公众号最近我们被客户要求撰写关于异常值检测的研究报告,包括一些图形和统计输出。识别异常值的方法有很多种,R中有很多不同的方法。 关于异常值方法的文章结合了理论和实践。理论一切都很好,但异常值是异常值,因为它们不遵......
  • excute方法和submit方法
    区别:  1.参数    execute Runnable    submit   Callable  2.返回值    execute:void    submit:Future  3.异常    execute会在子线程中抛出异常,在主线程捕捉不到    submit不会字码抛出异常,而是会讲一次暂时存起来,等Future.get......
  • 软件工程读后感8-代码阅读方法与实践
    最近,我阅读了代码阅读方法与实践的下一部分。在C程序中,指针一般用来:构造链式数据结构、引用动态分配的数据结构、实现引用调用、访问和迭代数据元素、传递数组参数、引用函数、作为其他值的别名、代表字符串、直接访问系统内存。过去,我对于指针的作用的了解不够,将来,我会尽可能的多......
  • [Codeforces] CF1807E Interview
    题目翻译有\(n\)堆石头,其中\(n-1\)堆都只有重量为一克的石头,剩下一堆有则有一块有两克的石头和若干重量为一克的石头。你的任务是在\(30\)次询问内推理出那一堆有重量为两克的石头是第几堆。首先输入\(n\),接下来输入\(n\)个数\(a_1,a_2\dotsa_n\),其中\(a_i\)表示......
  • 【PUSDN】centos查看日志文件内容,包含某个关键字的前后5行日志内容,centos查看日志的几
    简述centos查看日志的几种方法centos查看日志文件内容,包含某个关键字的前后5行日志内容前情提示系统:一说部分截图、链接等因过期、更换域名、MD语法等可能不显示,可联系反馈(备注好博文地址),谢谢❤带有#号、删除线、不操作、不执行字样的为提示或者备份bash,实际不执行如果无法下载......
  • Java应用导致CPU使用率过高的排查方法
    1、搭建CentOS7.9,部署JDK8:2、编写测试代码Test.java:publicclassTest{publicstaticvoidmain(String[]args){System.out.println("测试死循环对CPU的影响");while(true){}}}3、编译Test.java:#javacTest.java4、运行Test程序:#jav......
  • python中级之数据类型内置方法
    引子 数据类型是用来记录事物状态的,而事物的状态是不断变化的(如:一个人年龄的增长(操作int类型),单个人名的修改(操作str类型),学生列表中增加学生(操作list类型)等),这意味着我们在开发程序时需要频繁对数据进行操作,为了提升我们的开发效率,python针对这些常用的操作,为每一种数据类型内......
  • The 13th Shandong ICPC Provincial Collegiate Programming Contest
    Preface昨天VP的那场没有字符串还没有原形毕露,今天遇到一个后期字符串直接和祁神大眼瞪小眼了最后一个半小时祁神狂冲F成功写出两个version的假算法,而我已经滚去补之前欠下的题目了赛后被徐神狠狠拷打了,评价为徐神是我们的红太阳,没有他我们都不能活A.Orders签到,按截止时间......
  • 基础-字符串的常用方法
    1、字符串的大小写转换.supper()---小写转换成大写.lower()---转换成小写.title()#单词首字母大写示例代码s="python"s1=s.upper();print(s1)#PYTHONs="PYTHON"s1=s.upper();print(s1)#pythons="ihaveadream"s1=s.title()#单词首字母大写print(s......