Linux 系统文本编辑器的使用总结


Linux世界中,绝大多数的配置文件都是以ASCII的纯文本形式存在,因此利用简单的文字编辑软件就能够修改设置了。Linux下的文本编辑器有很多,这里介绍下常用的vi、vim、nano的简单使用。

1. vi

所有的类Unix系统都会内置vi文本编辑器,其他的文本编辑器则不一定存在。很多软件默认也是使用vi作为他们的编辑界面。所以必须学会vi,否则很多命令根本没法使用。

vi共分为三种模式,分别是一般模式、编辑模式、命令模式。一般模式可以分别和编辑模式、命令模式进行互相切换,但是编辑模式和命令模式不能进行互相切换。
一般模式
vi直接打开一个文件,就进入一般模式了(默认模式),这个模式下可以进行删除,复制,粘贴,但是不能进行文本编辑。
编辑模式
在一般模式下,按下i/Io/Oa/Ar/R任意一个字母就会进入编辑模式,通常左下方会出现INSERT或者REPLACE的字样。按下ESC键就会退回到一般模式。
命令模式
在一般模式下,按下:/?这三个符号任意一个,就会进入命令模式,光标会移动到最下面那行。该模式下可以进行查找、替换、读取、保存、离开、显示行号等操作。按下ESC键就会退回到一般模式。
在这里插入图片描述

1.1. 一般模式

创建一个tmp.txt文件,直接使用命令vi tmp.txt会进入到一般模式的界面。这是新文件界面,如下所示,光标在第一行,中间的~符号表示没有任何东西,最下面一行是状态显示行,显示的是文件名,后面的[New File]表示这是一个新文件。
在这里插入图片描述
如果打开的是旧文件,则显示的如下所示,光标在第一行,最后一行依次显示的是当前文件的文件名、总行数、总字符数。
在这里插入图片描述

一般模式中的移动光标方法描述
h或者左方向键光标向左移动一个字符。
如果想要移动对应字符数,直接在前面输入数字即可,比如向左移动3个字符,则先按3,再按h或者左方向键。
l或者右方向键或者空格键光标向右移动一个字符。
如果想要移动对应字符数,直接在前面输入数字即可,比如向右移动3个字符,则先按3,再按l或者右方向键。
k或者上方向键光标向上移动一行,停在对应字符处。
如果想要移动对应行数,直接在前面输入数字即可,比如向上移动3行,则先按3,再按k或者上方向键。
j或者下方向键光标向下移动一行,停在对应字符处 。
如果想要移动对应行数,直接在前面输入数字即可,比如向下移动3行,则先按3,再按j或者下方向键。
-减号,光标移动到上一行的非空格字符处。
如果想要移动对应行数,直接在前面输入数字即可,比如向上移动3行,则先按3,再按减号。
+或者[Enter]加号或者Enter,光标移动到下一行的非空格字符处。
如果想要移动对应行数,直接在前面输入数字即可,比如向下移动3行,则先按3,再按加号或者确认键。
Ctrl+f或者[Page Down]光标向下移动一页屏幕。
Ctrl+b或者[Page Up]光标向上移动一页屏幕。
Ctrl+d光标向下移动半页屏幕。
Ctrl+u光标向上移动半页屏幕。
0或者[Home]零或者Home键,光标移动到该行开始字符处。
$或者[End]$或者End键,光标移动到该行结尾字符处。
H光标移动到当前屏幕第一行的首个非空格字符处。
M光标移动到当前屏幕中间行的首个非空格字符处。
L光标移动到当前屏幕最后一行的首个非空格字符处。
G光标移动到当前文档的最后一行。
移动到该文档的第几行,可以直接使用nGn是对应的行号,从1开始。
gg光标移动到当前文档的第一行,相当于1G
一般模式中的删除复制粘贴方法描述
x,X小写的x删除光标所在处的一个字符。
大写的X删除光标之前的一个字符。
如果想要删除多个连续字符,则直接先输入要删除的字符数,再按x或者X
dd删除光标所在行的内容。
如果想要删除光标所在行向下连续多行,则直接先输入要删除的行数,再按dd
例如20dd,从光标所在行开始向下删除20行。
d1G删除光标所在行到第一行的所有数据。
dG删除光标所在行到最后一行的所有数据。
d0这是零,删除光标所在处到该行第一个字符的所有数据。
d$删除光标所在处到该行最后一个字符的所有数据。
yy复制光标所在行的内容。
如果想要复制光标所在行向下连续多行,则直接先输入要复制的行数,再按yy
例如20yy,从光标所在行开始向下复制20行。
y1G复制光标所在行到第一行的所有数据。
yG复制光标所在行到最后一行的所有数据。
y0这是零,复制光标所在处到该行第一个字符的所有数据。
y$复制光标所在处到该行最后一个字符的所有数据。
p,P小写p将已复制的数据在光标的下一行粘贴。如果是y0y$复制的则粘贴在光标后面。
大写的P将已复制的数据在光标的上一行粘贴。如果是y0y$复制的则粘贴在光标前面。
J将光标所在行的下一行的数据合并到光标所在行后边,合为一行。
u撤销一步操作。
Ctrl+r恢复一步操作。和u相反,配合使用。
.点,重复上一步操作。比如重复删除、重复粘贴等操作。

