Linux VI 文本编辑器使用教程

vi

  • Linux 下最常用的文本编辑器,也是各版本 Linux 默认自带的标配
  • vi 除了文本编辑,还可以给字符着色、自动补全,但是不像 Windows 下的 word 有排版功能。
  • 可以用来编辑现有的文件,也可以创建一个新文件,还能以只读模式打开文本文件。

vim

  • Vim 是 Vi improved 的缩写,是 vi 的改进版,使用方法没什么区别。

一、基础 vi 命令

1、进入编辑器

可以通过以下方式进入 vi 编辑器:

命令 描述
vi filename 如果 filename 存在,则打开;否则会创建一个新文件再打开。
vi -R filename 以只读模式(只能查看不能编辑)打开现有文件。
view filename 以只读模式打开现有文件。
vi 创建一个新文件并打开:

$ vi testfile
|
~
~
~
~
~
~
"testfile" [New File]
  • 竖线(|)代表光标的位置;
  • 波浪号(~)代表该行没有任何内容。如果没有 ~,也看不到任何内容,那说明这一行肯定是有空白字符(空格、tab 缩进、换行符等)或不可见字符。

2、工作模式

进一步了解 vi 之前先来了解一下 vi 的工作模式,vi 有三种工作模式:

普通模式

  • 由 Shell 进入 vi 编辑器时,首先进入普通模式。
  • 从键盘输入任何字符都被当作命令来解释。
  • 没有任何提示符,输入命令后立即执行,不需要回车,而且输入的字符不会在屏幕上显示出来。
  • 可以执行命令、保存文件、移动光标、粘贴复制等。
  • 输入 i(插入)、c(修改)、o(另起一行) 可进入编辑模式;按 esc 键退回普通模式。
  • 输入冒号 (😃 进入命令模式,输完命令按回车,命令执行完后会自动退回普通模式。
  • 另外,如果不确定当前处于哪种模式,按两次 Esc 键将回到普通模式。

编辑模式

  • 进行文本编辑
  • 输入的任何字符都被作为文件的内容保存起来,并在屏幕上显示出来。

命令模式

  • 进行一些高级处理,如字符串查找、替换、显示行号等操作

有些人可能会说有两种工作模式,其实是把命令模式合并到了普通模式。

3、退出 vi 编辑器

一般在命令模式下退出 vi 编辑器。

退出命令 说明
q 如果文件未被修改,会直接退回到Shell;否则提示保存文件。
q! 强行退出,不保存修改内容。
wq w 命令保存文件,q 命令退出 vi,合起来就是保存并退出。
ZZ 保存并退出,相当于 wq,但是更加方便
w file 退出之前,在 w 命令后面指定一个文件名,将文件另存为新文件 file

vi 编辑文件时,用户的操作都是基于缓冲区中的副本进行的。如果退出时没有保存到磁盘,则缓冲区中的内容就会被丢失。

二、命令汇总

  • vi 是区分大小写的,输入命令时注意不要锁定大写
  • 为了不影响文件内容,必须在普通模式(按两次 Esc 键)下移动光标。
  • 切换到编辑模式下才能编辑文件
类型 命令 描述
移动光标 k 向上1行;2k 向上2行
- j 向下1行;2j 向下2行
- 1G 第1行
- G 最后一行
- nG
:n
第 n 行
- H
nH
M
L
nL
屏幕顶部
距离屏幕顶部第 n 行的位置
屏幕中间
屏幕底部
距离屏幕底部第 n 行的位置
- 0 或 | 一行的开头
- $ 一行的末尾
- h
l
向左一个字符
向右一个字符
- w
b
下一个单词
上一个单词
- n| 当前行第 n 列
编辑文本 yy
nyy
复制当前行
复制 n 行
- p 将复制的文本粘贴到光标后面
- dd 删除当前行
2dd:连续两次删除光标所在的行
- x
X
删除当前光标后面 / 前面的字符
2x 连续两次删除光标后的字符
- d^ 删除从当前光标到行首的字符
- d$
D
删除从当前光标到行尾的字符
- U
u
撤销对当前行所做的修改
撤销上次操作,再次按 ‘u’ 恢复该次操作
操作文件 :f 显示文件名、文件总行数、当前行的位置(百分号 % 形式)
- :f file1 复制为新文件 file1(要注意保存)
- :w file1 保存修改到 file1(一般使用 :wq 保存并退出)
- :set nu 显示行号
文本查找 /
?
向下查找
向上查找(后面直接跟要查找的字符串即可)
- n
N
按相同的方向继续查找
按相反的方向继续查找
文本替换 :s/search/replace/g search 为检索的文本,replace 为要替换的文本,g 表示全局替换

搜索的字符串中可以包含一些有特殊含义的字符,如果希望搜索这些字符本身,需要在前面加反斜杠 (\)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章