dobla automáticamente las vistas en línea de Oracle en Vim usando.vimrc
plsql folding (2)
El plegado basado en la sintaxis se activa al establecer foldmethod
en la syntax
:
" for all windows
set foldmethod=syntax
" for the current window
setlocal foldmethod=syntax
El plegado debe especificarse dentro de la definición de sintaxis, que se realiza proporcionando el argumento fold
a regiones que deberían aumentar el nivel de plegado. Para citar la documentación:
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.
Por lo tanto, deberá ir a los archivos de sintaxis para cualquier tipo de archivo que le interese, y agregar el argumento de fold
a las regiones apropiadas, o agregar potencialmente sus propias regiones. En su caso, parece que es bastante similar a la sintaxis de C / C ++ fold-by-braces, excepto con paréntesis.
Los archivos de sintaxis predeterminados generalmente se guardan en /usr/share/vim/vimXX/syntax
en Linux (y presumiblemente <vim-directory>/vimXX/syntax
en windows?) Donde XX es el número de versión sin el punto (por ejemplo, 72). Estos pueden ser anulados en todo el sistema por archivos en /usr/share/vim/vimfiles/syntax
o por usuario por archivos en ~/.vim/syntax
.
He visto comandos mágicos de Vim antes de que pudieras agregar a tu .vimrc para crear pliegues al abrir un tipo de archivo en particular. Recuerdo tener ese código que crearía los pliegues, al abrir el archivo, en cada método y clase de Ruby. Entonces, con un comando, podría colapsar todos los pliegues del método. ¿Alguien sabe cómo hacer esto con vistas en línea en PL / SQL? Digamos que tengo el siguiente 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
Me gustaría crear pliegues cuando abro esto en Vim para poder ir a un FROM (
línea, presionar zc
en el modo de comando, y hacer que la vista en línea comenzando en esa línea se contraiga. Sería bueno colapsar todo se pliega con un comando, también.
Sugeriría simplemente evitar las consultas SQL multinivel. Siempre puedes crear una vista, una tabla temporal. Sé que eso contradice la teoría de Tom Kyte, pero es la práctica PL / SQL de 10 años. Divida el programa complejo en varias partes más simples. Divida las consultas SQL complejas en consultas simples.
En su ejemplo, la consulta es bastante fácil de entender, el plegado solo molestaría.
Por el contrario, para los procedimientos de PL / SQL anidados, el plegado funciona de manera bastante útil. Hay un script para VIM en vim.org.