1.2. 编辑模式

在一般模式下,按下i就会进入编辑模式,左下方会出现INSERT字样,按下ESC键就会退回到一般模式。在编辑模式中,键盘上除了ESC键外,其他键都可以进行一般输入。要注意的是Tab键输入的结果和多组空格键输入的结果是不一样的,虽然都显示的是空格。
在这里插入图片描述

一般模式切换到编辑模式的按钮描述
i,I进入插入模式(Insert mode)左下方会有INSERT字样。
i从目前光标所在处的字符前开始插入。
I从目前光标所在行的第一个非空格字符前开始插入。
a,A进入插入模式(Insert mode)左下方会有INSERT字样。
a从目前光标所在处的字符后开始插入。
A从目前光标所在行的最后一个字符(含空格)后开始插入。
o,O进入插入模式(Insert mode)左下方会有INSERT字样。
o从目前光标所在行的下面新增一空白行,在该新增行的开始处进行插入。
O从目前光标所在行的上面新增一空白行,在该新增行的开始处进行插入。
r,R进入替换模式(Replace mode)
r替换光标所在处字符一次。按下r后,左下方不会有REPLACE字样,直接输入新字符即可成功替换,替换完毕又自动变为一般模式了。
R会一直将输入的字符替换光标所在处字符,直到按下ESC键为止。按下R后,左下方会有REPLACE字样 ,表示进入了替换模式,所有的输入字符都会替换光标所在处的字符。

在这里插入图片描述

1.3. 命令模式

在一般模式下,按:就会进入命令模式,可以通过以wq进行保存后离开。
:表示命令模式,w表示写writeq表示退出quit!表示强制执行。

命令模式中的保存离开命令描述
:w将编辑的数据写入硬盘文件中。
:w!如果文件的属性为只读,则通过!强制写入。具体是否能成功写入,取决于你对该文件的权限。
:q离开vi
:q!文件被修改,但不想存储,使用!强制离开不保存文件。
:wq保存后离开。
:wq!强制保存后离开。
ZZ大写的Z,若文件没有改动,则直接离开,若文件有改动,则保存后离开。
命令模式中的查找替换命令描述
/Str输入/,然后输入目标字符串Str,按下Enter键,则会查找当前文档中所有Str字符串并标记显示。
使用n查找下一个Str,使用N查找上一个Str,与?Str命令查找方向相反。
?Str输入?,然后输入目标字符串Str,按下Enter键,则会查找当前文档中所有Str字符串并标记显示。
使用n查找上一个Str,使用N查找下一个 Str,与/Str命令查找方向相反。
:n1,n2s/str1/str2/g在第n1n2行之间的内容中查找字符串str1,并将其替换为str2
例如要替换第二行的字符串wordword1,则命令为:2,2s/word/word1/g
:n,$s/str1/str2/g在第n行到最后一行之间的内容中查找字符串str1,并将其替换为str2
如果将g改为gc,则会在替换前提示用户确认。
例如要替换第二行到最后一行的字符串wordword1,并且需要确认提示,则命令为:2,$s/word/word1/gc,按下Eenter键后会出现提示replace with word1(y/n/a/q/l/^E/^Y)?,按下y表示确认替换。若一直按y,最终会出现在多少行内替换了多少个字符串的结果说明,比如39 substitutions on 24 lines,表示在24行中替换了39个字符串。

