vi和vim的基本介绍

发布时间 2023-08-28 10:29:25作者: WeChat2834

vi和vim的基本介绍

所有的linux系统都会内置vi文本编辑器

Vim具有程序编辑的能力,可以看做是vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完,编译以及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

vi和vim的常用三种模式
  • 正常模式:以vim打开一个档案就直接进入一般模式(默认模式)。在这个模式中,可以使用[上下左右]按键来移动光标,你可以使用[删除字符]或[删除整行]来处理档案内容,也可以使用[复制,粘贴]来处理你的文件数据。

  • 编辑模式:按下i,l,o,O,a,A,r,R,等任何一个字母之后才会进入编辑模式,一般按i即可。

  • 命令行模式:这个模式当中,可以提供你相关指令,完成读取,存盘,替换,离开vim,显示行号等动作则是在此模式中达成的。

vi和vim模式的相互切换
  1. 正常模式--> 编辑模式 i或者a; 正常模式-->命令模式 用":或/"

  2. 编辑模式--> 正常模式 按esc键

  3. 命令模式--> 正常模式 按esc键

注意 :命令模式下 ":wq" 表示写入保存退出;":q"退出不保存;":q!"强制退出。

vi和vim快捷键
  1. 拷贝当前行 yy,拷贝当前行向下的5行 5yy,并粘贴"p"。

  2. 删除当前行dd,删除当前行向下的5行,5dd。

  3. 在文件中查找某个单词[命令模式下"/关键字"回车查找,输入"n"就是查找下一个]。

  4. 设置文件的行号,取消文件的行号,[命令模式下":set nu "和":set nonu"]。

  5. 编辑/etc/profile 文件,使用快捷键到底文档的最末行"G" 和最首行"gg" 在正常模式下执行

  6. 在一个文件中输入"hello",然后又撤销这个动作 正常模式下输入 "u"

  7. 编辑/etc/profile文件,并将光标移动到20行 "shift+g":操作步骤第一步显示行号,第二步输入20,第三步输入shift+g

  8. 其他的快捷方法自个去收集吧

其他一些快捷键

第一部分:正常模式下可以用按钮说明,光标移动,复制粘贴,搜寻取代。

移动光标的方法说明
h或向左箭头按键 光标向左移动一个字符
j或向下箭头按键 光标向下移动一个字符
k或向上箭头按键 光标向上移动一个字符
L或向右箭头按键 光标向右移动一个字符
总结:hjkl在一行,如果要移动多次数字加对应按键 如果要左移30行 "30h"
[Ctrl]+[f] 屏幕向下移动一页,相当于[page down]按键常用
[Ctrl]+[b] 屏幕向上移动一页,相当于[page up]按键常用
[Ctrl]+[d] 屏幕向下移动半页
[Ctrl]+[u] 屏幕向上移动半页
+ 光标移动到非空格符的下一列
- 光标移动到非空格符的下一列
n<space> n表示数字,按下数字后再按空格键,光标会向右移动这一行的n个字符的距离
0或者功能键[Home] 这是数字0;移动到这行的最前面字符处(常用)
$或功能键[End] 移动到这一行的最后面字符处(常用)
H 光标移动到这个屏幕最上方的那一行的第一个字符
M 光标移动到这个屏幕的中央的那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个档案的最后一行(常用)
n<Enter> 光标向下移动n行(常用)
搜寻与取代说明
/word 向光标之下寻找一个名称为word的字符串(常用)
?word 向光标之上寻找一个字符串为word的字符串(常用)
n n是英文按键代表重复前一个搜寻动作,如果先/word执行向下寻找word,则按下n后,则会继续向下寻找word这个字符串
N N是英文按键与n刚好相反, 为反向进行前一个搜寻;如果先/word执行向下寻找word,则按下N后,则会继续向上寻找word这个字符串
总结:使用/word配合n和N 可以重复的帮你搜寻到一些关键词
:n1,n2/word1/word2/g n1与n2为数字,在第n1和n2之间寻找word1这个字符串,并将该字符串替换为word2;eg[:100,200/student/teacher/g],在100到200行间将student替换为teacher(常用)
:1,$s/word1/word2/g 从第一行到最后一行寻找word1并将其取代为word2!(常用)
:1,$s/word1/word2/gc 从第一行到最后一行寻找word1并将其取代为word2!并在取代前显示提示字符串给用户确定是否需要取代(常用)
   
删除与复制粘贴说明
x X 在一行字当中,x为向后删除一个字符(相当deil按键),X为向前删除相当与(backspace按键,亦即是退格键)(常用)
nx n为数字,连续向后删除n个字符。
dd 删除光标所在那一整列(常用)
ndd 删除光标所在向下n行
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在到最后一行的数据
d$ 删除光标所在处,到该行最后一个字符
d0 那个是数字0,删除光标到该行的最前面一个字符
yy 复制光标所在的那一行(常用)
nyy n为数字,复制光标所在向下n行
y1G 复制光标所在到第一行的所有数据
yG 复制光标所在到最后一行的所有数据
y0 复制光标所在那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p,P p为将已复制的数据在光标下一行贴上,P则为贴在上一行(eg:如果光标在20行处,且已经复制了10行,则按p会从21行开始粘贴。按P则在上一行粘贴把原来的20行推到30行去)(常用)
J 将光标所在行与下一行数据合成同一行
c 重复删除多个数据,例如向下删除10行,[10cj]
u 复原前一个动作,相当于撤销(常用)
[Ctrl]+r 重做上一个动作(常用)

第二部分:正常模式切换到编辑模式可以按钮

进入编辑模式下说明
i,I 进入编辑模式下,i为从光标处开始;I为从光标所在行的第一个非空字符处开始(常用)(常用)
a,A 进入编辑模式,a为从光标所在下一个字符开始;A为从光标所在行的最后一个字符开始(常用)
o,O 进入编辑模式,o为在光标所在的下一行处插入新的一行;O为在目前光标处的上一行出入新的一行(常用)
r,R 进入编辑模式,r只会取代光标那个字符一次;R会一直取代光标所在的文字,直到按下Esc按键为止(常用)
注意 上诉这些按键在vi界面左下会出现[---insert---]或[--replace---]字样,由名称可知道大概动作了吧
<Esc> 退出编辑模式