这个是我的草稿本记录一下防止丢失,以后有时间进行整理
0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
---|---|
$ 或功能键[End] | 移动到这一行的最后面字符处(常用) |
G | 移动到这个档案的最后一行(常用) |
nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行 |
gg | 移动到这个档案的第一行,相当于 1G 啊! (常用) |
n | n 为数字。光标向下移动 n 行 |
[Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down]按键 |
[Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
:tabp | 切换到上一个编辑器 |
:tabn | 切换到下一个编辑器 |
:tabfirst | 切换到第一个编辑器 |
:tablast | 切换到末一个编辑器 |
:sp | 水平拆分编辑器 |
:vsp | 垂直拆分编辑器 |
:new | 水平拆分编辑器,并创建新的无标题文件 |
:vnew | 垂直拆分编辑器,并创建新的无标题文件 |
:only | 关闭所有的编辑器 |
gh或K | 显示悬停 |
光标的移动
普通模式 NORMAL
| w | 跳到一个单词开头 |
| b | 跳到本单词或上一个单词的开头 |
| e | 跳到本单词或下一个单词结尾 |
| ge | 跳到上一个单词结尾 |
| 0 | 跳到行首 |
| ^ | 跳到从行首开始第一个非空字符 |
| $ | 跳到行尾 |
| gg | 跳到第一行 |
| G | 跳到最后一行 |
| f{char} | 光标跳到下一个{char}所在位置 |
| F{char} | 反向移动到上一个{char}所在位置 |
| t{char} | 光标跳到下个{char}的前一个字符的位置 |
| T{char} | 光标反向移动到上个{char}的后一个字符的位置 |
| ; | 重复上次的字符查找操作 |
| , | 反向查找上次的查找命令 |
动作 motion
普通模式 NORMAL
i (inner) 和 a (around) 的区别
i不包含 a包含
| iw / aw |
| i( / a( 或 ib / ab |
| i{ / a{ 或 iB / aB |
| i" / a" |
| i' / a' |
| i / a
|
| i< / a< |
| i[ / a[ |
| it / at |
| is / as |
| ip / ap |
操作符
普通模式 NORMAL
| d(delete) | 删除 |
| c(change) | 修改(删除并进入插入模式) |
| y(yank) | 复制 |
| v(visual) | 选中并进入 VISUAL 模式 |
实列
-
修改 HelloWorld (ciw)
-
删除 diw
-
复制 yiw
'HelloWorld'
-
修改泛型 ci<
-
删除泛型 di<
-
包含 括号一起删除 da<
-
删除返回值 di{ 或 diB
-
删除并修改 ci{
-
复制 yi{
-
包括括号删除 da{
{
flag,
handleSetTrue,
handSetFalse
}
-
删除返回值 di( 或 dib
-
删除并修改 ci(
-
复制 yi(
-
包括括号删除 da(
('flag')
-
删除返回值 di[
-
删除并修改 ci[
-
复制 yi[
-
包括括号删除 da[
[1,3,4,5]
-
删除返回值 di`
-
删除并修改 ci`
-
复制 yi`
-
包括括号删除 da
-
删除到 dfs => 删除d 查找f 字符s(s前面的全部删除)
vim is awesome
-
删除 d^ => 删除d ^ 删除光标前面的
-
删除 d$ => 删除d $ 删除光标后面的
-
删除整个文件 die
-
删除整个文件并进入插入模式 cie
-
复制整个文件 yie
-
删除标签内的内容 dit
-
删除标签内的内容并进入插入模式 cit
dsdsdsadsadsadsadsadsadsadsadsad d dsadsad sad sad sad sad sad sa
dwddd sadsa ds dsa dsadsad sad sad sa dsa dsa dsa d sad sad sad
- 可视模式 viw 进入可视 i inner w 选中一个单词 后面可以接操作符 d 删除 c修改 y复制
- 可视模式 viB 进入可视 i inner B 选中大括号{}里面的全部内容 后面可以接操作符 d 删除 c修改 y复制
切换大小写
-
~ 将光标下的字母改变大小写
-
3~ 将光标位置开始的3个字母改变其大小写
-
g~~ 改变当前行字母的大小写
-
gUU 将当前行的字母改成大写
-
guu 将当前行的字母改成小写
-
gUaw(gUiW) 将光标下的单词改成大写
-
guaw(guiw) 将光标下的单词改成小写
FFFF
-
查看函数的实现及定义 gd
-
查看代码的tip 悬浮时 gh
-
切换标签页 gt下一个 后一个 gT 指定 2gt
-
转跳到侧边 Ctrl + 0
-
在不同的多标签页 Ctrl + 1...5
-
空格空格 s + 查找的字符
-
"test" => cs" ' => 'test'
-
"test" => ds" => test
-
"test" => cs"t 123> =>
-
ffffoo => ysiw ' =>
-
fffff0 => ysiw < p> =>
-
多光标模式 gb 多次选中 c修改 d删除 i插入
h 左
j 下
k 上
l 右
ctrl + o 移动到上一光标位置
ctrl + i 移动到下一光标位置
行相关移动
0 行开头
^ 行开头(非空格)
$ 行尾
g_ 行尾(非空格)
词句相关移动
w 下一个词开始
W 下一个词开始(无视标点)
b 上一个词开始
B 上一个词开始(无视标点)
e 上一个词结束
E 上一个词结束(无视标点)
( 句首
) 句尾
块相关移动
{ 移动到块开始
} 移动到块结束
屏幕相关移动
ctrl + b 向上一屏幕
ctrl + f 向下一屏幕
ctrl + u 向上半屏幕
ctrl + d 向下半屏幕
H 当前屏幕第一行
M 当前屏幕中建行
L 当前屏幕最后一行
语言相关一种
gd 跳转到定义
文件相关移动
gf 跳转到文件
gg 文件头
G 文件尾
gg 第 N 行
G 第 N 行
: + 第 N 行
历史移动
g; 上一个修改位置
g, 下一个修改位置
ctrl + o 上一个跳转位置
ctrl + i 下一个跳转位置
窗口移动
ctrl + w, h 左边的窗口
ctrl + w, j 下边的窗口
ctrl + w, k 上边的窗口
ctrl + w, l 右边的窗口
ctrl + w, w 切换窗口
:bp 上一个标签
:bn 下一个标签
剪切/粘贴
d 剪切
y 复制
p 粘贴
P 粘贴到上一行
"_d 删除(不放置到剪切板)
"0p 粘贴(忽略剪切的内容)
折叠
zc 折叠代码块
zo 展开代码块
za 切换折叠
zR 展开所有
zM 折叠所有
常用功能
gu 小写转换
gU 大写转换
书签
m{a-zA-Z} 保存书签
小写的是文件书签,可以用(a-z)中的任何字母标记。
大写的是全局书签,用大写的(A-Z)中任意字母标记。
{a-zA-Z} 跳转到某个书签。 如果是全局书签,则会开启被书签标记的文件跳转至标记的行
0 跳转入现在编辑的文件中上次退出的位置 (go to last exit in file)
`` 跳转如最后一次跳转的位置
跳转至最后一次编辑的位置
g`{mark} 跳转到书签
:delm {marks} 删除一个书签
:delm! 删除全部书签
:marks 显示系统全部书签
插件
easy-motion
<LEADER> <LEADER> s 进入跳转到字符模式
<LEADER> <LEADER> j/k 进入跳转到行模式
<LEADER> <LEADER> h/l 进入跳转到列模式
至标记的行
`0 跳转入现在编辑的文件中上次退出的位置 (go to last exit in file)
`` 跳转如最后一次跳转的位置
```跳转至最后一次编辑的位置
g`{mark} 跳转到书签
:delm {marks} 删除一个书签
:delm! 删除全部书签
:marks 显示系统全部书签
插件
easy-motion
<LEADER> <LEADER> s 进入跳转到字符模式
<LEADER> <LEADER> j/k 进入跳转到行模式
<LEADER> <LEADER> h/l 进入跳转到列模式
```json
{
// 关闭本地历史记录功能
"workbench.localHistory.enabled": false,
// LICENSE文件设置
"files.readonlyInclude": {
"LICENSE": true,
},
"files.associations": {
"LICENSE": "plaintext"
},
// 自动保存
"files.autoSave": "afterDelay",
// 自动格式化的设置
"editor.formatOnPaste": true,
"editor.formatOnSave": true,
// 字体设置
"editor.fontSize": 18,
"editor.fontFamily": "JetBrains Mono, 'Courier New', monospace",
"editor.fontLigatures": true,
// 主题设置
"workbench.colorTheme": "One Dark Pro",
// 启用自动猜测编码
"files.autoGuessEncoding": true,
// 平滑滚动和光标闪烁的设置
"editor.smoothScrolling": true,
"workbench.list.smoothScrolling": true,
"editor.cursorBlinking": "smooth",
"editor.cursorSmoothCaretAnimation": "on",
// 自动换行功能(但还是同一行, 视觉上效果)
"editor.wordWrap": "on",
// 按下回车键时如何接受代码建议的行为
"editor.acceptSuggestionOnEnter": "smart",
// 建议列表中如何预先选择建议
"editor.suggestSelection": "recentlyUsed",
// 启用自定义对话框样式
"window.dialogStyle": "custom",
// 控制着是否在编辑器的概览标尺中显示断点标记
"debug.showBreakpointsInOverviewRuler": true,
// 显示匹配的括号对
"editor.guides.bracketPairs": "active",
// 新建文件时的默认语言类型
"files.defaultLanguage": "${activeEditorLanguage}",
// 禁用推荐安装扩展的功能
"extensions.ignoreRecommendations": true,
// 控制编辑器在键入一行后是否自动格式化该行。
"editor.formatOnType": true,
// 排除指定文件或文件夹的配置
"files.exclude": {
".vscode": true
},
// 设置行号的显示格式
"editor.lineNumbers": "relative",
// 设置菜单栏的可见性
"window.menuBarVisibility": "compact",
// 设置活动栏(Activity Bar)的位置
"workbench.activityBar.location": "bottom",
// 禁止在资源管理器中删除文件时显示确认提示
"explorer.confirmDelete": false,
// 关闭欢迎页
"workbench.startupEditor": "none",
// Vim插件设置
"vim.easymotion": true,
"vim.incsearch": true,
"vim.useSystemClipboard": true,
"vim.useCtrlKeys": true,
"vim.hlsearch": true,
"vim.insertModeKeyBindings": [
{
"before": [
"j",
"k"
],
"after": [
"<Esc>"
]
}
],
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": [
"<leader>",
"d"
],
"after": [
"d",
"d"
]
},
{
"before": [
"<C-n>"
],
"commands": [
":nohl"
]
},
{
"before": [
"K"
],
"commands": [
"lineBreakInsert"
],
"silent": true
}
],
"vim.leader": "<space>",
"vim.handleKeys": {
"<C-a>": false,
"<C-f>": false,
"<C-p>": false,
"<C-j>": false
},
// "// To improve performance",
"extensions.experimental.affinity": {
"vscodevim.vim": 1
},
}
待定加入配置中
json
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": [";"],
"after": ["$","a",";"]
}