-
y[object] 复制
p 粘贴
d,x并没有真正删除字符,而是把它暂存在寄存器中
yy 复制一行
在插入模式中C-c C-v可用于复制粘贴(GVim没起作用)
"[register]cmd 指定使用[register]寄存器执行cmd命令
:reg [register] 查看[register]寄存器
""/0/+/%/. 无名寄存器/复制寄存器/系统剪贴板/当前文件名/上次插入的文本
:set clipboard=unnamed 统一寄存器和系统剪贴板
插入模式中:
C-r + 粘贴系统剪贴板内容
:e! 重新加载当前文件
查看全部 -
命令的通用格式:
[num]command[text obj]
[num] 次数
command 命令
[text obj] 文本对象 i(内容)/a(包括空格/本身)+w(单词) s(句子) p(段落) 或者括号等
查看全部 -
概念:
Buffer: 内存缓冲区
Window: Buffer的可视化分割区域
Tab: 组织Window为一个工作区
<TAB> 补全命令
:ls 列举当前缓冲区
:b [num] 跳转到[num]缓冲区
:b [name] 跳转到[name]缓冲区
:bpre/bnext/bfirst/blast 跳转到上一个/下一个/第一个/最后一个缓冲区
:e [name] 打开[name]文件
C-w s 水平分割窗口
C-w v 垂直分割窗口
C-w w 循环切换窗口
C-w h/j/k/l 切换到←/↓/↑/→窗口
C-w H/J/K/L 移动当前窗口向←/↓/↑/→
C-w = 所有窗口等宽高
C-w _/| 当前窗口最大化高度/宽度
[num]C-w _/| 当前窗口高度设为[num]行/列
:tabnew 新建标签页
:tabe [name] 在新标签页打开[name]文件
:tabc 关闭当前标签页和窗口
:tabo 只保留当前标签页并关闭其他的
C-w T 将当前窗口移动到新标签页
:tabn [num] 切换到[num]标签页,没有[num]表示下一个
[num]gt 同上
:tabp 切换到上一个标签页
gT 同上
查看全部 -
:[range] s/[pattern]/[string]/[flags] 搜索并替换
其中:
[range] 文本范围
10,20 从10到20行
% 全部
[pattern] 源字符串(可正则)
[string] 要替换的字符串
[flags] 标志
g 全局范围执行
c 替换前确认
n 只查询匹配次数
查看全部 -
数字+命令可多次执行该命令
删除:
x 删除一个字符
d[object] 删除一个[object]
[object]包括但不限于:
(a)w 单词(包含空白符)
iw 单词(不包含空白符)
$
0
...
dd 删除当前行
dt[char] 删除直到[char]的字符
修改:
r 替换当前字符
R 进入替换模式
s 删除当前字符并进入插入模式
S 删除当前行并进入插入模式
c[object] 删除一个[object]并进入插入模式
ct[char] 删除直到[char]的字符并进入插入模式
C 删除当前行光标后所有字符并进入插入模式
查询:
:set hls 搜索结果高亮
:set incsearch 增量搜索
/[string] 正向搜索
?[string] 反向搜索
其中:
n/N 下一个/上一个匹配
*/# 当前单词的正向/反向匹配
查看全部 -
:syntax on 开启语法高亮
:help [command] 查看帮助
h/j/k/l ←/↓/↑/→
w/W 词开头
e/E 词结尾
b/B 上一个词开头
f[char]/t[char] 跳转到行内[char]/跳转到行内[char]的前一个字符
;/, 下一个/上一个
F[char] 反向执行f[char]
0 行首
^ 非空白符行首
$ 行尾
g_ 非空白符行尾
(/)/{/} 上一句/下一句/上一段/下一段
gg/G 移动到文件开头/结尾
C-o 返回上一个光标位置
H/M/L 跳转到当前屏幕开头/中间/结尾
C-u/C-f 上一页/下一页
zz 当前行屏幕居中
查看全部 -
在插入模式下:
C-h 删除上一个字符
C-w 删除上一个单词
C-u 删除行
C-c / C-[ 切换到normal模式
gi 跳转到最后编辑处并进入插入模式
查看全部 -
:vs 纵向分屏
:sp 横向分屏
:set nu 显示行号
:% s/[original]/[new]/g 全局替换[original]为[new]
进入可视化模式:
v 进入字符选择
V 进入行选择
C-v 进入块选择
查看全部 -
命令行模式(可组合):
:q 退出
:w 保存
进入插入模式:
a 当前字符后
A 在当前行最后
i 在当前字符前
I 在当前行首
o 在当前行下插入新行
O 在当前行前插入新行
ESC 回到normal模式
查看全部 -
作者 参考了 《practical vim》的讲解!
查看全部 -
sentence 应该是定义了 什么是 句子
查看全部 -
A 当前行尾插入 I 当前行首插入 O 当前行上方插入查看全部
-
i insert 在当前字符前面插入 a append 在当前字符后面插入 o open a line blow 在当前行的下一行插入查看全部
-
终端输入vim进入vim,起始默认进入normal状态查看全部
-
mac自带vim,终端输入vim查看全部
举报