he visto soluciones parciales a través de Internet, pero ninguno que realmente me satisfizo: ¿Qué tengo que poner en mi .vimrc (lo ideal es que no quiero a ninguna oportunidad sintaxis/*. vim) de manera que en todos los archivos .c/cpp/h que abro, obtengo el plegado automático de las secciones #ifdef ... #endif
?autoplegado #ifdef .. # endif en vim través .vimrc
Respuesta
Si el único tipo de plegado que se desea es #ifdef
las secciones, la forma más fácil es crear un archivo ~/.vim/after/ftplugin/c.vim
(es posible que tenga que hacer esto en cpp.vim
, no estoy seguro) con el siguiente contenido:
set foldmarker=#ifdef,#endif
set foldmethod=marker
Si realmente quiere poner en .vimrc
en lugar de utilizar la estructura ~/.vim/after/
, se puede hacer algo como esto:
autocmd FileType *.[ch]{,pp} call FoldPreprocessor()
function! FoldPreprocessor()
set foldmarker=#ifdef,#endif
set foldmethod=marker
endfunction
es posible que también desee considerar la U cantar:
set foldmarker=#if,#endif
Como que captura #if defined(...)
, #ifdef
, #ifndef
, #if 0
etc, así como #ifdef
.
Hacer esto con el plegado de sintaxis es más difícil, ya que tendrá que cambiar la especificación de sintaxis, ya que no es compatible con este estándar.
vim ya tiene un plegamiento sintaxis de C, pero no doble la #x. ¿Cómo agregar esto al plegado automático de la sintaxis C? – orezvani
El patrón '*. [Ch] {, pp}' no funciona para mí en un archivo 'cpp', tampoco lo hace' * .cpp'. Cuando uso simplemente '*' funciona. ¿Alguna idea de cuál es el problema? – oarfish
¿Sabe que puede navegar por los bloques condicionales del preprocesador con la clave %?
Además, [# y ] # Desplazarse hacia arriba/abajo.
Por lo que podría ir al inicio de un bloque condicional (tal vez con /^#
Introduzca), entonces
zf% -- fold to next conditional directive
v2]#zf -- fold to second next directive (e.g. #else... #endif)
zd
dejar caer el pliegue.
Tal vez se puede idear un pequeño script en torno a este concepto. No estoy muy seguro de si habrá interacción (adversa) con el plegado de la sintaxis regular, ya que no tengo el hábito de usar eso. Usualmente utilizo el doblado de sangrías con manipulación manual de pliegues como esta.
- 1. vim file specific .vimrc
- 2. Vim voldle colorschemes - vimrc
- 3. VIM establecer ctags en .vimrc
- 4. Cómo detectar vi (no vim) en .vimrc?
- 5. No vimrc, gvimrc y .vim en mac
- 6. Vim: cómo usar variables en vimrc?
- 7. Vim: utilice condicionalmente la función fugitive # statusline en vimrc
- 8. .vimrc action onclose
- 9. ¿Cómo puedo obtener Eclipse de código de índice en el interior #ifdef .... #endif
- 10. #ifdef en C#
- 11. ¿Cómo hago que emacs trate a #ifdef y #endif como '{' y '}'?
- 12. #ifdef y aclaraciones necesarias
- 13. ¿Cómo localizar el archivo vimrc utilizado por vim editor?
- 14. if {} en if: endif
- 15. Delphi {$ IFDEF CONSOLA} Problema
- 16. ¿Cómo habilitar el modo "Muy mágico" en vim con vimrc?
- 17. Configuración vim omnicompletion colores (Pmenu) en vimrc no funciona
- 18. Cómo comentar en los archivos de configuración de Vim: ".vimrc"?
- 19. Vim hace una pausa si echo en el archivo .vimrc
- 20. ¿Cómo ejecutar comandos Vim en un archivo, como .vimrc?
- 21. vimrc archivo de importación
- 22. Cómo agregar una condición 'o' en #ifdef
- 23. problema de análisis de cedet en #ifdef
- 24. Separa las ramas específicas #ifdef
- 25. Función para fuente .vimrc y .gvimrc
- 26. ¿Cómo puedo anular las rutas ~/.vim y ~/.vimrc (pero no otras) en vim?
- 27. Algunas preguntas sobre la configuración .vimrc y vim
- 28. .vimrc para el complemento vim de IntelliJ Idea
- 29. Esquema de colores condicional en .vimrc
- 30. Ignorar errores de "opción desconocida" en vimrc
Lo foldmethod está usando? Sintaxis plegable? –
Sí, la sintaxis de plegado (pero supongo que pude, que si esto facilita el plegado automático) – dcn