是否可以在Vim中基于已有的缩进标记块?类似于v{ .
对于使用空格敏感语法的编程语言(如Haskell和Python),它将非常有用。
例如,标记此函数中第一个let和return之间的所有内容:
checkArg (com:arg) s d ns
| com == "add-source " = do
let s' = v ++ s
lift $ saveLinks s'
return (s', d)
| com == "remove-source" = do
let s' = filter (not . hasWord str) s
lift $ saveLinks s'
return (s', d)
发布于 2011-09-11 21:20:42
这个插件根据缩进级别定义了一个新的文本对象。这在Python等语言中非常有用,在Python中,语法通过缩进来定义作用域。例如,使用此插件中定义的对象,可以快速选择整个if结构。
这样,您就可以使用标准的Vim text object命令来选择、删除、更改等块,使用"i“和"a”来表示您所在的块:"vii“、"dii”等。它与语言无关,但在Python等空格结构的语言中特别有用。
发布于 2012-07-18 07:18:33
链接到Jeet的插件看起来很整洁,但这里有一个简单的替代方案。
如果你有set foldmethod=indent
...
可以使用可视块选择。
所以从第3行开始,只需输入V]z
即可。
:help fold-commands
在折叠上移动
[z
移动到当前打开的折叠的开始处。如果已经在开始处,请移动到包含它的文件夹的开始处。如果没有包含文件夹,该命令将失败。使用计数时,会重复命令count多次。
]z
移动到当前打开的折叠的末尾。如果已经在末尾,请移动到包含它的折叠的末尾。如果没有包含文件夹,该命令将失败。使用计数时,会重复命令count多次。
zj
向下移动到下一个折叠的开始处。一个闭合的折叠被算作一个折叠。使用计数时,会重复命令count多次。此命令可在运算符之后使用。
zk
向上移动到上一个折叠的末尾。一个闭合的折叠被算作一个折叠。使用计数时,会重复命令count多次。此命令可在运算符之后使用。
https://stackoverflow.com/questions/7377771
复制相似问题