vim基础用法

之前做项目时使用到了vim,但中间一些指令忘记了,所以根据网上视频和资料对vim的基础用法进行了总结。

使用hjkl来移动你的光标

h 表示 j 表示 k 表示 l 表示

假如想向左移动10格,可以先输入10,然后按 h

模式

基本模式:

  • 普通模式
  • 插入模式
  • 可视模式
  • 选择模式
  • 命令行模式
  • Ex模式

派生模式:

  • 操作符等待模式
  • 插入普通模式
  • 插入可视模式
  • 插入选择模式
  • 替换模式
敲击按键含义
i在光标的前边进入插入模式
I在光标所在行的行首进入插入模式
a在光标的后边进入插入模式
A在光标所在行的行尾进入插入模式
o在光标所在行的下方插入空行并进入插入模式
O在光标所在行的上方插入空行并进入插入模式
s删除光标指定的字符并进入插入模式
S将光标所在行清除并进入插入模式(清除不改变行的位置)

motion 表示操作范围的指令,具体可有以下几种:

按键含义
0将光标定位到行首的位置
^同上
$将光标定位到行尾的位置
b将光标定位到光标所在单词的起始处
e将光标定位到光标所在单词的结尾处
w将光标定位到下一个单词的起始处(注意,是光标所在单词的下一个单词)
gg将光标定位到文件的开头
G将光标定位到文件的末尾

忽略修改并退出 :q!,其中 :q 表示退出, :q! 表示忽略修改并退出

保存修改并退出 :wq按住 Shift键后按两次 Z 键

删除命令

  • 在普通模式下,删除单一字符可以用 x 命令

  • 删除更多字符可以使用 d 命令

  • 更多删除命令

按键含义
d0删除光标从当前位置(不包含)到该行行首的所有字符
d^同上
d$删除从光标当前位置(包含)到该行行尾的所有字符
db删除从光标当前位置(不包含)到单词起始处的所有字符
de删除从光标当前位置(包含)到单词结尾处的所有字符
dw删除从光标当前位置(包含)到下个单词起始处的所有字符
dh删除光标前边一个字符
dl删除光标指定的字符
dj删除光标所在行以及下一行的所有字符
dk删除光标所在行以及上一行的所有字符
dd删除光标所在行的字符
dgg删除光标所在行到文件开头的所有字符
dG删除光标所在行到文件末尾的所有字符

数字的奥义

  • 数字 + motion = 重复多个motion
  • d + 数字 + motion = 删除多个motion范围

后悔药

  • u 表示撤销最后一次修改
  • U 表示撤销对整行的修改
  • Ctrl + r 快捷键可以恢复撤销的内容

注意:

在VIM下使用删除功能,并不会直接将你的东西删掉,而是放到VIM的寄存器中。

粘贴命令

使用 p 命令可以将最后一次删除的内容粘贴到光标之后。(大写的 P 则是粘贴到光标之前)

注意:

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

拷贝命令

VIM用 y 命令实现拷贝: y [数字] motion

替换命令

  • r 命令用于替换光标所在的字符,做法是先将光标移动到需要替换的字符处,按一下 r 键,然后输入新的字符。
  • 在键入 r 命令前输入数字,表示从光标处开始,将多个字符统一替换为新字符。

替换模式

R 命令让你一步到位进入替换模式,如果按回退就可以恢复之前的替换

修改命令

  • 修改跟替换是不一样的!
  • 修改会进入插入模式,替换不会进入插入模式!
  • VIM用 c 命令实现修改: c [数字] motion
按键含义
c0删除光标从当前位置(不包含)到该行行首的所有字符,并进入插入模式
c^同上
c$删除从光标当前位置(包含)到改行行尾的所有字符,并进入插入模式
cb删除从光标当前位置(不包含)到单词起始处的所有字符,并进入插入模式
ce删除从光标当前位置(包含)到单词结尾处的所有字符,并进入插入模式
cw删除从光标当前位置(包含)到下个单词起始处的所有字符,并进入插入模式
ch删除光标前边一个字符,并进入插入模式
cl删除光标指定的字符,并进入插入模式
cj删除光标所在行以及下一行的所有字符,并在光标下一行进入插入模式
ck删除光标所在行以及上一行的所有字符,并在光标下一行进入插入模式
cc删除光标所在行的字符,并进入插入模式

修改 = 删除 + 进入插入模式

文件信息

Ctrl + g 查看文件信息

跳转

  • 行号 + G
  • :行号

定位括号

按下 % 键,快速帮你找到另一半括号

缩进

>> 表示缩进

<< 表示反缩进

搜索命令

查找是从按下 / 那一刻开始的…

/目标?目标
搜索方向从光标开始向后从光标开始向前
n向后搜索下一个向前搜索下一个
N向前搜索下一个向后搜索下一个

如果搜索完了,按下esc后进入普通模式后仍然搜索的内容是高亮的,可以输入:nohl来解决

注意:有十个特殊字符不能直接用 /进行搜索,分别是 . * [ ] ^ % / ? ~ $,如果需要搜索,则需要加入 \ ,例如/\/

替换命令

  • :s/old/new
    表示将光标所在行的第一个old替换为new
  • :s/old/new/g
    表示将光标所在行的所有old替换为new
  • :%s/old/new/g
    表示将整个文件中所有的old替换为new
  • :%s/old/new/gc
    同上,但是会在每次替换之前先请示
  • :5,13s/old/new/g
    表示替换第5行到第13行中所有的old为new

如果想把搜索到的oo替换为xx,则可是输入 :s/oo/xx

如果光标在某一行,输入 :s/x/o,则会将该行的第一个x替换为o

如果光标在某一行,输入 :s/x/o/g,则可以将该行所有的x替换为o

如果想把文档中的所有x替换为o,则可以输入:%s/x/o/g

如果输入 :%s/x/o/gc,则会咨询你是否将整个文档中的所有x替换为o

如果想把第4行到第12行之间的x替换为o,则可以输入:4,12s/x/0/g

执行shell命令

用法: :!

如果想查看根目录下有哪些文件,可以输入 :!ls /

文件另存为

用法::w 文件名

局部内容另存为:1. 按下 v 进入可视模式;2. :w 文件名

可以使用 :w! 文件名来进行覆盖操作

合并文件

用法::r 文件名

可以在A文件中使用 :r B 将B文件中的内容合并到A文件中

打开多个文件

用法:
-o 垂直并排

-O 水平并排

如果想要A文件和B文件垂直并排,则可以输入 vi -o A B

如果想要A文件和B文件水平并排,则可以输入 vi -O A B

  • Ctrl + w + w 将光标切换到下一个文件
  • 对于垂直并排的文件:使用 Ctrl + w + 上、下方向,表示上、下切换文件;
  • 对于水平并排的文件:使用 Ctrl + w + 左、右方向,表示左、右切换文件。

使用 :qa 可以不修改退出所有文件

以上即为常见的vim用法。

内容参考小甲鱼 《vim快速入门》。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值