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}向后搜索,norN用于导航匹配
编辑-动词
i- insert modeo/Oinsert line below / above 向下、上插入行d{motion}删除{移动命令},dw删除词,d$删除到行尾,d0-删除到行头c{motion}改变{移动命令},cw改变词,d{motion}再ix删除字符,等同于dls替换字符,等同于xi- 可视化模式 + 操作
- 选中文字,
d删除或者c改变
- 选中文字,
u撤销,<C-r>重做yto copy / “yank” (some other commands like d also copy)p粘贴~改变字符大小写
计数
3w向前移动 3 个词,5j向下移动 5 行,7dw删除 7 个词
修饰语:用修饰语改变语义
i,a表示在内部,在周围
ci(改变当前括号内容ci[改变当前方括号内容da'删除一个单引号字符串,包括周围的单引号
进阶
宏(macro):批处理,命令集合
搜索&替换:
:s替换多窗口:
:spor: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导航到错误或警告处