我正在尝试正确使用vim - 为了帮助我,我将箭头键映射到"",以便我被迫使用{hjlk}来移动.
当我想用空格包围一个字符时,这会导致我出现问题,例如:
"2 + 3"格式更好"2 + 3"
以前我会将光标放在+上并键入:
I [空间] [右箭头] [空间] [Esc]键
这是5台印刷机.
要在没有箭头的情况下执行此操作,我似乎需要将光标放在+上并继续:
I [空间] Esc键LLI [空格] [Esc]键
那是8台印刷机.
我可以将"li"转换为"a",将其减少到7个印刷机:
I [空间] [Esc键] LA [空格] [Esc]键
如果没有将其写入宏,有没有更好的方法呢?是否有一些神奇的vim命令允许我在少于5次按下的情况下执行此操作 - 以及某种方式来概括它以便我可以对整个单词或符号执行此操作,例如,如果我想将3 == 4转换为3 == 4?
当我读取未知变量时,例如:req.body或者JSON.parse()知道它以某种方式格式化,例如:
type MyDataType = {
key1: string,
key2: Array<SomeOtherComplexDataType>
};
Run Code Online (Sandbox Code Playgroud)
我该如何转换它,以便以下工作:
function fn(x: MyDataType) {}
function (req, res) {
res.send(
fn(req.body)
);
}
Run Code Online (Sandbox Code Playgroud)
它总是失败告诉我:
req.body is mixed. This type is incompatible with object type MyDataType.
我认为这与动态类型测试有关,但要弄清楚如何...
为什么
"$1 $2 $3".match(/\$(\d+)/g)
Run Code Online (Sandbox Code Playgroud)
返回
["$1", "$2", "$2"]
Run Code Online (Sandbox Code Playgroud)
不是
["1", "2", "3"]
Run Code Online (Sandbox Code Playgroud)
?
如果我删除全局标志,它将给我匹配和捕获的匹配:
["$1", "1"]
Run Code Online (Sandbox Code Playgroud)
但只有一个.
有没有办法做一个reg ex捕获不给我这个?
即使在$周围放置一个非捕获括号也会给出相同的结果,例如:
"$1 $2 $3".match(/(?:\$)(\d+)/g)
Run Code Online (Sandbox Code Playgroud)