使用了替换操作,如果想要恢复,可以使用u进行撤销操作。

命令模式中的其他命令描述
:set nu显示行号,执行之后,会在每一行的前缀显示行号。
:set nonu取消行号显示。
:w [filename]w后面加空格,再加上新文件的名字,表示将当前内容另存为一个新文件
:n1,n2 w [filename]n1n2是行号,加上空格,加上w,加上空格,再加上新文件的名字,会将指定行号中间的内容(包括指定行号的行)另存为一个新文件
:r [filename]r后面加空格,再加上一个存在的文件名,表示将该文件的内容追加到当前光标所在行的下一行
:! [command]感叹号!后面加空格,再加上需要执行的命令,可以直接显示命令执行结果。
比如:! ls /root/test,会显示出test目录下的文件列表。按Enter键则会返回到vi界面。如下图所示。

在这里插入图片描述

2. vim

可以将vim视为vi的高级版本,vim可以用颜色或底线等方式显示一些特殊信息,例如会根据文件的扩展名或者文件内的开头信息自动对文件内容进行语法判断,再用颜色来显示一些特殊信息。vim可以认为是一个程序编辑器。

vim的一般用法和vi一模一样,可以直接参考上面的vi内容。实际上目前大部分的linux发行版都以vim替换vi了,使用vi就相当于使用的vim

2.1. 块选择复制

快捷键描述
v字符选择,会将光标移动经过的字符进行反白选择。
V行选择,会将光标经过的行进行反白选择。
Ctrl+v块选择,可以用矩形的方式进行内容选择。
y将反白的内容进行复制。
p进行粘贴操作。
d将反白的地方进行删除。

将字符串host1host9一起复制粘贴到每行的末尾后边两个空格处。
使用vim打开文hosts.txt件。
在这里插入图片描述
使用Ctrl+v组合键,左下角会出现块选择的提示-- VISUAL BLOCK --
在这里插入图片描述
先将光标从h移动到1,再移动到最后一行的9,会发现移动目标字符串hostx都会被选中反白显示。
在这里插入图片描述
按下y进行复制,此时反白消失,最后再将光标移动到需要粘贴的地方。我们要粘贴到每行的后面空两格处,所以先进入编辑模式在第一行后边添加两个空格,然后再返回一般模式,将光标移动到第一行后边的两个空格后,按下p进行粘贴。会发现整块都粘贴过来了。
在这里插入图片描述

2.2. 多文件操作

可用于将一个文件中的部分内容复制到另一个文件中。
(1)使用vim打开两个文件,直接在vim后面按顺序加上对应文件名。

[root@product vitest]# vim man.config hosts.txt

(2)在一般模式中使用:files查看目前打开的所有文件。

:files
  1 %a   "man.config"                   line 1
  2      "hosts.txt"                    line 0
Press ENTER or type command to continue  #按下任意键继续

(3)接下来就是通过:n:N来进行文件切换,然后就是普通的复制粘贴操作了。

命令描述
:files列出当前vim打开的所有文件。
:n切换到下一个文件的编辑窗口。
:N切换到上一个文件的编辑窗口。

2.3. 多窗口功能

同一个文件或者不同文件同时打开多个窗口,方便对照进行操作。
使用vim打开一个文件,如果要在新窗口打开一个相同文件的话,直接在一般模式下使用:sp,如果要在新窗口打开另一个文件的话,需要使用:sp filename,可以使用相关组合键在多个文件窗口之间进行切换(组合按键的方法是:先按住Ctrl键不放,在按下w键后放开所有按键,然后再按下切换的方向键或者对应字母键)。

组合键命令描述
:sp [filename]打开一个新的文档编辑窗口。
Ctrl+w+j
Ctrl+w+下方向键
光标移动到下一个窗口。
Ctrl+w+k
Ctrl+w+上方向键
光标移动到上一个窗口。
Ctrl+w+q相当于在当前窗口执行离开命令:q

