可使用的文本编辑器:
- 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中使用的常见命令和功能。 |