Vim「作为编辑器的使用功能」
编辑模式
正常:移动光标修改
插入文本: 键入 i 进入插入模式
替换文本:键入 R 进入替换模式
可视化: 选中文本块,键入 v 进入可视化一般模式,V 进入可视化行模式,Ctrl+v 可视化块模式
执行命令:键入 : 进入命令模式:
:q
退出关闭窗口:w
保存(写):wq
保存并退出:e {file-name}
打开要编辑的文件:ls
显示打开的缓存:help {标题}
打开帮助文档::help :w
打开:w
命令的帮助文档:help w
打开w
移动的帮助文档
键入
ESC
切换为正常模式
vim「作为编程语言」
移动-在缓存中导航
- 基本移动:
hjkl(左下右上-逆时针)
- 词:
w
-下一个词,b
-词初,e
-词尾 - 行:
0
行初,^
-第一个非空格字符,$
行尾 - 屏幕:
H
-屏幕首行,M
-屏幕中间,L
-屏幕底部 - 翻页:
Ctrl+u
上翻,Ctrl+d
下翻 - 文件:
gg
-文件头,G
文件尾部 - 杂项:
:{line number}<CR>
or{line number}G
- 查找:
f{character}, t{character}, F{character}, T{character}
, (f/F = find, t/T = to, 小写是 forward, 大写是 backward)- find/to forward/backward {character} on the current line
,
or;
用于导航匹配
- 搜索:
/{regex}
向后搜索,n
orN
用于导航匹配
编辑-动词
i
- insert modeo
/O
insert line below / above 向下、上插入行d{motion}
删除{移动命令},dw
删除词,d$
删除到行尾,d0
-删除到行头c{motion}
改变{移动命令},cw
改变词,d{motion}
再i
x
删除字符,等同于dl
s
替换字符,等同于xi
- 可视化模式 + 操作
- 选中文字,
d
删除或者c
改变
- 选中文字,
u
撤销,<C-r>
重做y
to copy / “yank” (some other commands like d also copy)p
粘贴~
改变字符大小写
计数
3w
向前移动 3 个词,5j
向下移动 5 行,7dw
删除 7 个词
修饰语:用修饰语改变语义
i
,a
表示在内部,在周围
ci(
改变当前括号内容ci[
改变当前方括号内容da'
删除一个单引号字符串,包括周围的单引号
进阶
宏(macro):批处理,命令集合
搜索&替换:
:s
替换多窗口:
:sp
or:vsp
分割窗口,同一个缓存可以在多个窗口显示1
2
3
4# 以下载的 vimrc 文件为例
vim vimrc
:sp
# 此时会有2个窗口查看或编辑vimrc文件宏:
q{character}
开始在寄存器{character}
中录制宏,q
停止录制,@
重放宏执行宏
{次数}@{字符}
,执行宏{次数}
次宏递归:
q{character}q
清除宏- 录制该宏,用@{character}来递归调用该宏
1
2
3
4
5
6
7
8
9
10
11
12# 自动加末尾行注释宏**@t**
touch new-practice-vimrc
vim new-practice-vimrc
# 录制宏t
qt
# i进入编辑模式,编辑器底部显示: --INSERT --Recording @t
i
# 输入通用行尾注释
# esc退出到编辑模式,底部显示 --Recording @t
# q停止宏录制
q
# :wq!保存退出编辑模式,结束
vscode 配置 vim 插件
- 下载插件 Vim
- 配置 setting.json
1 | { |
练习-见missing-semester 文件夹
常用的VScode快捷键
基于 macOS,有些是自定义后的快捷键,请
command + k; command s
查看自己的键盘快捷方式
command + k; command s
查看键盘快捷方式command + p
搜索文件command + shift + p
打开命令面板command + t
全局搜索文件内容command + w
关闭当前文件command + shift + n
新建窗口command + shift + v
预览 markdown 文件command + shift + k
删除光标所在的一行command + /
切换单行注释command + shift + /
切换块注释command + j
切换终端- ctrl + ` 切换终端
command + b
切换侧边栏command + ,
打开设置command + f2 + fn
选择当前文件内所有和光标所在位置相同的单词command + 1 or 2 or 3
编辑区分区command + l
选择当前行command + [ or ]
缩进command + k; command + o
全部折叠command + k; command + l
切换折叠command + option + [ or ]
折叠/展开代码块command + k; command + [ or ]
递归折叠/展开代码块command + shift + l
先执行一次 选择,再执行此命令可选择到所有相同文本或选项command + option + shift + 上下或左右箭头
选择多行代码option + shift + 拖动光标
选择多行代码option + shift + 上下箭头
向上或向下复制行option + shift + 左右箭头
向左或向右选择部分代码option + 上下箭头
向上或向下移动行option + 上下箭头
向上或向下移动行f3 + fn
在结果中导航command + d
选择多个结果command + g
查找下一个command + shift + g
查找上一个option + enter
选择所有结果f8 + fn
导航到错误或警告处