2.4. 文件恢复

vim有恢复功能,也就是说当你的系统出现突然死机之类的问题,没来得及保存文档,可以通过.filename.swp文件进行恢复。

当我们在使用vim编辑test.txt时,vim会在被编辑文件所在目录下新建一个名为.test.txt.swp的文件,我们对test.txt文件的操作都会被记录到一个叫.test.txt.swp的暂存文件中,正常操作完毕保存的话该暂存文件会自动消失,如果编辑过程意外中断的话,该暂存文件不会消失,再次编辑的时候可以通过该swp文件进行恢复,恢复完毕要记得删除该swp文件,不然每次使用vim编辑该文件都会提示有暂存文件需要处理。

下面我们模拟一下中断操作:
(1)使用vim打开一个文件man.config。在一般模式下使用组合键Ctrl+zvim操作会被丢到后台执行,会出现下面的界面。

[root@product vitest]# vim man.config 

[1]+  Stopped                 vim man.config
[root@product vitest]#

(2)此时通过ls -al命令可以看到.man.config.swp文件。使用kill -9 %1命令模拟中断vim工作。可以看到swp文件还是存在的。

[root@product vitest]# ls -al
total 40
drwxr-xr-x  2 root root  4096 Oct 28 16:09 .
drwxrwxrwt. 9 root root  4096 Oct 28 14:21 ..
-rw-r--r--  1 root root  4104 Oct 28 15:04 man.config
-rw-r--r--  1 root root 16384 Oct 28 16:09 .man.config.swp
[root@product vitest]# kill -9 %1

[1]+  Stopped                 vim man.config
[root@product vitest]# ls -al .man.config.swp 
-rw-r--r-- 1 root root 16384 Oct 28 16:09 .man.config.swp
[root@product vitest]# 

(3)接下来在使用vim打开man.config文件,会看到如下提示界面。

E325: ATTENTION  #错误代码
Found a swap file by the name ".man.config.swp"  #说明有暂存文件存在
          owned by: root   dated: Wed Oct 28 16:09:12 2020
         file name: /tmp/vitest/man.config  #说明该暂存文件属于哪个文件
          modified: no
         user name: root   host name: product
        process ID: 28729
While opening file "man.config"
             dated: Wed Oct 28 15:04:37 2020
#下面说明可能发生这个错误的两个主要原因和解决方法
#(1)另一个程序可能正在编辑同一文件。如果是这样的话,请注意,不要在同一实例中出现两个不同的实例在进行更改时创建文件。放弃,或者谨慎地继续。
(1) Another program may be editing the same file.  If this is the case,
    be careful not to end up with two different instances of the same
    file when making changes.  Quit, or continue with caution.
