vim教程

学习自:Linux vi/vim

vim使用教程图文教程(零基础超详细)

0、常用(本节为常用指令,初学者请从第1节开始)

命令模式下:

  • i:光标处输入
  • a:光标后输入
  • o:下一行输入
  • u:后退一步(相当于CTRL+Z)
  • CTRL+R:前进一步(相当于CTRL+Y)
  • .:重复前一个动作(相当于再执行一次前一个动作)
  • SHIFT+G:移到末尾
  • 0或HOME:行首
  • $或END:行尾
  • d$:剪切光标到该行末尾所有字符
  • dG:剪切光标到尾行所有字符
  • d1G:剪切光标到首行所有字符
  • dd:剪切当前行
  • 数字+dd:剪切当前行及之后共n行
  • yG:复制光标到尾行
  • y1G:复制光标到首行
  • yy:复制当前行
  • p、P:行后/前粘贴
  • g:移动至该行开头
  • G:尾行
  • GG:首行
  • /word:向下查找
  • ?word:向上查找
  • n:重复查找并向下移动光标至找到的word
  • N:重复查找并向上移动
  • 取消查找时的高亮显示 :nohl
  • 数字+方向:向指定方向移动若干个光标/行
  • :set nu:显示行号 :set nonu:不显示行号

输入模式下:

  • HOME:行首
  • END:行尾
  • pageup/pagedown:翻页
  • ESC/CTRL+C:返回命令模式

1、何为vim

vim是从vi发展而来的一种文本编辑器,是一种程序开发工具。具有代码补全、编译、错误跳转方便编程的功能

vim官网:https://www.vim.org/

2、vim键盘图

3、vim模式

vim有3种模式:

  • 命令(Command):该模式下敲击键盘会被识别为某个指令
  • 输入(Insert):输入、编辑文本;
  • 末行(Last Line):也是一种命令模式

模式进入与转换

 

1)命令模式

①如何进入

刚刚启动vim时进入的就是vim模式。

输入、末行模式下按ESC进入命令模式。

②常用的命令

  • i a o:切换到输入模式
  •  :切换为末行命令模式。
  • :wq :保存并退出
  • x:删除光标所在处的字符
  • u:后退一步(相当于CTRL+Z)
  • CTRL+R:前进一步(相当于CTRL+Y)
  • .:重复前一个动作(相当于再执行一次前一个动作)

命令模式只有一些最基本的命令,而末行命令模式可以输入更多命令。

③其他一些指令(有:的说明是在末行模式下)

命令模式下的数字,代表指令重复次数

移动光标

h ← 左移一个字符
j ↓
k ↑
l →

数字+方向

例如:30h 30←

向指定方向移动指定数量的光标
CTRL+ F 或 Page Down 下移一页
CTRL + B 或 Page Up 上移一页
CTRL + D 下移半页
CTRL + U 上移半页
+ 移动到下一行(该行第一个非空格符(Space)之后)
- 移动到上一行(该行第一个非空格符(Space)之后)
数字+空格(space) 右移指定光标(区别于数字+→,这里可以跨行)
0或HOME 移动至该行首
$或END 移动至该行末尾
H(Head) 移动至屏幕最上方那行行首
M(Median) 移动至屏幕中间那行行首
L(Last) 移动至屏幕末尾行行首
g 移动至文档该行开头
G 移动至文档尾行
数字+G 移动至文档第几行
GG 移动至文档首行,相当于1G
数字+ENTER 光标下移n行(等同步于 数字+↓+ENTER)

查找

/word 光标之下查找所有word
?word 光标之上查找所有word
n 重复上一次查找结果,并向下移动至下一个查找到的word字符首
N 重复上一次查找结果,并向上移动至下一个查找到的word字符首
使用/word + n/N可以实现不停地向上/向下定位到某个想要字符处

替换

:n1,n2s/word1/word2/g

在n1和n2行(这两行都包含)之间查找word1,并将其替换为word2。

:100,200s/vbird/VBIRD/g

 

:1,$s/word1/word2/g

:%s/word1/word2/g

