基于Vim中的缩进级别标记块

Dan*_*l O 8 python vim whitespace haskell macvim

是否可以根据已经存在的缩进在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)
Run Code Online (Sandbox Code Playgroud)

http://en.wikipedia.org/wiki/Off-side_rule

Jee*_*eet 7

我使用缩进对象插件:

此插件基于缩进级别定义新的文本对象.这在Python等语言中非常有用,其中语法根据缩进来定义范围.例如,使用此插件中定义的对象,可以快速选择整个if结构.

这样,您可以使用标准的Vim文本对象命令选择,删除,更改等块,使用"i"和"a"来指代您所在的块:"vii","dii"等.它与语言无关,但在Python等空白结构语言中特别有用/相关.