我使用this script作为常规缩进文件。它工作得很好,但有一个例外:它不会缩进内置映射。例如,我想看到这个:
def map = [
key1: 'value1',
key2: 'value2'
]
但我看到的是:
def map = [
key1: 'value1',
key2: 'value2'
]
如何调整脚本以便正确识别地图?除了[
和]
之外,我尝试更改第105,125和132行以包含{
和}
,但这并没有按预期工作。
答案 0 :(得分:2)
您发布的Groovy Indent文件只是C缩进文件的补充。 所以你不会在那里找到开口支架的缩进。
而不是修改案例,你必须自己编写:
if getline(prev) =~# '[' && getline(prev) !~# ']' && getline(v:lnum) !~# ']' && getline(v:lnum) !~# ':$'
let theIndent = indent(prev) + &sw
endif
如果插入第73行,这应该或多或少。但你可能需要做一些微调。在我的经验中,编写正确的工作缩进是语言插件中最难的部分。因此,如果您先阅读教程,就不会受到伤害。
<强>更新强>
最后,
的问题来自于此块:
" find start of previous line, in case it was a continuation line
let lnum = SkipGroovyBlanksAndComments(v:lnum - 1)
let prev = lnum
while prev > 1
let next_prev = SkipGroovyBlanksAndComments(prev - 1)
if getline(next_prev) !~ ',\s*$' " <---------lines ending with , are skipped
break
endif
let prev = next_prev
endwhile
现在我不知道groovy足以确保它没有副作用,但您可以修改上面的第一个解决方案以使用SkipGroovyBlanksAndComments(v:lnum -1)
代替prev
答案 1 :(得分:0)
没有任何新的文字对象,请看here 假设您在代码的第一行,您可以这样做:
from google.cloud import storage
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
def downloadepoch_objects():
request = service.objects().list(
bucket=bucket_name,
versions=True
)
response = request.execute()
for item in response['items']:
if item['metadata']['epoch'] == restore_epoch:
print(item['bucket'])
print(item['name'])
print(item['metadata']['epoch'])
print(item['updated'])
blob = source_bucket.blob(item['name'])
blob.download_to_filename(
'/Users/admin/git/data-processing/{}'.format(item))
downloadepoch_objects()
在您的$>i[
$ ......... jump to the end of the line
> ......... indent
i[ ........ inner [
中放置textobjvim_wellle_viml,您可以执行以下操作:
~/.vimrc
它标准为:>in[