这个是我的草稿本记录一下防止丢失,以后有时间进行整理
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
- 可视模式 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},
}
待定加入配置中
"vim.normalModeKeyBindingsNonRecursive": [{"before": [";"],"after": ["$","a",";"]}