如何在Ubuntu命令行使用VI编辑器高效处理文件?

2026-05-29 15:253阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2072个文字,预计阅读时间需要9分钟。

如何在Ubuntu命令行使用VI编辑器高效处理文件?

vi编辑器是Linux下常用且重要的编辑器,支持在全屏模式下编辑一个或多个文件。若在执行vi时未指定文件,vi会自动创建一个名为未命名的空工作文件。若指定的文件不存在,vi也会创建一个同名的新文件。


vi编辑器是Linux下常用而重要编辑器,可在全屏幕方式下编辑一个或多个文件。若在vi执行时没有指定一个文件,那么vi命令会自动产生一个无名的空 的工作文件。若指定的文件不存在,那么就按指定的文件名创建一个新的文件。若对文件的修改不保存的话,v i命令并不改变原来文件的内容。


下面是vi命令使用的一些选项及含义:


-c sub-command 在对指定的文件编辑前,先执行指定的命令 sub-command .


-r filename 恢复指定的文件filename .


-R 将指定的文件以只读的方式放入编辑器中,这样不会保存对文件的任何修 改。


-y number 将编辑窗口的大小设为number行。


下面是vi编辑所处的三种模式:


.命令模式 进入vi时所处的模式。在此模式下用户可输入各种子命令对进行*作,如删除行、粘贴行、移向下一个字、移向不同行等。


.文本输入模式 在此模式下可以修改一行的内容并增添新行。在命令模式下键入a 、i 或c键可进入文本输入模式,按Escape键可返回命令模式。


.命令项模式 在此模式下,可以通过子命令输入更多的参数。如:w子命令要求输入一文件名,“/”子命令要求输入一个查找项。用户使用Escape键返回命令模式。


下面是自命令模式下执行的,在同一行上移动的自命令:


h 将光标左移一格。


l 将光标右移一格。


j 将光标下移一格。


k 将光标上移一格。


w 将光标移到下一个小字的前面。


W 将光标移到下一个大字的前面。


b 将光标移到前一个小字的前面。


B 将光标移到前一个大字的前面。


e 将光标移到下一个小字的后面。


E 将光标移到前一个大字的后面。


fc 把光标移到同一行的下一个c字符处。


Fc 把光标移到同一行的前一个c字符处。


tc 把光标移到同一行的下一个字符c的前一格。


Tc 把光标移到同一行的前一个字符c的后一格。


number| 把光标移到递number列上。


下面是命令模式下改变屏幕显示的子命令:


z- 把当前行作为屏幕的最后一行,并重新显示屏幕。


z. 把当前行作为屏幕的中间一行,并重新显示屏幕。


Ctrl+l 重新显示屏幕当前内容。


/pattern/z- 寻找pattern的下一个位置,并把所在行设为屏幕的最后一行。


下面是命令模式下在行间移动的子命令:


+或Enter 把光标移至下一行第一个非空白字符。


- 把光标移至上一行第一个非空白字符。


0 把光标移到当前行的第一个字符处。


$ 把光标移到当前行的最后一个字符处。


H 把光标移到屏幕最顶端一行。


L 把光标移到屏幕最底端一行。


M 把光标移到屏幕中间。


下面是在命令模式下用来查找字符串所使用的子命令:


/pattern 向后寻找指定的pattern ,若遇到文件尾,则从头再开始。


?pattern 向前寻找指定的pattern ,若遇到文件头,则从尾再开始。


n 在上次指定的方向上,再次执行上次定义的查找。


N 在上次指定的方向的相反方向上,再次执行上次定义的查找。


/pattern/+number 将光标停在包含pattern的行后面第number行上。


/pattern/-number 将光标停在包含pattern的行前面第number行上。


% 移到匹配的“()”或“{}”上。


下面是在命令模式下用来显示页面的子命令:


Ctrl + f向后滚一页。


Ctrl + d向后滚半页。


Ctrl + b向前滚一页。


Ctrl + u向前滚半页。


Ctrl + e屏幕向下滚一行。


Ctrl + y屏幕项上滚一行。


下面是在文本输入模式下用来输入文本的子命令(用户可在任何时候按Escape返回到命令模式):


a 在光标之后开始输入文本。


A在行尾开始输入文本。


i在光标之前开始输入文本。


I在行首第一个非空白字符前输入文本。


o在光标所在行后插入一空行。


O在光标所在行前插入一空行。


下面是在命令模式下改变文本所使用的子命令(用户可在任何的时候按Escape键返回到命令模式):


cc或S 修改一整行。


C 改变一行光标位置以后的部分。


cw 改变光标所在单词。


dd删除当前行。


D 删除光标所在行光标后面的内容。


dw删除光标所在的单词。


J 把下一行内容加到本行行尾。


rc把光符所在字符替换成c .


R 覆盖本行内容。


u恢复上一次的修改。


