Open gnosis23 opened 2 years ago
今天讲了行相关技巧,比如:
0
行首$
行尾^
非空行首g _
非空行尾yy
复制行p / P
粘贴行dd
删除行快捷键有时候不是很顺手,vim也支持修改快捷键
{
"vim.normalModeKeyBindings": [
{
"before": ["H"],
"after": ["^"]
},
{
"before": ["L"],
"after": ["g", "_"]
}
],
}
研究了下vimrc里面怎么改快捷键
nnoremap H ^
nnoremap L g_
nnoremap
意思是在 normal 模式下自定义按键
今天继续 vim 练习
vim语法:操作(operator)+ 移动区域,比如 d+w
,d+0
,d+g+_
常用操作:
常用移动区域:
例举一些平时会用到的常用组合:
{
"vim.operatorPendingModeKeyBindings": [
{
"before": ["H"],
"after": ["^"]
},
{
"before": ["L"],
"after": ["g", "_"]
}
],
}
onoremap H ^
onoremap L g_
onoremap
表示在输入完操作后等待时间按键绑定
今天是一些针对单词的操作:
S键挺方便,平时都是dd+O来做 C-r也没用过,前两天还碰到了u直接把所有输入都撤销的问题,正好可以解决问题
C
: ==c$,删掉当前位置到行尾的字符,并进入insertA
: ==$a,在当前行尾insert使用 f{char}
搜索字符,;
重复搜索下一个,,
返回上一个
比如下面的文本,使用 f+
搜索 + 号,;
搜索下一个
var str = "hello"+"world"+"!"+"abc";
类似的还要 t{char}
/pattern
,n
和 N
?pattern
,n
和 N
:s/target/replacement
, &
和 u
qx{changes}q
: @x
和 u
使用 '.' 重复上一次操作
今天的主题是可视化模式,有几种进入方法:
在可视化模式里可以按 o 和 O 来移动到开始和结束
在可视化模式里可以按 A 和 I 来批量写入文本
今天的主题是文本对象 text objects,这是一系列用于可视化模式或操作后的命令,使用 :h text-objects
来查询文档。
文本对象由 a 或者 i 开头,后面跟一个范围,比如:
合并起来的操作:
今天的主题是文件快速跳转,几个实用的快捷键:
<C-f>
<C-b>
今天的主题是快速移动
f/F{char}
移动到下一个字符,;
下一个,,
上一个t/T{char}
移动到下一个字符前tips:移动用f,编辑用t
/{pattern}
搜索下个文本,n下一个,N上一个?{pattern}
搜索上个文本tips: 操作后可以接搜索
*
将光标放到单词上,就能搜索下一个可以当成函数跳转
今天学了下 vim-easymotion 、vim-sneak 插件
<leader><leader>e
<leader><leader>w
单词<leader><leader>b
let mapleader=","
<C-n>
或者 <C-p>
上下切换,l跳转<C-o>
上一个跳转位置<C-i>
下一个跳转位置今天的主題是vim-surround:
cs<existing><desired>
ys<motion><desired>
ds<existing>
S<existing>
ysiwt
: 用标签包裹,比如spanset surround
今天的主题是替换:
:{range}s/{pattern}/{string}/{flags}
range
: $到尾部, %全文flag
: g, cgb
默认命令:
⌘⇧E
,可以改成 <C-;>
jk
space
⌘下
当前的 .ideavim 配置有:
第一天
学习了 vim 常规按键(jkhlia)和基础知识
学了几个 vim 的实用技巧:
C-[
退出 insert 模式