从首行到尾行查找word1,并将其替换为word2

:1,$s/word1/word2/gc

:%s/word1/word2/gc

从首行到尾行查找word1,并将其替换为word2。

但在替换前会让用户确认

删除、剪切

x或DEL 删除光标后的字符
X或BACKSPACE 删除光标前的字符
数字+x 连续删除若干个光标后的字符
dd 剪切光标所在行
数字+dd 剪切光标后若干行
d1G 剪切光标到首行所有行
dG 剪切光标到末行所有行
d$ 剪切光标到该行末尾所有字符
d0 剪切光标到该行行首所有字符

复制、粘贴

yy 复制光标所在行
数字+yy 复制光标向下若干行
y1G 复制光标行至首行的所有行
yG 复制光标行至尾行的所有行
y0 复制光标至该行行首所有数据
y$ 复制光标至该行行尾所有数据
p 粘贴在光标下一行(不会覆盖该行)
P 粘贴在光标上一行(不会覆盖该行)
J 合并光标及下一行为一行
cc 清空某行字符,并在该行进入编辑模式
C 清空光标至该行尾的字符,并在光标处进入编辑模式

切换编辑模式

(切换后左下角会出现INSERTREPLACE字样)

i 从光标处输入
I 从光标行首第一个非空格字符处输入
a 从光标后一个字符处输入
A 从光标行尾处输入
o 在当前光标下一行输入新的一行
O 在当前光标上一行输入新的一行
r replace模式,替换光标处的字符
R replace模式,一直替换下去,直到按ESC
ESC 退出编辑模式

切换至末行模式

(此时命令会跳转到最后一行,并以:开始)

存储文件、离开退出

:w 将编辑的文件写入硬盘中
:w! 强制写入(用于只读模式)
:q 离开vi
:q! 强制离开(不保存档案)
:wq 存储后离开
:wq! 强制存储后离开(等同于按CTRL Z)
!代表强制
ZZ 保存文件(如果修改过)并退出
ZQ 不保存并强制退出
:w 文件名 另存为新文件
:r 文件名 读入另一个文件,以追加的形式加入当前光标行之后
:n1,n2 w 文件名 将行n1至n2间的内容另存为新文件
:! 命令

暂时离开末行模式,到命令模式执行命令显示结果

vim环境变更

:set nu 显示所有行号
:set nonu 取消行号

 

2)输入模式

①如何进入

在命令模式下按i、a、o进入命令模式

②按键

  • BACKSPACE←:删除(光标处)单个字符
  • DEL:删除光标后的单个字符
  • ↑↓←→:移动光标
  • HOME/END:移动光标至行首/行尾
  • Page Up/Page Down:翻页
  • Insert:切换为替换模式,此时会覆盖文本而不是插入
  • ESC/CTRL+C:切换到命令模式

3)末行命令模式

①如何进入

命令模式下按:(英文冒号)进入末行命令模式;

②与命令模式区别

末行命令模式可以输入单个/多个字符命令,因此可用命令更多

③基本命令(这些命令不一定要写到多行,可以写到同一行,每多一个字符就代表多一个指令和功能)

  • q:退出程序
  • w:保存文件
  • wq:保存并退出
  • ESC:退出末行命令模式

4、用法

1)创建/进入文件,并进入命令模式

①指令

  • vim 文件:打开指定文件

    vim /test/a.txt 

     

  • vim +n 文件:打开指定文件,移动至第n行(+号是语法,不能省略)
    vim +3 /test/a.txt

     

  • vim +/关键字  文件:打开指定文件,并高亮关键字
    vim +/root /test/a.txt

②示例

vim test.txt

初始页面

2)编辑模式

①指令

  • 进入

在命令模式下按i,a,o进入编辑模式,此时左下角状态栏出现INSERT字样。

 此时除了ESC,其他按键都视为一般输入按钮

  • 回到命令模式:ESC

  • 保存并退出:在命令模式下输入 :wq(其实就是末行模式下输入wq)

 

posted @ 2023-07-13 11:03  ShineLe  阅读(112)  评论(1编辑  收藏  举报