• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Vim 备忘单

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
inner / aroundinner / aroundVim 8.2 快速参考备忘单的有用集合,可帮助您更快地学习 vim 编辑器。

开始

运动图

▼/▶ Cursor   ▽/▷ Target

左右动作

┌───────────── |      
├───────────── 0      $ ──────────────┐ 
│  ┌────────── ^      fe ────────┐    │
│  │  ┌─────── Fo     te ───────┐│    │
│  │  │┌────── To     30| ───┐  ││    │
│  │  ││ ┌──── ge     w ───┐ │  ││    │
│  │  ││ │ ┌── b      e ─┐ │ │  ││    │
│  │  ││ │ │  ┌h      l┐ │ │ │  ││    │
▽  ▽  ▽▽ ▽ ▽  ▽▼      ▼▽ ▽ ▽ ▽  ▽▽    ▽
   echo "A cheatsheet from quickref.me"

上下动作

                 - SCREEN 1 START
   ┌─┬─────────▷ #!/usr/bin/python
   │ │     ┌───▷     
   │ │     │     print("Hello")
   │ │     { } ▶ print("Vim")
   │ │       │   print("!")
   │ │       └─▷    
   │ │ ┌───┬───▷ print("Welcome")
G gg H M L k j ▶ print("to")
│        │   └─▷ print("quickref.me")
│        │       print("/vim")
│        │     
│        └─────▷ 
│                - SCREEN 1 END
└──────────────▷ print("SCREEN 2")

快捷键大全

h | j | k | l 方向键
<C-u> / <C-d> 上/下半页
<C-b> / <C-f> 向上/向下翻页

b / w 上一个/下一个单词
ge / e 上一个/下一个词尾

线

0 (零) / $ 行开始/结束
^ 行首(非空白)

特点

Fe / fe 移至上一个/下一个 e
To / to 在上一个/下一个之前/之后移动 o
| / n| 转到第一/n第列

文档

