Asigne comandos vim a funciones en tiempo de compilación

Asigne comandos vim a funciones en tiempo de compilación

Vim tiene la noción decaracterísticas, es decir, subconjuntos de funcionalidades que pueden o no ser compatibles con una instalación real, según indicadores en tiempo de compilación. La presencia de una característica se puede verificar con la has()función y todas las características posibles se pueden enumerar con el feature-listcomando.

Quiero que mi script vim sea más sólido al verificar las funciones antes de usarlas. Mi problema es que no está documentado explícitamente qué comando depende de qué característica.

Ejemplo específico: algunas distribuciones de Linux se envían vim.tinyde forma predeterminada, que es una versión de vim. Si inicio vim.tiny, .vimrcescupe muchos mensajes de error. Por ejemplo, el letcomando no está disponible, pero no es obvio qué característica proporciona este comando. ¿Cómo podría determinarlo de manera confiable? O si no es posible, ¿cómo puedo hacer que mi inicio de vim se degrade correctamente vim.tiny?

Respuesta1

Dirigirse a un complemento de Vim paravim-pequeñoes difícil, ya que consiste en unmuyconjunto de funciones limitado. Está pensado como un reemplazo eficiente devi, admitiendo solo algunas asignaciones, nada más.

Dicho esto, es posible detectar y afirmar ciertas capacidades usando has()y exists(). Los errores :letpodrían evitarse ajustando :if 1, pero como dije, es mejor apuntar a un Vim con funciones "normales" y simplemente agregar comprobaciones de disponibilidad de cosas más nuevas (comoencubrir, deshacer persistente, introducido en Vim 7.3) y correcciones de errores esenciales (pero solo si las necesita).

información relacionada