vim-02-掌握行相关的命令
# 任务点
# 移动到行首:
0
: 将光标移动到行首,不论第一个字符是不是blank
字符,可以理解成是第 0 列^ / _
: 常用,将光标移动到行首,到本行第一个不是blank
字符的位置
注:blank
字符有 空格、换行、tab
、回车等等
# 移动到行尾:
$
: 将光标移动到行尾,不论最后一个字符是不是blank
字符g_
: 常用,将光标移动到行尾,到本行最后一个不是blank
字符的位置
不过 vscode
设置剪裁尾随空格后,$
和 g_
的效果就一样了
// 启用后,将在保存文件时剪裁尾随空格。
"files.trimTrailingWhitespace": true,
2
# 移动到行首/尾改键
如果感觉以上命令按键不舒服,可以用 shift + h
(也就是 H
) 代替 ^
, 用 shift + l
(也就是 L
) 代替 g_
"vim.normalModeKeyBindings": [
{
"before": ["H"],
"after": ["^"]
},
{
"before": ["L"],
"after": ["g", "_"]
}
]
2
3
4
5
6
7
8
9
10
# 在行首插入
使用大写的 I
来在行首插入,插入位置为本行首第一个不是 blank
字符的位置
巧记:小写 i
在光标所处字符前面插入,大写 I
在光标所处行前面插入
# 在行尾插入
使用大写的 A
来在行尾插入,插入位置为本行尾(包括 blank
字符)
如果行尾是 blank
字符,可以使用 L
先移动到行尾,再使用 i
插入,但这种情况几乎没有,而且上面我们设置了保存就剪裁尾随空格,所以可以不用考虑
巧记:小写 a
在光标所处字符后面插入,大写 I
在光标所处行后面插入
# 在行前插入
使用大写的 O
来在行前插入
# 在行后插入
使用小写的 o
来在行后插入
# 复制当前行
yy
, 与 cmd + c
是共存的,相当于各保存到各自的容器中,yy
是保存到 vim
到寄存器里面,cmd + c
是保存到系统的剪切板里面
# 删除当前行
dd
, 删除的行也是保存到寄存器里
# 粘贴
p
yy
或 dd
后,使用 p
可以粘贴复制/删除的行
tips: 在 normal
模式也可以正常使用 cmd + c/v
# 社群讨论
视频 4:31 秒解说是小写 a,实际是大写 A 到行尾
win 系统当在 insert 模式下使用 ctrl + c 的时候(复制)会进入到 normal 模式怎么办?
在 settings.json 里面加一下配置
"vim.handleKeys": {
"<C-c>": false
},
2
3
这个字段的说明
Delegate configured keys to be handled by VS Code instead of by the VSCodeVim extension. Any key in keybindings section of the package.json that has a vim.use<C-...> in the when argument can be delegated back to VS Code by setting "<C-...>": false. Example: to use ctrl+f for find (native VS Code behaviour): "vim.handleKeys": { "<C-f>": false }.
使用 vim 后 vscode 的 ctrl F 失效了 大家怎么解决的
"vim.handleKeys": {
"<C-f>": false
},
2
3
试试这个,举一反三
mac 的 cmd+c 也会从 insert 模式到 normal 模式,vim.handleKeys 支持配置 cmd 么,我自己试了试感觉没生效
// Override VSCode's copy command with our own copy command, which works better with VSCodeVim. Turn this off if copying is not working.
"vim.overrideCopy": false,
2
还以为是废掉复制功能,试了试能解决问题,并且复制功能是保留的。
目前看没问题,不知道后续有问题没有
vscode 文件切换的快捷键是怎么设置的?
ctrl+tab 上一个文件,command + p 搜文件,文件跳转的话 可以使用 vim 的 ctrl+o/i 回到上一个光标位置(这个非常好用)
vscode 自带的 cmd + shift + [ 切换到左侧文件,] 切换到右侧文件
workbench.action.previousEditor cmd + h, workbench.action.nextEditor cmd + l
想这样设 但是怕之后会和其他现在还不知道但常用的键位冲突,参见这里:https://zhuanlan.zhihu.com/p/198990464
怎么从 visual 状态退出来啊,一用鼠标选择就会进入 visual 模式
esc 或者 ctrl+[
第四天学完 就不需要用鼠标来选择了,会告诉你如何用命令来做选择
基本上 1 星期之后 就可以完全在工作中用起来了,所以第一周大家的任务就是练熟悉,不着急在工作中使用
可以把 dd 理解为剪切操作吗?删除的同时会复制内容
我感觉就是 vim 的剪切 [旺柴]
vim 有没有像鼠标那种选中一个小代码块的?
没记错的话 应该是第五天的内容,可视化模式
可视化其实不是太推荐使用,这个东西又非常符合大家之前使用的方式,所以还是晚点学 比较好
发现一个问题:当一行文本换行显示后,$ 是移动到换行后的行尾,g_ 是移动到当前行的行尾,所以改键还是把 L
改到 $
好一点
- 01
- 搭配 Jenkins 实现自动化打包微前端多个项目09-15
- 02
- 自动化打包微前端多个项目09-15
- 03
- el-upload 直传阿里 oss 并且显示自带进度条和视频回显封面图06-05