2012-06-05 13 views
5

He sido un ávido usuario de Vim y recientemente comencé a interesarme en cómo funciona.¿Algún tutorial sobre cómo crear un editor de tipo Vim?

¿Alguien sabe si hay un tutorial que repasa los aspectos básicos de la conversión de un editor de texto normal para tener la capacidad Vi/m? El lenguaje de programación no importa; Soy un programador bastante experimentado.

he encontrado los siguientes recursos hasta el momento:

+4

Suena como su respuesta a su propia pregunta en su pregunta a mí. ;) – Almo

+0

@ Almo, =). Sí, pasé mucho tiempo tratando de encontrar implementaciones simples existentes. Con suerte, otras personas podrían llegar a mejores tutoriales que los míos. ;-) – sivabudh

Respuesta

1

Como un usuario experimentado Vi que sabrá que no son principalmente dos aspectos clave que lo hacen diferente a los demás (vis UAL) editores: - modos de entrada Esc y : las formas más comunes de cambiar entre ellos - mapa de teclado contextual, donde múltiples pulsaciones de teclas acumulan un comando

que han visto un número de personas que añadir un subconjunto de las asignaciones de teclado de Vi a un editor existente, y si bien es posible hacer un mapa de forma sensata, obtener una emulación probablemente requerirá un reemplazo bastante extenso del manejo del teclado de un editor existente.

Por supuesto, las asignaciones de teclado están bastante bien documentadas, por lo que no debería ser demasiado difícil de implementar.

Lo siguiente sería implementar el modo de comando. Depende de qué editor está modificando para implementar esto, pero me imagino cambiando el foco a un widget/control permanente en la parte inferior. Una vez que el foco está en ese control, puede manejar fácilmente la entrada y luego analizar y procesar el comando cuando se presiona return.

La sintaxis básica del modo comando se hereda de los editores ed/sed para que pueda buscar implementaciones (o documentos) sobre eso.

En general, no es un trabajo masivo para obtener una implementación superficial que se parece mucho a vi. Pero hacerlo bien es otro asunto. Sugeriría que consideres seriamente usar el excelente Vim (http://www.vim.org/).

5

creo que primero debe saber que VI/VIM son en realidad dos partes. Uno es el editor visual llamado vi y el otro es el editor de una sola línea llamado ed.

En realidad se llama vieditor visual de porque está construido en la parte superior de ed (editor).Es la parte visual del modo ex, donde puede ver y editar su texto, es por eso que recibe el nombre vi de visual.

El modo ex es en realidad una replicación/representación del editor ed. Simplemente inicie ed en el terminal y use sus comandos Vi ex por defecto. El visual, reemplazar y insertar modos son utilizados por vi. Por ejemplo, hay varios comandos que realmente están haciendo lo mismo, por ejemplo:

:100 // Go to line 100, ex mode (ed) 
100G // Go to line 100, normal mode(vi) 

:.,5d // Delete 5 lines, ex mode (ed) 
5dd // Delete 5 lines, normal mode (vi) 

y así sucesivamente ...

Para obtener más información sobre lo que recomienda la lectura del libro excelente Learning the vi and Vim editors de O' Reilly:

alt text

+0

Guau, hecho interesante sobre 'vi' y' ed'. Gracias por la recomendación. Creo que tengo el libro. Tendré que revisar mi estantería. =) Lo prepararé para educarme más sobre Vi. – sivabudh

Cuestiones relacionadas