有没有办法阻止vim自动更新折叠?我真的很喜欢vim的折叠,我更喜欢在语法模式下使用它,以便在我输入时创建折叠.但是,例如当我编写C++并编写一个括号{它会自动关闭所有后续折叠,然后当我再次使用}关闭括号时,vim会自动扩展所有后续折叠,这意味着我必须重新折叠所有内容.
另一个相关的问题,如果我在不同的缓冲区打开相同的文档,说我已经运行":split",然后写一个开括号{将所有折叠嵌套在我打开括号的折叠下的缓冲区中,并关闭它会解开折叠,但也会关闭所有折叠.如果我使用"." 或者" - >"访问成员函数/变量,它将缓冲区中的所有折叠重置为当前折叠级别,无论我自己打开/关闭哪个折叠.
当我在两个缓冲区中打开相同的文档时,这有点令人沮丧,因此我可以在写另一个函数时读取一个函数的内容,因为我经常不得不切换缓冲区并重新打开我的折叠.
在我的.vimrc中我有
set foldmethod=syntax
Run Code Online (Sandbox Code Playgroud)
这就是它.对于自动完成,我使用clang-complete和supertab:
let g:SuperTabDefaultCompletionType = "<c-x><c-u><c-p>"
Run Code Online (Sandbox Code Playgroud)
我认为这就是影响这一点的一切.
编辑:
我在VBA中进行编码的最大问题之一是完全缺乏名称空间,这使得在同一个名称的每个函数都位于全局命名空间中时,很难确保诸如范围界定和选择正确的函数之类的事情。我知道您可以在函数调用之前添加模块名称,但在我看来,也可以通过将所有模块替换为预先声明的类来实现。名称空间看起来像这样:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "MyNamespace"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'@Folder("Project.Namespace")
Option Explicit
Public Function Foo() As String
Foo = "bar"
End Function
' Opionally make sure users do not use this as a class
Private Sub Class_Initialize()
If Not Me Is MyNamespace Then
Err.Raise 512, _
Source:="MyNamespace.Initialize", _
Description:="Cannot create an instance of a namespace."
End If
End Sub …Run Code Online (Sandbox Code Playgroud)