#(2)该文件的编辑会话崩溃。如果是这种情况,请使用":recover"或者"vim -r man.config"恢复更改,如果您已经这样做了,删除掉交换文件".man.config.swp"来避免这个信息。
(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r man.config"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".man.config.swp"
    to avoid this message.
#暂存文件存在,下面说明你可以进行的操作
Swap file ".man.config.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
操作描述
[O]pen Read-Onlyo,以只读的方式打开该文件,可以用在只想查阅文件内容不想编辑的情况下。
(E)dit anywaye,以正常的方式打开该文件,不会载入暂存文件内容,容易出现两个用户互相改变对方文件的问题。
(R)ecoverr,加载暂存文件的内容,救回之前未保存的工作,当救回之前未保存工作之后,重新保存离开,需要手动删除那个暂存文件。
(D)elete itd,确定那个暂存文件是无用的,打开文件前会删除该暂存文件。
(Q)uitq,直接离开vim,不会进行任何操作。
(A)borta,忽略该编辑行为,离开vim,和quit非常类似。

2.5. 行为记录

vim会主动将你的行为记录下来,方便下次使用,这个记录操作的文件就是~/.viminfo,比如会记录上次离开时光标所在的位置等。

[root@product ~]# ls -al
total 60
dr-xr-x---.  4 root root 4096 Oct 28 19:07 .
dr-xr-xr-x  18 root root 4096 Jan 12  2020 ..
-rw-------   1 root root 3124 Oct 14 23:30 .bash_history
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-------   1 root root   35 Jul 20 16:57 .lesshst
-rw-------   1 root root  578 Jan 12  2020 .mysql_history
drwxr-xr-x   2 root root 4096 Mar 28  2018 .oracle_jre_usage
-rw-------   1 root root    5 Jan 16  2020 .rediscli_history
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc
drwxr-xr-x   2 root root 4096 Oct 14 15:12 test
-rw-------   1 root root 8096 Oct 28 19:07 .viminfo
[root@product ~]# 

2.6. 环境设置

安装好vim之后会在/etc目录下有一个vim的配置文件,叫做vimrc。可以使用命令ls vimrc查看下是否存在这个文件。这个文件是当前整个系统的vim的设置,如果在这里修改配置的话,会影响所有用户的vim配置。所以在你的用户根目录下即~目录下新建一个.vimrc文件(),该文件就是你自己的vim配置文件,在这里的更改只会影响你自己。

[root@product ~]# cd /etc
[root@product etc]# ls vimrc
vimrc
[root@product etc]# 

.vimrc文件中,以双引号后面的内容为注释。命令跟在vim中的命令模式的命令是一样的。比如想让我的vim打开时候显示行号,只需在这个文件里面添加一行set nu或者:set nu即可,有没有冒号效果一样。下面是一个示例设置文件。

[root@product ~]# vim .vimrc
[root@product ~]# cat .vimrc
set hlsearch "高亮度反白
set backspace=2 "可随时用退格键删除
set autoindent "自动缩排
set ruler "可显示最后一行的状态
set showmode "可显示左下角那一行的状态
set nu "可在每行开始的地方显示行号
set bg=dark "显示不同的底色色调
syntax on "进行语法检验,颜色显示
[root@product ~]# 
环境设置参数描述
:set显示与系统默认值不同的设置值,一般就是自己修改过的配置。
:set all显示目前所有环境参数设置值
:set nu
:set nonu
用来设置是否显示行号。
:set hlsearch
:set nohlsearch
hlsearch的意思是hight light search高亮度查找,用来设置是否将查找的字符串反白显示。默认是hlsearch
:set autoindent
:set noautoindent
用来设置是否进行自动缩排。
所谓缩排,就是当按下Enter键编辑新的一行时,光标不会在行首,而是在与上一行第一个非空格字符对齐处。
:set backup用来设置是否自动保存备份文件。不设置该选项则不自动备份。
如果设置了backup,那么当改动任何一个文件时,则原文件都会在当前文件目录下被另存为一个名称为filename~的文件。
:set ruler用来设置是否显示右下角的状态栏。不设置该选项则不显示。
:set showmode用来设置是否显示左下角的状态栏。不设置该选项则不显示。
:set backspance=[0/1/2]一般来说,在进入编辑模式的时候,可以直接通过退格键删除任意字符的,
但是某些linux发行版则不允许。此时就可以通过该选项来进行设置,
当设置值为2时,可以删除任意字符,为0或者1时,仅可删除刚才输入的字符,无法删除原本就存在的文字。
:syntax on
:syntax off
用来设置是否依据程序相关语法显示不同颜色。
:set bg=dark
:set bg=light
用来设置不同的颜色色调。

2.7. 换行字符

WindowsDOS)系统中文本换行字符为^M$,是由CRLF两个符号组成。
Linux系统中文本换行字符为$,是由LF这一个字符组成。
因为换行字符不同,所以不建议在Windows系统中将文本编辑好之后再上传到Linux中,如果是一个脚本程序的话,执行很容易发生错误。
(1)查看文本的换行字符,可以直接使用cat -A filename这个命令。下面这个hosts.txt文件是直接在linux上编写的。可以看到换行符号为$
在这里插入图片描述
host1.txt这个文件是在windows上编写好的,通过rz命令上传到linux上的,可以看到换行符号为^M$
在这里插入图片描述
(2)如果换行符不同,就需要手动转一下。具体的转换命令为:
dos2UNIX [-kn] file [newfile]
UNIX2dos [-kn] file [newfle]

参数描述
-k保留该文件原本的Mtime,也即是说这个换行符转换不会修改该文件的更新时间。
-n保留原本的旧文件,将修改后的内容输出到新文件。

