Sar*_*els 5 oracle vim plsql folding
之前我已经看过神奇的Vim命令,您可以添加到.vimrc中,以便在打开特定类型的文件时创建折叠.我记得有这样的代码,在打开文件时,会在每个Ruby方法和类中创建折叠.然后,使用一个命令,我可以折叠所有这些方法折叠.有没有人知道如何使用PL/SQL中的内联视图执行此操作?说我有以下SQL:
SELECT blah,
teh_max
FROM (
SELECT blah,
MAX(bar) AS teh_max
FROM (
SELECT blah,
bar
FROM foo
)
GROUP BY blah
)
ORDER BY blah
Run Code Online (Sandbox Code Playgroud)
我希望在Vim中打开它时可以创建折叠,这样我就可以进入一条FROM (
线,zc
在命令模式下点击,并从该行开始的内联视图被折叠.用一个命令折叠所有折叠也不错.
foldmethod
通过设置来激活基于语法的折叠syntax
:
" for all windows
set foldmethod=syntax
" for the current window
setlocal foldmethod=syntax
Run Code Online (Sandbox Code Playgroud)
然后必须在语法定义中指定折叠,这是通过向fold
应增加折叠级别的区域提供参数来完成的。引用文档:
The "fold" argument makes the fold level increase by one for this item.
Example:
:syn region myFold start="{" end="}" transparent fold
:syn sync fromstart
:set foldmethod=syntax
This will make each {} block form one fold.
Run Code Online (Sandbox Code Playgroud)
因此,您必须进入您关心的任何文件类型的语法文件,并将参数添加fold
到适当的区域,或者可能添加到您自己的区域中。在你的例子中,它看起来与 C/C++ 语法的大括号折叠非常相似,除了括号之外。
默认语法文件通常保存在/usr/share/vim/vimXX/syntax
Linux 上(大概也保存<vim-directory>\vimXX\syntax
在 Windows 上?),其中 XX 是不带句点的版本号(例如 72)。这些可能会被系统范围内的文件覆盖,/usr/share/vim/vimfiles/syntax
也可能会被每个用户覆盖~/.vim/syntax
。