VIM tutor学习小结

以下命令均在Normal模式下执行,如不确定当前模式,按下<ESC>回到Normal模式。
使用ESC撤销一个不想输入或部分完整的命令。

 

VIM的进入和退出

进入Vim编辑器(从命令行提示符):vim filename
退出Vim编辑器:<ESC> :q! (放弃所有改动)
      或者:<ESC> :wq (保存改动)

 

移动光标

  ↑
  k
←h  l→(小写L)
   j
   ↓

 

撤销

u:撤销最后执行的命令
U:撤销对整行的修改
Ctrl + R:撤销之前的撤销命令

 

删除类命令

删除光标所在位置字符:x
d motion

d     – 删除操作符
motion   --操作符的操作对象

一个简短的动作列表:

w    – 从当前光标位置至下一个单词的起始处,不包括第一个字符
e    – 从当前光标位置至单词末尾,包括最后一个字符
$    – 从当前光标位置至当前行末

dd:删除当前行

 

使用计数指定动作

在动作前输入数字n会使它重复n次

operator [number] motion

例如:
2w:光标向前移动两个单词
3e:光标向前移动到第三个单词末尾
0:光标移至当前行行首
2dd:删除当前行开始的两行

 

置入类命令

i:在光标前插入文本
a:在光标后插入文本
A:在行末添加文本
y:复制文本
yw:复制光标处至词末
p:粘贴文本于光标之后。如果文本是一整行,则至于当前行的下一行
o:在光标下方打开新的一行
O:在光标上方打开新的一行

 

替换类命令

r char:将光标所在位置字符替换为char

r    – 替换操作符
char   – 要替换的字符

R:连续替换多个字符

 

更改类命令

c [number] motion
动作参数同删除类命令。

 

定位及文件状态

Ctrl+g:显示当前光标所在行位置和当前文件状态信息
G:跳转到文件最后一行
gg:跳转到文件第一行
nG:跳转到第n行
0:移动光标到行首
$:移动光标到行末
e:光标移动到单词末尾
b:光标移动到词首
w:光标移动到下一个单词词首

 

搜索类命令

/string:向前查找string字符串
/string\c:仅在一次查找时忽略大小写
?string:向后查找string字符串
n:同一方向上查找上一次的字符串
N:相反方向查找上一次的字符串
Ctrl+O:回退到之前位置,可通过重复按回退多步
Ctrl+I:(大写i)跳转到较新的位置
:set ic(or :set ignorecase):ignore case,搜索时设置忽略大小写
:set noic(or :set noignorecase):禁用忽略大小写
:set is(or :set incsearch):查找字符串时显示部分匹配
:set nois(or :set noincsearch):禁用显示部分匹配
set hls(or :set hlsearch):highlight,匹配项高亮显示
:nohlsearch(or :nohls):取消高亮

 

配对括号查找

%:配对括号(用于查找不配对的括号),光标应停留在"(“、”[“、”{“、”)“、”]“、”}"处

 

替换命令

:s/old/new:替换当前行第一个出现的old字符串为new
:s/old/new/g:替换该行中所有的old字符串为new
:#,#s/old/new/g:替换若干行中所有old字符串为new#为首尾两行的行号
:%s/old/new/g:替换文件中每一个匹配串
%s/old/new/gc:替换文件中每一个匹配串,并对每一个匹配串提示是否进行替换

 

在VIM内部执行外部命令

:!cmd:执行外部shell命令,cmd为命令名称
:w newfile: 保存当前文件到newfile文件中
vmotionoperator:按v进入可视模式,选择若干行进行操作
:r file:在光标处插入file文件中的内容,file也可以是外部命令的输出(如::r !ls

批量缩进

:a,b>:从第 a 行到第 b 行向右缩进
:a,b<:从第 a 行到第 b 行向左缩进
比如:

:10,21>

表示第 10 行到第 21 行向右缩进
 



拖延是病(つД`)ノ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值