Linux下的文件或目录有三种时间:
访问时间(Atime):记录该文件被访问的最后一次的时间,即Atime
修改时间(Mtime):当对这个文件内容进行修改后,Modify显示的时间就会更新一次,即Mtime
状态改变时间(Ctime):当文件的内容、更改文件权限、链接属性时随文件的Inode更改而改变的时间,即Ctime
参考博客:Linux - atime,mtime,ctime以及用touch指令来进行修改

比如我需要将hosts1.txt的换行符更换为linux下的,并且保留原文件,新文件为host2.txt,并且要求不修改更新时间,对应命令如下:dos2UNIX -k -n hosts1.txt hosts2.txt

[root@product vitest]# ll
total 24
-rw-r--r-- 1 root root   25 Oct 29 17:58 hosts1.txt
-rw-r--r-- 1 root root  342 Oct 28 17:37 hosts.txt
-rw-r--r-- 1 root root 4115 Oct 28 17:52 man.config
-rw-r--r-- 1 root root 4101 Oct 28 15:00 man.test.config
[root@product vitest]# dos2UNIX -k -n hosts1.txt hosts2.txt
-bash: dos2UNIX: command not found

我这里提示命令没找到,可以参考这里安装下:
参考博客:dos2unix命令找不到怎么办

2.8. 编码转换

使用file命令查看文件编码以及换行符。

[root@product vitest]# file hosts.txt 
hosts.txt: ASCII text
[root@product vitest]# file hosts1.txt 
hosts1.txt: ASCII text, with CRLF line terminators
[root@product vitest]# file vi.big5.txt 
vi.big5.txt: ISO-8859 text, with CRLF line terminators
[root@product vitest]# 

使用iconv命令转换文件编码。
big5码转换为utf8编码,并且将内容输出到一个新文件vi.utf8.txt中。

[root@product vitest]# iconv -f big5 -t utf8 vi.big5.txt -o vi.utf8.txt 
[root@product vitest]# file vi*
vi.big5.txt: ISO-8859 text, with CRLF line terminators
vi.utf8.txt: UTF-8 Unicode text, with CRLF line terminators
[root@product vitest]# 

iconv命令简介:
iconv --list
iconv -f 原编码 -t 新编码 filename [-o new file]

参数描述
--list列出iconv支持的编码。
-ffrom,后面接原本的编码。
-tto,后面接新编码。
-o如果要保留原文件,使用该参数后面写新文件的名字,可以将编码转换完毕的内容输出到新的文件中。

2.9. 编辑压缩包内的文件

在平常工作中要经常把打包好的程序发布到linux机器中,有时候需要更改包内的文件,特别是对jar包中的配置文件进行更改后还要重新打包上传。比较麻烦,在这介绍一种通过vim命令不解压压缩包直接更改文件内容的方法。下面以查找并修改demo.jar中的application.yml为例:
(1)打开压缩包。此时便可以看到jar包内根目录下的所有文件的列表。
vim demo.jar
(2)查找目标文件。输入斜线/,然后输入目标文件名。这里会进行模糊匹配。
/application.yml
(3)打开目标文件。光标移动到该文件上之后敲回车,进入编辑界面。
(4)修改保存
更改文件后,使用vim命令保存并退出即可。这里注意得退出两次。第一次从文件编辑界面退出到文件列表,第二次从文件列表界面退出到命令行界面。或者可以直接使用ZZ进行保存退出。

第一步打开压缩包的时候可能会提示如下错误:

这种问题出现的原因是因为机器上没有安装unzip,zip。安装即可:

yum install unzip
yum install zip

3. nano

nano是一个字符终端的文本编辑器,比vi/vim要简单得多,比较适合linux初学者使用。某些linux发行版的默认编辑器就是nano

3.1. 安装使用

使用nano命令进行文本编辑,提示命令没有发现,可以直接安装。

[root@product test]# nano test.txt
-bash: nano: command not found
[root@product test]# yum -y install nano

安装好后,直接加上文件名,就可以直接打开一个旧文件,或者创建并打开一个新文件。

[root@product test]# nano test.txt