gg / G 第一行/最后一行
:n | nG 去线 n
} / { 下一个/上一个空行

窗口

H / M / L 上/中/下屏幕
zt / zz / zb 这条线的顶部/中心/底部

插入模式

i / a 在光标前/后插入
I / A 插入行首/行尾
o / O (字母) 在下方/上方插入新行
s / S 删除字符/行并插入
C 更改为行尾
gi 在最后一个插入点插入
Esc | <C-[> 退出插入模式

保存和退出

:w 节省
:q 关闭文件
:wq | :x | ZZ 保存并退出
:wqa 保存并退出所有文件
:q! | ZQ 强制退出
:qa 关闭所有文件
:qa! 强制退出所有文件
:w new.txt 写给 new.txt
:sav new.txt 保存和编辑 new.txt
:w !sudo tee % 写入只读文件

正常模式

r 替换一个字符
R 进入替换模式
u / 3u 撤消更改1/3次数
U 在一行上撤消更改
J 加入下一行
<C-r> / 5<C-r> 重做更改1/5次数

剪切和粘贴

x 删除字符(剪切)
p / P 粘贴之后/之前
xp 交换两个字符
D 删除到行尾(剪切)
dw 删除单词(剪切)
dd 删除线(剪切)
ddp 交换两行
yy 扬克线(复印)
"*p | "+p 从系统剪贴板粘贴
"*y | "+y 粘贴到系统剪贴板

在视觉模式

d | x 删除选择 (剪切)
s 替换选择
y Yank 选择(复制)

重复

. 重复上一个命令
; 重复最近的f, t,FT
, 重复上次的ftFT逆转
& 最后重复 :s
@: 重复命令行命令

视觉模式

v 进入视觉模式
V 进入视线模式
<C-v> 进入视觉块模式
ggVG 选择所有文本
> / < 向右/向左移动文本

qi 录制宏 i
q 停止录制宏
@i 运行宏 i
7@i 运行宏i7 次
@@ 重复上一个宏

Vim 操作符

用法

d w
Operator(操作符)
Motion(动作)

结合操作符动作来使用它们

可用的运算符

d 删除
y 扬克(复制)
c 更改(删除然后插入)
p 粘贴
= 格式代码
g~ 切换案例
gU 大写
gu 小写
> 缩进权
< 向左缩进
! 通过外部程序过滤

例子

dd 删除当前行
dj 删除两行
dw 删除到下一个单词
db 删除到词首
dfa 删除直到a字符
d/hello 删除直到 hello
cc 更改当前行
yy 复制当前行
>j 缩进 2 行
ggdG 删除一个完整的文档
gg=G 缩进完整的文档
ggyG 复制整个文档

计数

[count] <operator> <motion>
<operator> [count] <motion>

2dd 删除2
6yy 复制6
d3w 删除3单词
d5j 5向下删除
>4k 4向上缩进线

Vim 文本对象

用法

v         i / a p
Operator(操作符)
inner / around
Text object(文本对象)

在文本块内部或周围使用运算符操作

文本对象

p
段落
w
单词
W
WORD
(由空格包围)
s
句子
[ ( { < []、() 或 {} 块
] ) } > []、() 或 {} 块
' ` 带引号的字符串
b 一个块 [(
B [{ 中的一个块
t 一个 HTML 标签块

:help text-objects

删除

​​​diw​​​
删除内词
​dis​
删除内句
​di​"
在引号中删除
​da​"
在引号中删除(包括引号)
​dip​
删除一个段落

选择

​v​i 选择内引号“ ...
va 选择引号 "..."
vi[ 选择内括号 [ ...]
va[ 选择括号 [...]
viw 选择内词
vip 选择内部段落
vipip 选择更多段落

杂项

ciw 改变内在的话
​​ci​ 更改内部引号
cit 更改内部标签 (HTML)
cip 更改内部段落
yip 拉取内段
ysp Yank 段落(包括换行符)

Vim 多个文件

缓冲器

:e file 在新缓冲区中编辑文件
:bn 转到下一个缓冲区
:bp 转到上一个缓冲区
:bd 从缓冲区列表中删除文件
:b 5 打开缓冲区 #5
:b file 按文件转到缓冲区
:ls 列出所有打开的缓冲区
:sp file 打开和拆分窗口
:vs file 打开和垂直拆分窗口
:hid 隐藏此缓冲区
:wn 写入文件并移至下一个
:tab ba 将所有缓冲区编辑为选项卡

窗口

<C-w> s 拆分窗口
<C-w> v 垂直拆分窗口
<C-w> w 切换窗口
<C-w> q 退出窗口
<C-w> T 进入新标签页
<C-w> x 与下一个交换当前
<C-w> - / + 降低/增加高度
<C-w> < / > 减少/增加宽度
<C-w> | 最大宽度
<C-w> = 同样高宽
<C-w> h / l 转到左/右窗口
<C-w> j / k 转到上/下窗口

标签

:tabe [file] 在新选项卡中编辑文件
:tabf [file] 如果在新选项卡中存在则打开
:tabc 关闭当前标签
:tabo 关闭其他标签
:tabs 列出所有标签
:tabr 转到第一个选项卡
:tabl 转到最后一个选项卡
:tabm 0 移动到位置 0
:tabn 前往下一个标签
:tabp 前往上一个标签    

正常模式

gt 前往下一个标签
gT 前往上一个表亲啊
2gt 前往编号为 2的标签

Vim 搜索和替换

/foo 向前搜索
/foo\c 向前搜索(不区分大小写)
?foo 向后搜索
/\v\d+ 使用正则表达式搜索
n 下一个匹配的搜索模式
N 上一场匹配
* 向前搜索当前词
# 向后搜索当前词

换行

:[range]s/{pattern}/{str}/[flags]
:s/old/new 先更换
:s/old/new/g 全部替换
:s/\vold/new/g 全部替换为正则表达式
:s/old/new/gc 全部替换(确认)
:s/old/new/i 先忽略大小写替换
:2,6s/old/new/g 在行之间替换2-6

#替换文件

:%s/{pattern}/{str}/[flags]
:%s/old/new 先更换
:%s/old/new/g 全部替换
:%s/old/new/gc 全部替换(确认)
:%s/old/new/gi 全部替换(忽略大小写)
:%s/\vold/new/g 全部替换为正则表达式

范围

% 整个文件
’<,’> 当前选择
5 线 5
5,10 510
$ 最后一行
2,$ 2到最后
. 当前线路
,3 下一3
-3, 前锋3线

全局命令

:[range]g/{pattern}/[command]

:g/foo/d 删除包含的行 foo
:g!/foo/d 删除不包含的行 foo

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
下一篇:
Vimscript 还剩下什么?发布时间:2022-02-03
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap