章节目录:
- 一、Vim 编辑器
- 1.1 检查 vim 软件包
- 1.2 vim 基础
- 1.3 命令模式
- 1.4 输入模式
- 1.5 底线命令模式( Ex 模式 )
- 二、nano 编辑器
- 三、结束语
一、Vim 编辑器
vi
编辑器是 Unix 系统中最早的编辑器之一。vim
是从vi
发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
1.1 检查 vim 软件包
开始学习
vim
编辑器之前,最好先弄清楚你的 Linux 系统用的是哪种vim
软件包。
- 应用示例:
# 1.查找并显示vim命令的绝对路径。
[root@VM-8-11-centos ~]# which vim
/usr/bin/vim
# 2.查看包。
[root@VM-8-11-centos ~]# ls -l /usr/bin/vim
-rwxr-xr-x 1 root root 2337208 Dec 16 2020 /usr/bin/vim
- 注意事项:
vim
程序文件长列表中并没有显示任何链接文件。如果vim
程序被设置了链接,那么有可能被链接到一个功能较弱的编辑器。所以最好还是检查一下。
1.2 vim 基础
vim
编辑器在内存缓冲区中处理数据。只要输入vim
命令和要编辑的文件名就可以启动vim
编辑器。
-
如果在启动
vim
时未指定文件名,或者指定文件不存在,则vim
会开辟一段新的缓冲区进行编辑。 -
如果指定的是已有文件的名称,则
vim
会将该文件的整个内容都读入缓冲区以备编辑。 -
vim
编辑器会检测会话的终端类型,使用全屏模式来将整个控制台窗口作为编辑区域。 -
如果文件是新建的,那么编辑界面底部会出现消息 [New File] 。
-
vim
编辑器有 3 种操作模式:- 命令模式
- 输入模式
- 底线命令模式( Ex 模式 )
-
三种模式-切换示意图:
- vim 键盘图:
1.3 命令模式
刚打开要编辑的文件( 或新建文件 )时,
vim
编辑器会进入命令模式( 有时也称为普通模式 ),该模式下,vim
编辑器会将按键解释成命令。
- 进入 vim 命令模式:
# 1.此处编辑不存在的文件作为示例。
[root@VM-8-11-centos tmp]# vim 000.txt
- 命令模式界面:
- 模式切换:
作用 | 按键 |
---|---|
切换到输入模式,以输入字符。 | i |
切换到底线命令模式,以在最底一行输入命令。 | : |
- 光标移动:
作用 | 按键 |
---|---|
光标向左移动一个字符。 | h 或 向左箭头键(←) |
光标向下移动一个字符。 | j 或 向下箭头键(↓) |
光标向上移动一个字符。 | k 或 向上箭头键(↑) |
光标向右移动一个字符。 | l 或 向右箭头键(→) |
屏幕向下移动一页,相当于 [ Page Down ]按键。( 常用 ) | [Ctrl] + [f] |
屏幕向上移动一页,相当于 [ Page Up ] 按键。( 常用 ) | [Ctrl] + [b] |
屏幕向下移动半页。 | [Ctrl] + [d] |
屏幕向上移动半页。 | [Ctrl] + [u] |
光标移动到非空格符的下一行。 | + |
光标移动到非空格符的上一行。 | - |
那个 n 表示『 数字 』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。 | n<space> |
这是数字『 0 』:移动到这一行的最前面字符处。( 常用 ) | 0 或功能键[Home] |
移动到这一行的最后面字符处。( 常用 ) | $ 或功能键[End] |
光标移动到这个屏幕的最上方那一行的第一个字符。 | H |
光标移动到这个屏幕的中央那一行的第一个字符。 | M |
光标移动到这个屏幕的最下方那一行的第一个字符。 | L |
移动到这个档案的最后一行。( 常用 ) | G |
『 n 』为数字表示移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行。( 可配合 :set nu ) | nG |
移动到文档的第一行。( 常用 ) | gg |
『 n 』为数字。光标向下移动 n 行。( 常用 ) | n<Enter> |
- 搜索替换:
作用 | 按键 |
---|---|
向光标之下寻找一个名称为 word 的字符串。( 常用 ) | /word |
向光标之上寻找一个字符串名称为 word 的字符串。 | ?word |
这个『 n 』是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! | n |
这个『 N 』是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 | N |
n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g』。( 常用 ) | :n1,n2s/word1/word2/g |
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !( 常用 ) | :1,$s/word1/word2/g 或 :%s/word1/word2/g |
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!( 常用 ) | :1,$s/word1/word2/gc 或 :%s/word1/word2/gc |
- 删除、复制粘贴:
作用 | 按键 |
---|---|
在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键)( 常用 ) | x, X |
『 n 』为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『 10x 』。 | nx |
剪切游标所在的那一整行( 常用 ),用 p / P 可以粘贴。 | dd |
『 n 』为数字。剪切光标所在的向下 n 行,例如 20dd 则是剪切 20 行( 常用 ),用 p/P 可以粘贴。 | ndd |
删除光标所在到第一行的所有数据。 | d1G |
删除光标所在到最后一行的所有数据。 | dG |
删除游标所在处,到该行的最后一个字符。 | d$ |
那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符。 | d0 |
复制游标所在的那一行。( 常用 ) | yy |
『 n 』为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行。( 常用 ) | nyy |
复制游标所在行到第一行的所有数据。 | y1G |
复制游标所在行到最后一行的所有数据。 | yG |
复制光标所在的那个字符到该行行首的所有数据。 | y0 |
复制光标所在的那个字符到该行行尾的所有数据。 | y$ |
p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。( 常用 ) | p, P |
将光标所在行与下一行的数据结合成同一行。 | J |
重复删除多个数据,例如向下删除 10 行,[ 10cj ] | c |
复原前一个动作。( 常用 ) | u |
重做上一个动作。( 常用 ) | [Ctrl]+r |
小数点『.』,意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点就好了。( 常用 ) | . |
1.4 输入模式
按下 i 键就进入输入模式,该模式下
vim
会将你在当前光标位置输入的字符、数字或者符号都放入缓冲区。要退出输入模式并进返回命令模式,按下 Esc 键即可。
- 输入模式界面:
- 在输入模式中,可以使用以下按键:
作用 | 按键 |
---|---|
输入字符。 | 字符按键以及 Shift 组合 |
换行。 | ENTER( 回车键 ) |
删除光标前一个字符。 | BACK SPACE ( 退格键 ) |
删除光标后一个字符。 | DEL ( 删除键 ) |
在文本中移动光标。 | 方向键 |
移动光标到行首/行尾。 | HOME / END |
上 / 下翻页。 | Page Up / Page Down |
切换光标为输入 / 替换模式,光标将变成竖线 / 下划线。 | Insert |
退出输入模式,切换到命令模式。 | ESC |
1.5 底线命令模式( Ex 模式 )
在命令模式下按下 : 键(英文冒号)就进入了底线命令模式。
- 底线命令模式界面:
- 存储、离开等指令:
作用 | 按键 |
---|---|
将编辑的数据写入硬盘档案中。( 常用 ) | :w |
若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关。 | :w! |
离开 vi 。( 常用 ) | :q |
若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。 | :q! |
储存后离开,若为 :wq! 则为强制储存后离开。( 常用 ) | :wq |
这是大写的 Z 喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出) | ZZ |
不保存,强制退出。效果等同于 :q!。 | ZQ |
将编辑的数据储存成另一个档案。(类似另存新档) | :w [filename] |
在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面 | :r [filename] |
将 n1 到 n2 的内容储存成 filename 这个档案。 | :n1,n2 w [filename] |
暂时离开 vi 到指令行模式下执行 command 的显示结果!例如:『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息! | :! command |
vim
环境的变更:
作用 | 按键 |
---|---|
显示行号,设定之后,会在每一行的前缀显示该行的行号 | :set nu |
与 set nu 相反,为取消行号! | :set nonu |
二、nano 编辑器
vim
是一款复杂的编辑器,功能强大,相比之下,nano
就简单多了。如果只是需要一款简单易用的控制台模式文本编辑器,不妨考虑nano
。
-
进入
nano
:nano
file_name -
编辑界面:
- 帮助文档( CTRL + G ):
- 快捷键表示方式及说明:
- 控制键序列使用一个 ^ 符号标记,它表示可以用 Ctrl 键或按 Esc 键两次的方式进行输入。
- Meta 键序列使用 M- 符号标记(并不是用 M 键),它表示可以用 Alt、Cmd 或 Esc 键输入,具体取决于你的键盘设置。
- 上述按键组合可用于主要编辑区,替代按键则显示于括号内。
- 常用操作:
作用 | 按键 |
---|---|
查看帮助信息 | CTRL + G |
离开(可以选择是否保存修改) | CTRL + X |
保存修改(可以自定义文件名,相当于另存为) | CTRL + O |
读档(将另一个文件整个插入进来) | CTRL + R |
替换(先输入被替换字符串,再输入替换字符串) | CTRL + \ |
搜索 | CTRL + W |
剪切(将一行内容剪切下来,可以粘贴到其他位置) | CTRL + K |
复制 / 反剪切(将剪切下来的内容粘贴出来) | CTRL + U |
显示行号 | CTRL + C |
跳行 | CTRL + _ |
上页 | CTRL + Y |
下页 | CTRL + V |
首行 | ALT + \ |
末行 | ALT + / |
- 还有一些功能可以通过
nano
编辑器的命令行选项获得,比如在编辑之前创建备份文件。输入man
nano
来了解这些附加的命令行选项。 - 作为控制台模式文本编辑器,
vim
和nano
在强大和简洁之间提供了一种选择。
三、结束语
“-------怕什么真理无穷,进一寸有一寸的欢喜。”
微信公众号搜索:饺子泡牛奶。