Vim删除父括号并重新插入子括号
我试着从这里开始:Vim删除父括号并重新插入子括号,vim,Vim,我试着从这里开始: const f = function() { if (exists) { // delete this const a = 'apple' } } 致: 删除和重新删除中间的所有内容的最快方法是什么?假设您的光标位于包含常量a的行上的某个位置 ?{^M%dd^Odd==(其中^M是按回车键,^O是按Ctrl+O键) 细分如下: ?{^M-向后/向上搜索开口大括号 %-跳转到相应的大括号(右大括号) dd-删除当前行 ^O-跳转到上一个位置(
const f = function() {
if (exists) { // delete this
const a = 'apple'
}
}
致:
删除和重新删除中间的所有内容的最快方法是什么?假设您的光标位于包含常量a的行上的某个位置
?{^M%dd^Odd==
(其中^M
是按回车键,^O
是按Ctrl+O键)
细分如下:?{^M
-向后/向上搜索开口大括号%
-跳转到相应的大括号(右大括号)dd
-删除当前行^O
-跳转到上一个位置(左大括号)dd
-删除该行==
-缩进当前行
你不需要一个特殊的宏或函数或任何东西来完成这项任务,因为vim为你提供了所有强大的文本操作工具来完成这项任务。如果你发现自己经常这样做,那么如果你愿意,你可以将它映射到一个键组合
上面的方法只适用于大括号内的单行,但下面的方法适用于多行(同样假设您位于大括号内的某一行)
假设您的光标位于包含常量a的行上的某个位置
?{^M%dd^Odd==
(其中^M
是按回车键,^O
是按Ctrl+O键)
细分如下:
?{^M
-向后/向上搜索开口大括号
%
-跳转到相应的大括号(右大括号)
dd
-删除当前行
^O
-跳转到上一个位置(左大括号)
dd
-删除该行
==
-缩进当前行
你不需要一个特殊的宏或函数或任何东西来完成这项任务,因为vim为你提供了所有强大的文本操作工具来完成这项任务。如果你发现自己经常这样做,那么如果你愿意,你可以将它映射到一个键组合
上面的方法只适用于大括号内的单行,但下面的方法适用于多行(同样假设您位于大括号内的某一行)
假设光标位于大括号内;任意数量的行和嵌套运算符;“else”-分支不受支持:
[{"_dd<]}']"_dd
[{”\u dd假设光标位于大括号内;不支持任何行数和嵌套运算符;“else”-分支:
[{"_dd<]}']"_dd
[{”\u dd所有答案都很好,而且,正如前面所指出的,您可以随时将这些键映射到快捷方式。如果您想尝试更通用的解决方案,可以查看我的“deleft”插件:所有答案都很好,而且,正如前面指出的,您总是可以将这些键映射到快捷方式。如果您想尝试更通用的解决方案,您可以检查我的“deleft”插件:如果
块有嵌套的{…},您的块可以吗
和空行?你的if
也可以有一个else块吗?如果答案是肯定的,你想用它们做什么?可以有空行和嵌套的{…}
。如果else块使问题复杂化,我们现在可以忽略它。你的if
块可以嵌套{…}
和空行?你的if
也可以有一个else块吗?如果答案是肯定的,你想用它们做什么?可以有空行和嵌套的{…}
。如果else块使问题复杂化,我们现在可以忽略它。