vi最早由Bill Joy在1976年开辟,是Unix系统上的经典文本编辑器。vim是从vi发展而来的一个增强版本,增加了许多新功能和改进。
Vim 是一款功能强大的文本编辑器,它具有高效、机动的特点,能够帮助用户快速完成各种文本编辑任务。
vi和vim的区别
功能差异
多级撤销:在vi中,按u只能撤销前次命令,而在vim中可以无穷制地撤销。
语法高亮:vim可以用不同的颜色来高亮代码,方便编程和阅读。
平台支持:vi只能运行于Unix系统中,而vim不仅可以运行于Unix,还可以在Windows和Mac等多个利用系统上运行。
易用性:
vi的界面较为简单,得当基本的文本编辑,而vim增加了许多高级功能,如代码补全、编译及错误跳转等,特别得当程序员利用。
用法:
模式切换:vi和vim都有三种模式:命令模式、插入模式和末行模式。在命令模式下,按i、a、o等键可以进入插入模式举行文本编辑,按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:关闭除当前标签页外的所有标签页。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |