oracle - 使用 .vimrc 在 Vim 中自动折叠 Oracle 内联 View

标签 oracle plsql vim folding

我之前见过神奇的 Vim 命令,你可以添加到 .vimrc 以在打开特定类型的文件时创建折叠。我记得有这样的代码可以在打开文件时在每个 Ruby 方法和类中创建折叠。然后,通过一个命令,我可以折叠所有这些方法折叠。有谁知道如何使用 PL/SQL 中的内联 View 来做到这一点?假设我有以下 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

我想在 Vim 中打开它时创建折叠,以便我可以转到 FROM (行,打 zc在命令模式下,并折叠从该行开始的内联 View 。用一个命令折叠所有折叠也很好。

最佳答案

通过设置 foldmethod 激活基于语法的折叠至 syntax :

" for all windows
set foldmethod=syntax
" for the current window
setlocal foldmethod=syntax

然后必须在语法定义中指定折叠,这是通过提供 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.

所以你必须进入你关心的任何文件类型的语法文件,并添加 fold参数到适当的区域,或者可能添加您自己的区域。在您的情况下,它看起来与 C/C++ 语法的 fold-by-braces 非常相似,除了括号。

默认的语法文件一般保存在 /usr/share/vim/vimXX/syntax在 Linux 上(大概是 <vim-directory>\vimXX\syntax 在 Windows 上?),其中 XX 是不带句点的版本号(例如 72)。这些可能会在系统范围内被 /usr/share/vim/vimfiles/syntax 中的文件覆盖或按用户按 ~/.vim/syntax 中的文件.

关于oracle - 使用 .vimrc 在 Vim 中自动折叠 Oracle 内联 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3119743/

相关文章:

Vim - 用制表符缩进多行

user-interface - Vim 日晒配色方案在 VS Code 集成终端中无法正确显示

java - JPA 2.1 - 无法调用 Oracle 函数

plsql - 从 pl/sql 检查环境变量

oracle - 显示列和返回列 LOV

sql - 如何在循环中使用 select in continue when 语句?

C# + Pl/SQL 存储过程中没有参数的问题

ruby-on-rails - 使用ctrl-n自动补全单词时,Vim随机出现段错误

java - 我如何知道 Oracle 诊断包和 Oracle 调优包是否随 Oracle 安装一起安装?

sql - 如何在外部表中设置参数?