Cuando uso vi para abrir un archivo * .c, me gustaría que el cursor se mueva a la cadena "principal" automáticamente . Si no hay "main", quiero que el cursor pase a "void" sin un mensaje de error.Vim: mover el cursor a una cadena en un archivo fuente sin mensajes de error si no existe
En mi .vimrc
he puesto
:autocmd BufRead *.c 1;/main
pero esto no se puede poner en práctica todos mis requisitos. Específicamente, si no existe un "principal" en algún archivo fuente C abierto, vi pregunta "Error, no se puede encontrar el principal ...", que es el comportamiento que deseo eliminar.
También he intentado agregar <silent>
o a esa línea autocmd
, pero no hace lo que quiero. ¿Alguien puede ayudarme? Gracias.
Gracias. ¿Podría decirme cómo implementar el control de estructura en vimrc, como la estructura If-else? Por ejemplo, si hay "main", el cursor va a "main" y si no hay "main", el cursor va a "void". – fortunetell
Si la estructura de if/else no es complicada, solo eche un vistazo a ': help if'. Para buscar, puede usar la función 'búsqueda' que devuelve el número de línea donde se ha encontrado la ocurrencia o cero (sin generar un error). Por ejemplo ': if search ('\') == 0 | búsqueda de llamadas ('\ ') | endif' Este comando comprueba si se puede encontrar la palabra "principal" comenzando desde la posición actual del cursor, y si no (la búsqueda devuelve cero) llamando a la función de búsqueda para "void" –
Entonces podrías transformar tu autocmd a algo así: ': autocmd BufReadPost * .c: ¡silencioso! 1 | if search ('\') == 0 | búsqueda de llamadas ('\ ') | endif' Tenga en cuenta que varias declaraciones en una línea deben separarse con '|'. Además, para llamar a una función fuera del comando de Vim ('if',' while', 'let', etc.) es necesario usar' call'. –