Vi(全称为"Visual Editor")和Vim("Vi IMproved")是在Linux和其他UNIX系统上常用的文本编辑器。它们是命令行界面下的文本编辑工具,可以用于编辑各种类型的文件。
基础介绍
先不要用vim创建文件,因为你会退不出来。
有人说让一个未接触过vim的人来退出,就会得到真正的随机字符串。(
Vi/Vim有三种基本工作模式:命令模式(Command mode)、插入模式(Insert mode)、底行模式(Last line mode)。
- 进入命令模式:启动Vi/Vim后默认进入命令模式,可以执行各种编辑命令。
- 进入插入模式:在命令模式下按下
i
键可以进入插入模式,此时可以输入文本内容。 - 进入底行模式:在命令模式下按下冒号
:
可以进入底行模式,可以执行一些高级操作,如保存、退出等。
那么要怎么知道现在在那个模式呢?看右下角的提示。
- 命令模式(空):
- 插入模式(--INSERT--):
- 底行模式(:):
## 最基本的命令(创建和退出)
- 创建
shell
vim a.txt # 之后就会通过该命令直接使用vim进入到a.txt
- 进入命令模式
按ESC
就会从其他模式进入到命令模式。
- 进入插入模式
用很多种方法,先用最简单的i
进入。
- 进入到底部模式
用:
进入。
- 退出
先进入命令模式,在进入底部模式,在底部输入wq
(保存退出,还有其他的命令,!q
强制退出)。
这样就保证至少会退出vim了。
在刚开始学vim时一定要用自己拿的准的命令来写,如果不确定一定在使用时要再搜搜,否则不保证你通过搜索能退出!!!
在刚开始学vim时一定要用自己拿的准的命令来写,如果不确定一定在使用时要再搜搜,否则不保证你通过搜索能退出!!!
在刚开始学vim时一定要用自己拿的准的命令来写,如果不确定一定在使用时要再搜搜,否则不保证你通过搜索能退出!!!
在熟悉或者入门之后基本上能通过搜索引擎解决遇到的问题。
移动(基础 | 常用)
之后的命令很难通过截图等形象的展示出来,如果感觉有歧义或者不理解的地方可以看其他博文和chatgpt进行参照。
键盘按键 | 作用 |
---|---|
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
数字 + h/j/k/l
表示向方向h/j/l/l移动数字e.g.
3j
向下移动3行。
- 移动到第几行
nG
:表示移动到第n行。
gg
:等价于1G
表示移动到第一行。
G
:表示移动到最后一行。
- 行内移动
可以用上面的数字 + h/l
命令。
移动到行的第一个字符位置:^
。
移动到行的最后一个字符位置:$
。
插入(基础 | 常用)
常用
i
,a
,o
。
删除和粘贴(基础)
可视模式
在Vim中,v
是可视模式(Visual mode)的命令。可视模式允许你选中文字块,以便进行复制、剪切、粘贴和其他编辑操作。
通过按下v
键,可以进入普通可视模式(Normal visual mode)。在普通可视模式下,你可以使用移动命令来选择文本块。例如:
- 使用方向键或快捷键移动光标以选择文本块。
j
或k
键向下或向上移动光标,扩大或缩小选择区域。h
或l
键向左或向右移动光标。
删除
x
:删除光标后面的一个字符。
X
:删除光标前面的一个字符。
dd
:删除一整行。
复制和粘贴
y
是复制。p
是粘贴。我是常跟v
使用。
搜索,替代
- 向下找名为word的字符串
vim
/word
- 向上找名为word的字符串
vim
?word
- 重复前面的操作
vim
n
- 反向前面的操作
vim
N
- 在n1到n2行内查找字符串word,并将其改为world。
vim
:n1,n2s/word/world/g
- 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
vim
:1,$s/word/word1/g
vim
:%s/word/word1/g
g -- 全局。 c -- 是否需要确认。
其他常用命令
- 撤销前面的操作
u
- 显示行号和取消行号
vim
set nu
set nonu
- 将编辑的数据存储为另一个文件
vim
w filename