nano命令可以打开指定文件进行编辑,默认情况下它会自动断行,即在一行中输入过长的内容时自动拆分成几行,但用这种方式来处理某些文件可能会带来问题,比如inux系统的配置文件,自动断行就会使本来只能写在一行上的内容折断成多行了,有可能造成配置无法识别了。可以加上-w参数来避免自动换行。更多参数的使用方法参考man nanoOPTIONS描述。

3.2. 编辑界面

接着就进入nano编辑界面了,如图所示:
在这里插入图片描述
1、界面中顶部泛白的部分:是声明 nano 的版本(GNU nano 2.3.1)和文件名(File: test.txt)。
2、界面中底部泛白的部分:
(1)第一行是表示这是一个新的文件([ New File ]),这一位置用来显示提示信息的。
(2)下面两行是当前界面的命令说明。白色部分为组合键,后面跟着该组合键功能描述,指数符号(^)表示 Ctrl 键。

快捷键功能描述
Ctrl+G获取在线帮助
Ctrl+X离开 nano 软件,若有改动,会提示是否需要保存
Ctrl+O保存文件内容
Ctrl+JJustify
Ctrl+R从其他文件读入数据,可以将某个文件的内容贴到本文件中
Ctrl+W查询字符串
Ctrl+Y上一页
Ctrl+V下一页
Ctrl+K剪切光标所在行文本内容,或者剪切选中的内容
Ctrl+U粘贴
Ctrl+C显示当前光标所在处的行数和列数等信息
Ctrl+TTo Spell

如果需要复制/剪贴多行或者一行中的一部分,先将光标移动到需要复制/剪贴的文本部分的开头位置,按Ctrl+6做标记,然后移动光标到需要复制/剪贴的文本的结尾位置。这时选定的文本会反白。若在选择文本过程中要取消,只需要再按一次Ctrl+6。接下里就可以用Alt+6来复制,Ctrl+K来剪切,Ctrl+U来粘贴。

3.3. 帮助界面

按下Ctrl+G会出现帮助界面,如下所示:
在这里插入图片描述
这里可使用的快捷键如下所示:

快捷键功能描述
Ctrl+Y上一页
Ctrl+V下一页
Ctrl+P上一行
Ctrl+N下一行
Ctrl+X离开帮助界面,回到上一步

3.4. 保存操作

随便输入了点内容,按下Ctrl+O进行保存,会看到如下内容:
在这里插入图片描述
底部泛白部分:
(1)第一行是File Name to Write: test.txt,这里可以修改写入的文件名称。如果名称修改了,则相当于另存为操作,旧文件内容不变,会生成一个新文件,老内容和新内容都会写入到新文件中。如果不进行修改,直接按 Enter 键就可以完成保存操作了。
(2)下面两行是命令提示,这里的指数符号(^)表示 Ctrl 键,M 代表的是 Alt 键。

快捷键功能描述
Ctrl+G获取在线帮助
Ctrl+C取消操作,返回上一步
Alt+DDOS 格式
Alt+MMac 格式
Alt+A在后面追加
Alt+P在前面追加
Alt+B备份文件

如果进行了重命名,则会询问是否保存文件在不同的名称?,Y 表示肯定,N 表示否定,C 表示取消。
在这里插入图片描述

3.5. 搜索操作

使用快捷键Ctrl+W,可以进行搜索:
在这里插入图片描述
Ctrl+W后,在 Search 后输入你要搜索的关键字,回车确定,这将会定位到第一个匹配的文本。
接着可以再按一次Ctrl+W,(假设我第一次搜索的是字符K)会出现Search [K]:,此时直接按下回车确定,将会定位到下一个匹配的文本。

快捷键功能描述
Ctrl+G获取帮助
Ctrl+C取消
Ctrl+Y定位到第一行
Ctrl+V定位到最后一行
Ctrl+T定位到指定行,后面会要求输入目标行
Ctrl+R对目标文本进行替换,后面会依次要求输入目标文本,替换文本,以及替换选项
Ctrl+WBeg of Par
Ctrl+OEnd of Par
Alt+JFullJstify
Alt+CCase Sens
Alt+BBackwards
Alt+RRegexp
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值