Vim入门操作大全

下文出现的所有类似Ctrl+a或者n>>这种形式的命令都代表快捷键操作;如果是底线命令都加了:

移动光标

  • 基本操作
h    j    k    l
左   下   上   右
  • 高级操作
按键含义
0将光标定位到行首的位置
^将光标定位到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
$将光标定位到行尾的位置
g_将光标定位到本行最后一个不是blank字符的位置
b将光标定位到光标所在单词的起始处
e将光标定位到光标所在单词的结尾处
w将光标定位到下一个单词的起始处(注意,是光标所在单词的下一个单词)
gg将光标定位到文件的开头
G将光标定位到文件的末尾

这里几乎所有的移动光标的前面都可以加数字,代表重复多少次,还有很多命令都可以这么做,自行探索哈哈

模式分类

VIM 具有6种基本模式和5种派生模式。

基本模式:

  1. 普通模式
  2. 插入模式
  3. 可视模式
  4. 底线命令行模式
  5. 选择模式
  6. Ex 模式

派生模式:

  1. 操作符等待模式
  2. 插入普通模式
  3. 插入可视模式
  4. 插入选择模式
  5. 替换模式

常用模式

  • 进入插入模式
按键含义
i在光标的前边进入插入模式
I在光标所在行的行首进入插入模式
a在光标的后边进入插入模式
A在光标所在行的行尾进入插入模式
o在光标所在行的下方插入空行并进入插入模式
O在光标所在行的上方插入空行并进入插入模式
s删除光标指定的字符并进入插入模式
S将光标所在行清除并进入插入模式
  • 退出插入模式(按键)
Esc
  • 进去底线命令模式(插入模式不可进入)

保存退出文件

# 方式1(底线命令模式)
:wq
# 方式2(快捷键)
Shift+Z+Z

删除命令

  • 删除当前光标下的字符用x
x
  • 删除更多字符
# d 操作次数 操作范围的指令
d [n] motion
按键含义
d0删除光标从当前位置(不包含)到该行行首的所有字符
d^删除光标从当前位置(不包含)到本行第一个不是blank字符位置处的字符
d$删除从光标当前位置(包含)到该行行尾的所有字符
dg_删除从光标当前位置(包含)到该行行尾最后一个不是blank字符位置处的所有字符
db删除从光标当前位置(不包含)到单词起始处的所有字符
de删除从光标当前位置(包含)到单词结尾处的所有字符
dw删除从光标当前位置(包含)到下个单词起始处的所有字符
dh删除光标前面一个字符
dl删除光标指定的字符
dj删除光标所在行以及下一行的所有字符
dk删除光标所在行以及上一行的所有字符
dd删除光标所在行的所有字符
dgg删除光标所在行(包含)到文件开头的所有字符
dG删除光标所在行(包含)到文件末尾的所有字符

这上面所有的“删除”操作并不是真的删除,它们事实上是存放在 VIM 的一个缓冲区(VIM 把它称之为寄存器)中,相当于 Windows 的剪切功能。

修改命令

跟删除完全相同,只是把d换成c,并且修改会自动进入插入模式,我们可以理解成修改 = 删除 + 进入插入模式

  • 例如:删除本行并进入插入模式
cc

复制和粘贴

  • 复制多个字符
# y  操作次数 操作范围的指令
y [n] motion
  • 复制当前行字符
yy

其他motion其实跟之前删除是一样的

  • 粘贴到光标之后
p
  • 粘贴到光标之前
P

注意:如果你需要粘贴的是整行为单位,那么 p 命令将在光标的下一行开始粘贴;如果你拷贝的是非整行的局部字符串,那么 p 命令将在光标后开始粘贴。

撤销与恢复

  • 撤销最后一次修改
u
  • 撤销对当前行的修改
U
  • 恢复上次撤销的内容
Ctrl+r

文件信息

  • 查看文件信息,在最下面显示当前文件和光标的信息
Ctrl+g
  • 跳转到第n行
# 方式1
nG
# 方式2
:n
  • 跳转括号
# 将光标定位到括号的其中一半上,按下光标会跳转到另一半括号上
%

缩进

  • 缩进n行
n>>
  • 反缩进n行
n<<
  • 反缩进n行
n<<
  • 结合可视模式进行缩进
# step1:进入可视模式通过移动光标选择
v
# step2:缩进
>
<

搜索命令

  • 向后搜索(默认从当前光标开始向后搜索)
# 开启搜索
/关键字
# 向后搜索
n
# 向前搜索
N
  • 向前搜索(默认从当前光标开始向前搜索)
# 开启搜索
?关键字
# 向前搜索
n
# 向后搜索
N
  • 去除高亮
:nohl
  • 十个特殊字符有特殊含义,需要先转义再搜索
.
*
[
]
^
%
/
?
~
$
# 转义(前面加\)
\特殊字符

替换命令

方式1:替换模式
  • 替换当前光标下字符
r+替换字符
  • 替换多个字符
# step1:进入替换模式,左下角出现 replace
R
# step2:替换
输入替换字符
方式2:底线命令行模式

一般在搜索后进行替换

  • 把光标所在行的第一个符合条件的字符替换
:s/被替换字符/替换字符
  • 把光标所在行的所有符合条件的字符替换
:s/被替换字符/替换字符/g
  • 把整个文件的所有符合条件的字符替换
:%s/被替换字符/替换字符/g
  • 把文件局部(2-10行)的所有符合条件的字符替换
:2,10s/被替换字符/替换字符/g
  • 把整个文件的所有符合条件的字符替换,逐步询问替换
:%s/被替换字符/替换字符/gc
# 会逐步询问
替换为 替换字符 (y/n/a/q/l/^E/^Y)? 
y   -- 替换
n   -- 不替换
a   -- 替换所有
q   -- 放弃替换
l   -- 替换一个并进入插入模式
^E  -- Ctrl + E 滚动屏幕
^Y  -- Ctrl + Y 滚动屏幕

文件命令

  • 文件另存为
:w 文件名
  • 强制另存为(已经存在同名文件,覆盖)
:w! 文件名
  • 局部内容另存为
# step1:进入可视模式通过移动光标选择
v
# step2:另存
:w 文件名
  • 合并文件(读取文件并植入到光标的下一行位置)
:r 文件名
  • 同时打开多个文件(打开文件时操作)
# 垂直并排
vi -o 文件名1 文件名2 ...
# 水平并排
vi -O 文件名1 文件名2 ...

# 切换文件
Ctrl + w + w
# 垂直并排切换
Ctrl + w + 上/下
# 水平并排切换
Ctrl + w + 左/右

# 退出保存全部,在之前的基础上加 a
:qa
:wa
:q!a
:w!a
:wqa

执行shell命令

:! shell命令
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值