Vim
vim 基础
-
进入
insert模式的两种方式,a光标在后,i光变在前 -
v进入选中模式 -
V进入行选中模式 -
ctrl + [esc退出insert模式 (改成jj) -
h左、j下、k上、l右 -
回到行首
0回到最前面^回到第一个不是 blank 字符的位置 (改为H)
-
回到行尾
$回到最后面g_回到最后一个不是 blank 字符的位置 (改为L)
-
gg跳到第一行 -
G跳到最后一行 -
J将两行合并成一行 -
插入
A在行尾输入I在行首插入o下一行插入O上一行插入s删除当前的字符并进入insert模式S删除当前行并进入insert模式,与cc效果相同
-
yy复制当前行 -
p粘贴yy复制的行 -
dd删除当前行 -
操作符
d删除c删除并进入insert模式C删除当前行光标后的所有字符并进入insert模式y复制
-
基于单词/字串的移动
w向右移动到单词的开头e向右移动到单词的结尾b向左移动到单词的开头ge向左移动到单词的结尾
-
当前行跳转
f{char}本行内跳到下个 char 位置F{char}本行内跳到上个 char 位置;重复上一次字符查找操作,反向查找上次的查找命令
-
u撤销 -
Ctrl + r重做,撤销的反向操作 -
iinneraaround 例子:iw或aw选中单词i(或ib,a(或ab选中()内的内容,a包含()i{或ibi"i'i<i[ittag 标签内的
-
折叠代码
zc折叠zo展开
-
x删除一个字符 -
r替换字符,R不断替换当前字符 -
/搜索,例如:/log搜索 logn下一个匹配结果N上一个匹配结果
-
*,#进行当前单词的向后与向前匹配 -
%匹配括号移动,包括()[]{} -
:set hls设置搜索高亮,:set nohls关闭搜索高亮 -
gu大写转小写,gU小写转大写
Vim for VS Code
ctrl + shift + e或ctrl + 0切换资源管理器与编辑区ctrl + 1切换到编辑区光标处于编辑区space打开文件光标仍在资源管理器- 资源管理器
- 移动光标
jk - 折叠文件夹
h - 展开文件夹
enter或l - 新建文件
a
- 移动光标
- 跳转定义
f12或者gd跳转到文件ctrl + o返回
- 查看函数的描述
gh gt跳到下一个标签页,gT跳到上一个标签页Ctrl + \分屏gb选中多个相同的单词Ctrl + F4关闭 Tab 页Alt + F4关闭 VS Code
Vim 插件
-
vim-surround
y s [motion] [desired]Add desired surround around text defined by [motion]d s [existing]Delete existing surroundc s [existing] [desired]Change existing surround to desiredS [desired]Surround when in visual modes (surrounds full selection)
示例
{
embeddedLanguageFormatting: "off"
}
// v操作选中embeddedLanguageFormatting,S 加上"
Vim 配置文件
文件位置 ~/.vimrc
文件中不能包含注释
call plug#begin('~/.vim/plugged')
Plug 'vim-airline/vim-airline'
call plug#end()
# 设置行号
set number
# 按下 Tab 键时,Vim 显示的空格数
set tabstop=2
# 映射延迟时间
set timeoutlen=300
# 语法高亮
syntax on
# 搜索高亮
set hls
# 将系统剪切板与匿名寄存器绑定,不同操作系统不一样
set clipboard=unnamed
# 键位映射
inoremap jj <esc>
nnoremap H ^
nnoremap L g_