Linux中vi或vim编辑器指令语法大全

vi最早由Bill Joy在1976年开发,是Unix系统上的经典文本编辑器。vim是从vi发展而来的一个增强版本,增加了许多新功能和改进。

Vim 是一款功能强大的文本编辑器,它具有高效、灵活的特点,能够帮助用户快速完成各种文本编辑任务。


vi和vim的区别

功能差异

多级撤销:在vi中,按u只能撤销上次命令,而在vim中可以无限制地撤销。

语法高亮:vim可以用不同的颜色来高亮代码,方便编程和阅读。

平台支持:vi只能运行于Unix系统中,而vim不仅可以运行于Unix,还可以在Windows和Mac等多个操作系统上运行。

易用性:

vi的界面较为简单,适合基本的文本编辑,而vim增加了许多高级功能,如代码补全、编译及错误跳转等,特别适合程序员使用。

用法:

模式切换:vi和vim都有三种模式:命令模式、插入模式和末行模式。在命令模式下,按iao等键可以进入插入模式进行文本编辑,按Esc键可以返回命令模式。

基本操作:在命令模式下,可以使用光标移动、文本删除、复制和粘贴等操作;在插入模式下,输入的字符会被保存为文件内容;末行模式用于设置编辑环境、保存文件和退出编辑器等操作。


本文将对 Vim 的常用指令进行详细汇总,并说明每个命令的作用及用法。

1.基本操作命令

:w将当前编辑的文件保存到磁盘。

:wq或:x保存当前文件并退出 Vim。

:q退出Vim,如果文件有未保存的修改,会提示确认。

:q!强制退出 Vim,不保存当前文件的修改。

2.光标移动命令

h:将光标向左移动一个字符。

j:将光标向下移动一行。

k:将光标向上移动一行。

l:将光标向右移动一个字符。

gg:将光标跳转到文件的第一行。

G:将光标跳转到文件的最后一行。

数字+G:将光标跳转到第数字行。

3.编辑命令

i:进入插入模式,开始在当前光标位置插入文本。

a:进入插入模式,开始在当前光标后插入文本。

o:进入插入模式,开始在光标所在行的下一行插入文本。

O:进入插入模式,开始在光标所在行的上一行插入文本。

x:删除光标所在位置的字符。

dd:删除光标所在的一整行。

D:删除从光标位置到行尾的文本。

yy:复制光标所在的一行文本。

p:粘贴复制的文本到光标所在位置的下一行。

u:撤销上一次的编辑操作。

ctrl+r:重做上一次撤销的编辑操作。

4.查找和替换命令

/search_string:查找文件中的 search_string,按回车键后光标会移动到找到的第一个匹配位置。

n:查找下一个匹配项。

N:查找上一个匹配项。

:s/old/new/:将当前行中第一个匹配的 old 替换为 new

:%s/old/new/g:将整个文件中所有匹配的 old 替换为 new

5.可视模式命令

v:进入普通可视模式,开始选择文本。

V:进入行可视模式,开始选择整行文本。

Ctrl+v:进入块可视模式,开始选择列块文本。

y:复制选中的文本。

d:删除选中的文本。

c:修改选中的文本,进入插入模式。

6.其他常用命令

:help:打开 Vim 的帮助文档,查看详细的命令和用法。

:version:查看 Vim 的版本信息。

:set nu:在编辑器中显示行号。

:set nonu:在编辑器中隐藏行号。

:w !:强制保存文件,即使文件是只读的。

:r file.txt:读取 file.txt 的内容并插入到当前文件中。

:sp file.txt:在当前窗口中打开 file.txt

:vsp file.txt:在垂直分割的窗口中打开 file.txt

:tabnew file.txt:在新标签页中打开 file.txt

:tabclose:关闭当前标签页。

:tabnext:切换到下一个标签页。

:tabprevious:切换到上一个标签页。

:tabmove +1:将当前标签页移动到第 1 个位置。

:tabmove -1:将当前标签页移动到倒数第 1 个位置。

:tabonly:关闭除当前标签页外的所有标签页。

:tabfirst:切换到第一个标签页。

:tablast:切换到最后一个标签页。

:tabnext 2:切换到第 2 个标签页。

:tabprevious 2:切换到倒数第 2 个标签页。

:tabmove +2:将当前标签页移动到第 2 个位置。

:tabmove -2:将当前标签页移动到倒数第 2 个位置。

:tabonly:关闭除当前标签页外的所有标签页。

:tabfirst:切换到第一个标签页。

:tablast:切换到最后一个标签页。

:tabnext 2:切换到第 2 个标签页。

:tabprevious 2:切换到倒数第 2 个标签页。

:tabmove +2:将当前标签页移动到第 2 个位置。

:tabmove -2:将当前标签页移动到倒数第 2 个位置。

:tabonly:关闭除当前标签页外的所有标签页。

:tabfirst:切换到第一个标签页。

:tablast:切换到最后一个标签页。

:tabnext 2:切换到第 2 个标签页。

:tabprevious 2:切换到倒数第 2 个标签页。

:tabmove +2:将当前标签页移动到第 2 个位置。

:tabmove -2:将当前标签页移动到倒数第 2 个位置。

:tabonly:关闭除当前标签页外的所有标签页。

:tabfirst:切换到第一个标签页。

:tablast:切换到最后一个标签页。

:tabnext 2:切换到第 2 个标签页。

:tabprevious 2:切换到倒数第 2 个标签页。

:tabmove +2:将当前标签页移动到第 2 个位置。

:tabmove -2:将当前标签页移动到倒数第 2 个位置。

:tabonly:关闭除当前标签页外的所有标签页。

:tabfirst:切换到第一个标签页。

:tablast:切换到最后一个标签页。

:tabnext 2:切换到第 2 个标签页。

:tabprevious 2:切换到倒数第 2 个标签页。

:tabmove +2:将当前标签页移动到第 2 个位置。

:tabmove -2:将当前标签页移动到倒数第 2 个位置。

:tabonly:关闭除当前标签页外的所有标签页。

:tabfirst:切换到第一个标签页。

:tablast:切换到最后一个标签页。

:tabnext 2:切换到第 2 个标签页。

:tabprevious 2:切换到倒数第 2 个标签页。

:tabmove +2:将当前标签页移动到第 2 个位置。

:tabmove -2:将当前标签页移动到倒数第 2 个位置。

:tabonly:关闭除当前标签页外的所有标签页。

作者:消逝的风i原文地址:https://www.cnblogs.com/abc-x/p/18752123

%s 个评论

要回复文章请先登录注册