x删除光标所在的字符。


~ 改变光标所在出字符的大小写。


. 重复上一个*作。


<<把当前行移到左边。


>>把当前行移到右边。


下面是用于文件中拷贝文本的字命令:


p 将缓冲区内容取到光标所在行的下面一行。


P 将缓冲区内容取到光标所在行的上面一行。


“bd 将文本删除至有名缓冲区b .


“bp 张贴有名缓冲区b中内容。


yy把当前行放入缓冲区。


Y 把当前行放入缓冲区。


Yw把光标所在的单词放入缓冲区。


:g/<pattern>/d, 删除匹配<pattern>的所有行


下面是用于保存文件的子命令:


:w 回写修改后的文件。


:w filename 当filename不存在时,把修改后的文件存为文件filename ,当文件filename存在时,报错。


!w filename 如果文件filename存在时,把修改后的文件保存为文件filename .


下面列出了在vi编辑的多个文件之间切换所用的子命令:


:n开始编辑vi激活的文件列表中的下一个文件。


:n filenames 指定将被编辑的新的文件列表。


下面列出了用于在当前文件和另外一个文件间切换的子命令:


:e filename 使用filename激活vi (在vi中装入另一个文件filename)。


e!重新装入当前文件,若当前文件有改动,则丢弃以前的改动。


:e+filename 使用filename激活vi ,并从文件尾部开始编辑。


:e+number filename 使用filename激活vi ,并在第number行开始编辑。


:e# 开始编辑另外一个文件。


下面是在本文件中加入其他文件代码所使用的子命令:


:r filename读取filename文件,并将其内容加到当前文件后。


:r ! command执行command文件,并将其输出加到当前文件后。


下面是vi中其他的子命令:


ctrl+g 取得正在编辑文件的有关信息。


:sh启动sh ,从sh中返回可用exit或ctrl+d .


:! Command 执行命令command .


!!重新执行上次的:! Command子命令。


:q退出vi ,若用户对编辑的文件有所修改,系统不会让用户使用q命令退出。


:q!退出vi而不管是否对文件有改动。


ZZ或:wq 保存对文件的修改并退出vi .


用户可在一个特殊的文件.exrc中定义特殊的vi命令。在vi中使用这些命令时,必须在该命令前加上一个冒号。


注意:vi命令并不锁住所编辑的文件,因此多个用户可能在同时编辑一个文件,那么最后保存的文件版本将被保留。

如何在Ubuntu命令行使用VI编辑器高效处理文件?

本文共计2072个文字,预计阅读时间需要9分钟。

如何在Ubuntu命令行使用VI编辑器高效处理文件?

vi编辑器是Linux下常用且重要的编辑器,支持在全屏模式下编辑一个或多个文件。若在执行vi时未指定文件,vi会自动创建一个名为未命名的空工作文件。若指定的文件不存在,vi也会创建一个同名的新文件。


vi编辑器是Linux下常用而重要编辑器,可在全屏幕方式下编辑一个或多个文件。若在vi执行时没有指定一个文件,那么vi命令会自动产生一个无名的空 的工作文件。若指定的文件不存在,那么就按指定的文件名创建一个新的文件。若对文件的修改不保存的话,v i命令并不改变原来文件的内容。


下面是vi命令使用的一些选项及含义:


-c sub-command 在对指定的文件编辑前,先执行指定的命令 sub-command .


-r filename 恢复指定的文件filename .


-R 将指定的文件以只读的方式放入编辑器中,这样不会保存对文件的任何修 改。


-y number 将编辑窗口的大小设为number行。


下面是vi编辑所处的三种模式:


.命令模式 进入vi时所处的模式。在此模式下用户可输入各种子命令对进行*作,如删除行、粘贴行、移向下一个字、移向不同行等。


.文本输入模式 在此模式下可以修改一行的内容并增添新行。在命令模式下键入a 、i 或c键可进入文本输入模式,按Escape键可返回命令模式。


.命令项模式 在此模式下,可以通过子命令输入更多的参数。如:w子命令要求输入一文件名,“/”子命令要求输入一个查找项。用户使用Escape键返回命令模式。


下面是自命令模式下执行的,在同一行上移动的自命令:


h 将光标左移一格。


l 将光标右移一格。


j 将光标下移一格。


k 将光标上移一格。


w 将光标移到下一个小字的前面。


W 将光标移到下一个大字的前面。


b 将光标移到前一个小字的前面。


B 将光标移到前一个大字的前面。


e 将光标移到下一个小字的后面。


E 将光标移到前一个大字的后面。


fc 把光标移到同一行的下一个c字符处。


Fc 把光标移到同一行的前一个c字符处。


tc 把光标移到同一行的下一个字符c的前一格。


Tc 把光标移到同一行的前一个字符c的后一格。


number| 把光标移到递number列上。


下面是命令模式下改变屏幕显示的子命令:


z- 把当前行作为屏幕的最后一行,并重新显示屏幕。


z. 把当前行作为屏幕的中间一行,并重新显示屏幕。


Ctrl+l 重新显示屏幕当前内容。


/pattern/z- 寻找pattern的下一个位置,并把所在行设为屏幕的最后一行。


下面是命令模式下在行间移动的子命令:


+或Enter 把光标移至下一行第一个非空白字符。


- 把光标移至上一行第一个非空白字符。


0 把光标移到当前行的第一个字符处。


$ 把光标移到当前行的最后一个字符处。


H 把光标移到屏幕最顶端一行。


L 把光标移到屏幕最底端一行。


M 把光标移到屏幕中间。


下面是在命令模式下用来查找字符串所使用的子命令:


/pattern 向后寻找指定的pattern ,若遇到文件尾,则从头再开始。


?pattern 向前寻找指定的pattern ,若遇到文件头,则从尾再开始。


n 在上次指定的方向上,再次执行上次定义的查找。


N 在上次指定的方向的相反方向上,再次执行上次定义的查找。


/pattern/+number 将光标停在包含pattern的行后面第number行上。


/pattern/-number 将光标停在包含pattern的行前面第number行上。


% 移到匹配的“()”或“{}”上。


下面是在命令模式下用来显示页面的子命令:


Ctrl + f向后滚一页。


Ctrl + d向后滚半页。


Ctrl + b向前滚一页。


Ctrl + u向前滚半页。


Ctrl + e屏幕向下滚一行。


Ctrl + y屏幕项上滚一行。


下面是在文本输入模式下用来输入文本的子命令(用户可在任何时候按Escape返回到命令模式):


a 在光标之后开始输入文本。


A在行尾开始输入文本。


i在光标之前开始输入文本。


I在行首第一个非空白字符前输入文本。


o在光标所在行后插入一空行。


O在光标所在行前插入一空行。


下面是在命令模式下改变文本所使用的子命令(用户可在任何的时候按Escape键返回到命令模式):


cc或S 修改一整行。


C 改变一行光标位置以后的部分。


cw 改变光标所在单词。


dd删除当前行。


D 删除光标所在行光标后面的内容。


dw删除光标所在的单词。


J 把下一行内容加到本行行尾。


rc把光符所在字符替换成c .


R 覆盖本行内容。


u恢复上一次的修改。


x删除光标所在的字符。


~ 改变光标所在出字符的大小写。


. 重复上一个*作。


<<把当前行移到左边。


>>把当前行移到右边。


下面是用于文件中拷贝文本的字命令:


p 将缓冲区内容取到光标所在行的下面一行。


P 将缓冲区内容取到光标所在行的上面一行。


“bd 将文本删除至有名缓冲区b .


“bp 张贴有名缓冲区b中内容。


yy把当前行放入缓冲区。


Y 把当前行放入缓冲区。


Yw把光标所在的单词放入缓冲区。


:g/<pattern>/d, 删除匹配<pattern>的所有行


下面是用于保存文件的子命令:


:w 回写修改后的文件。


:w filename 当filename不存在时,把修改后的文件存为文件filename ,当文件filename存在时,报错。


!w filename 如果文件filename存在时,把修改后的文件保存为文件filename .


下面列出了在vi编辑的多个文件之间切换所用的子命令:


:n开始编辑vi激活的文件列表中的下一个文件。


:n filenames 指定将被编辑的新的文件列表。


下面列出了用于在当前文件和另外一个文件间切换的子命令:


:e filename 使用filename激活vi (在vi中装入另一个文件filename)。


e!重新装入当前文件,若当前文件有改动,则丢弃以前的改动。


:e+filename 使用filename激活vi ,并从文件尾部开始编辑。


:e+number filename 使用filename激活vi ,并在第number行开始编辑。


:e# 开始编辑另外一个文件。


下面是在本文件中加入其他文件代码所使用的子命令:


:r filename读取filename文件,并将其内容加到当前文件后。


:r ! command执行command文件,并将其输出加到当前文件后。


下面是vi中其他的子命令:


ctrl+g 取得正在编辑文件的有关信息。


:sh启动sh ,从sh中返回可用exit或ctrl+d .


:! Command 执行命令command .


!!重新执行上次的:! Command子命令。


:q退出vi ,若用户对编辑的文件有所修改,系统不会让用户使用q命令退出。


:q!退出vi而不管是否对文件有改动。


ZZ或:wq 保存对文件的修改并退出vi .


用户可在一个特殊的文件.exrc中定义特殊的vi命令。在vi中使用这些命令时,必须在该命令前加上一个冒号。


注意:vi命令并不锁住所编辑的文件,因此多个用户可能在同时编辑一个文件,那么最后保存的文件版本将被保留。

如何在Ubuntu命令行使用VI编辑器高效处理文件?