Original article: http://www.moolenaar.net/habits.html Los siete hábitos de la eficacia de la edición de texto
Bram Moolenaar
desde noviembre de 2000

Si pasa mucho tiempo para escribir un texto sencillo, organizar un programa o HTML, puede ahorrar mucho tiempo usando un editor de manera efectivamente. Ese artículo presenta las normas y los consejos para hacer su trabajo más rapido y con pocas faltas.
La fuente abierta del editor de texto de Vim (Vi Improved) se utiliza aquí como un ejemplo para presentar las ideas efectivas de edición, pero se aplican igualmente con otros tipos de editores. El primer paso hacia la edición efectiva que constituye de elección del editor adecuado. La discusión sobre el editor que sea mejor para usted ocuparía mucho espacio y es inevitable. Si duda en escoger el editor o no se siente satisfecho con lo que estás usando ahora, dele oportunidad para Vim y no te decepcionará.
[Los comandos y las opciones de Vim se imprimen en esa fuente].

Parte 1: la edición de un archivo
1. Desplacese muy rápidamente
La mayor parte del tiempo pasa leyendo, verificando los errores y buscando un sitio adecuado del trabajo en vez de insertar un nuevo texto o hacer los cambios. La navegación por el texto se hace a menudo, así tienes que aprenderlo más rápidamente.
Muy a menudo puede que desee buscar un texto que sabes que está allí. También puede buscar en todas las líneas en que se utiliza una cierta palabra o frase. Usted puede simplemente utilizar el comando de búsqueda / patrón para encontrar el texto, pero existen maneras más inteligentes:
• Si ve una palabra específica y desea buscar otras apariciones de la misma palabra, utilice el comando *. Se agarra la palabra de debajo del cursor y la buscar el siguiente.
• Si se establece la opción 'incsearch', Vim mostrará la primera combinación para el patrón, mientras estás escribiéndolo. Esto muestra un error tipográfico en el patrón.
• Si se establece la opción de "hlsearch", Vim pondrá destacar todas las combinaciones para el patrón con un fondo amarillo. Esto da una visión general rápida de donde el comando de búsqueda le llevará. En el código de programa se puede mostrar dónde se utiliza una variable. Ni siquiera tiene que mover el cursor para ver las combinaciones.
En texto estructurado hay más posibilidades de desplazarse rápidamente. Vim tiene comandos específicos para programas en C (y lenguajes similares como C ++ y Java):
• Utilice % para saltar de una llave abierta a su combinación de la llave de cierre. También podemos pasar de un "# if" a la combinación de "#endif". En realidad, % para saltar a muchos elementos correspondientes. Es muy útil comprobar si se equilibran adecuadamente las construcciones () y {}.
• Utilice [{ para saltar de nuevo a la "{" al comienzo del bloque de código actual.
• Utilice Gd para saltar de la utilización de una variable a su declaración local.
Claro que hay muchos más de estos . Lo único que tienes que hacer es aprender estos comandos. Usted podría objetar que no es posible aprender todos estos comandos, porque hay cientos de diferentes comandos de desplazamiento, entre aquellos hay simples y algunos son muy inteligentes y necesaría semanas de entrenamiento para aprender los todos. Pues, puedes no hacerlo; en vez de eso debemos comprender su modo específico de la edición, y aprender sólo los comandos que hacen su edición más eficaz.
Ese fenómeno consiste en tres pasos básicos:
1. Cuando editas, mantenga los ojos abiertos para las acciones de repetir y / o pasar un poco de tiempo.
2. Averigue si hay una orden del editor que puede hacer esta acción más rápida.
Lea la documentación, pídalo a un amigo, o mire cómo otros hacen esto. 3. Entrene con el comando. Haga esto hasta que los dedos escriban sin pensar.
Vamos a tomar un ejemplo para mostrar cómo funciona ese elemento:
1. Usted encontrará que cuando está editando archivos de programa C, muy a menudo tiene que pasar tiempo buscando donde se define una función. Actualmente se utiliza el comando * para buscar otros lugares en los que aparece el nombre de la función, pero se termina pasando por una gran cantidad de coincidencias donde se utiliza la función en vez de la definida. Se entiende la idea de que debe haber una manera de hacerlo más rápido.
2. Examinando la referencia rápida usted puede encontrar una observación acerca del salto a las etiquetas. La documentación muestra cómo se puede utilizar para saltar a una definición de función, lo que estaba buscando!
3. Experimentára un poco generando un archivo de etiquetas, utilizando el programa ctags que va junto con Vim. Se aprende a usar el comando CTRL] y de tal modo ahorrarás mucho tiempo utilizándolo. Para hacerlo más fácil, añada unas líneas a su Makefile para generar automáticamente el archivo de etiquetas.
Hay que tener cuidado de tres puntos cuando está utilizando estos tres pasos:
"Quiero acabar con el trabajo, no tengo tiempo para examinar la documentación de encontrar algún nuevo comando". Si usted piensa así, obtendrá atrapado en la edad de piedra de la informática. Algunas personas utilizan Notepad para todo, y luego se preguntan por qué otras personas hacen su trabajo en la mitad del tiempo ...
No se exceda. Si siempre intenta encontrar el comando perfecto para cada pequeña cosa que haces, su mente no tendrá tiempo para pensar en el trabajo que estaba haciendo de veras. Sólo tiene que elegir las acciones que toman más tiempo de lo necesario, y entrenarse en los comandos hasta que no sea necesario pensar en ellos cuando use. Después, puede concentrarse en el texto.
En las secciones siguientes encontrará las sugerencias de medidas que la mayoría de la gente tiene que tratar. Usted puede utilizar éstos como la inspiración para el uso de los tres pasos básicos para su propio trabajo.

2. No lo escriba dos veces
Existe un conjunto limitado de palabras que escribimos. Aun si incluimos un número limitado de frases y oraciones. Especialmente en los programas informáticos. Claro usted no quiere escribir la misma cosa dos veces.
Muy a menudo tendrá que cambiar una palabra por otra. Si esto se va a hacer en todo el archivo, puede utilizar el comando que se llama “s” (sustituto). Si hay sólo unos pocos lugares que tienes que cambiar, un método rápido consiste es utilizar el comando * para buscar la siguiente aparición de la palabra y usar el comando cw para cambiar la palabra. A continuación, escriba n para encontrar la siguiente palabra y “.” (punto) para repetir la orden de cw.
El comando “.” repite el último cambio. Un cambio, en este contexto, es la inserción, supresión o sustitución de texto. Siendo capaz de repetir este considera ser un mecanismo muy potente. Si organiza su edición de alrededor de él, muchos cambios se convertirán en una cuestión de golpear sólo la tecla de “.”. Tenga cuidado cuando haces otros cambios en el medio porque eso reemplazará el cambio que se repetía. En su lugar, es posible que desee marcar la ubicación con el comando m, mientras continúe su cambio repetido y vuelva allí más tarde.
Algunos nombres de funciones y variables aparecen incómodos para escribir. ¿Se puede escribir con rapidez "XpmCreatePixmapFromData" sin un error tipográfico y sin mirar hacia arriba? Vim tiene un mecanismo de terminación que lo hace así que sea mucho más fácil. El programa busca las palabras en el archivo que edita, y también las busca en los archivos # include'd. Puede escribir "XPMCr" y después pulse CTRL-N y Vim se expandirá a "XpmCreatePixmapFromData" para usted. Esto no sólo ahorra un poco tiempo para escribir, sino que también evita al hacer un error y tener que arreglarlo más tarde, cuando el compilador le da un mensaje de error.
Cuando se está escribiendo una frase u oración varias veces, hay un enfoque aún más rápido. Vim tiene un mecanismo para grabar una macro. Usted escribe qa para empezar a grabar en el registro "a". A continuación, puede escribir sus comandos como de costumbre y finalmente pulsar q de nuevo para detener la grabación. Cuando se desea repetir los comandos grabados se escribe @ a. Hay 26 registros disponibles para esto.
Grabandolo se puede repetir muchas acciones diferentes y no sólo la inserción de texto. Es importante tener presente cuando se sabe que va a repetir algo.
Hay que tener en cuenta durante la grabación es que los comandos se reproducirán exactamente como están escritas. Cuando desplace a su alrededor debe tener en cuenta que el texto que mueve otra vez puede aparecer de manera diferente cuando se repite el comando. Cuando mueves cuatro caracteres dejadas podría funcionar para el texto en el que está grabando, pero puede ser que tenga que ser unos cinco caracteres en el que repite los comandos. A menudo es necesario usar los comandos para desplazarse sobre los objetos del texto (incluyendo aquí las palabras y las oraciones) o pasar a un caracter específico.
Cuando los comandos que necesitamos repetir son cada vez más complicados, escribiéndolos a la derecha resulta más difícil. En vez de registrarlas y después debe escribir un script o macro. Es muy útil hacer plantillas para las partes de su código; por ejemplo, la función encabezado. Puede hacerlo más inteligente que lo desee.

3. Saber solucionarlo si está incorrecto
Es normal cometer errores cuando escribes a la máquina. Nadie puede evitarlo. Lo más importante es encontrarlos y corregirlos rápidamente. El editor debe ser capaz de ayudarle con esto. Pero hay que decirlo y subrayar lo que es incorrecto y lo que está bien.
Muy a menudo va a hacer el mismo error una y otra vez. Sus dedos no le hacen lo que usted deseaba. Esto se puede corregir con abreviaturas. Mire unos ejemplos dados abajo:
: Abbr Linux Linux
: Abbr otro lado a través de
: Abbr la del
Las palabras serán corregidas automáticamente justo después de que se hayan escrito.
El mismo mecanismo se puede utilizar para escribir una palabra larga con unas pocas letras. Es muy útil para las palabras que se encuentran difícil de escribir, y sabe evitar cuando equivoca. Mire unos ejemplos:
: Abbr pn pingüino
: Abbr Software MS Mandrake
En cambio, éstos tienden a expandirse a la palabra completa cuando no lo desea, lo que hace difícil cuando de verdad desea insertar "MS" en el texto. Lo mejor es utilizar palabras cortas que no tienen un significado propio.
Para encontrar los errores en el texto, Vim tiene un mecanismo ingenioso. En realidad pretendía ser el editor con sintaxis resaltada de los programas, pero también puede determinar y subrayar los errores.
La sintaxis resaltada muestra los comentarios en color. Eso no pretende ser una característica importante, pero en cuanto se comienza a usarlo usted encontrará muy beneficioso. Usted puede localizar rápidamente el texto que debe ser un comentario, pero no está subrayado como (es probable haya olvidado un marcador de comentario) . También puede ver una línea de código resaltado como comentario (esto significa que haya olvidado de insertar un "* /"). Estos son los errores que son difíciles de detectar en un archivo B & W y puede perder mucho tiempo al intentar depurar el código.
La sintaxis resaltada también puede poner las abrazaderas desequilibradas. Un desequilibrado ")" es el subrayado con un fondo de color rojo brillante. Usted puede utilizar el comando % para ver la combinación entre ellos e insertar un "(" o ")" en la posición correcta.
Otros errores comunes también se puede localizar muy rápido, por ejemplo cuando usamos "#include " en vez de "# include ". Usted puede perder fácilmente un error de B & W, pero rápidamente detectar que la palabra "incluir" está subrayada mientras que la palabra"incluido" no está resaltada.
Un ejemplo más complejo: el texto inglés tiene una larga lista de todas las palabras usadas. Cualquier palabra que no está en esta lista podría ser un error. Utilizando el archivo de sintaxis usted puede resaltar todas las palabras que no están en la lista. Apoyando por pocas macros más puede añadir palabras a la lista de palabras de tal modo que ya no se marca como un error. Esto funciona de la misma manera como si cabría esperarlo en un procesador de textos. En el programa de Vim se implementa con secuencias de comandos y se puede ajustar aún más para su propio uso: por ejemplo, comprobar solamente los comentarios en un programa de errores ortográficos.

Parte 2: editar otros archivos
4. Un archivo rara vez viene solo
La gente nunca trabaja con un solo archivo. Hay muchos archivos relacionados que usted edita varios uno tras otro, o puede ser que revisa varias simultáneamente. Usted debe ser capaz de sacar provecho de su editor para que pueda trabajar con varios archivos más eficientes.
El mecanismo de la etiqueta se ha mencionado anteriormente también funciona pasando entre los archivos. El enfoque habitual se base en generar un fichero de etiquetas para todo el proyecto en el que estás trabajando. Luego, puede pasar rápidamente entre todos los archivos en el proyecto con el fin de encontrar las definiciones de las funciones, estructuras, typedefs, etc. El tiempo que ahorra en comparación con la búsqueda manual es muy importante; la creación de un fichero de etiquetas es el primer paso que hace navegando el programa.
Otro mecanismo poderoso constituye en encontrar todas las apariciones de un nombre en un grupo de archivos a través del comando: grep. El programa de Vim hace una lista de todas las combinaciones y pasa al primero. El comando: cn le lleva a cada próxima combinación . Es muy útil si necesita cambiar varios argumentos en una llamada de función.
Los archivos incluidos contienen una información útil. Sin embargo, para encontrar el que contiene la declaración necesita puede tomar mucho tiempo. Vim sabe sobre los archivos incluidos y puede examinarles por una palabra que está buscando. La acción más común es la de buscar el prototipo de una función. Al colocar el cursor sobre el nombre de la función en el archivo y al escribir [I:, Vim mostrará una lista de todas las combinaciones para el nombre de la función de los archivos incluidos. Si necesita ver más contexto, es posible saltar directamente a la declaración. Un comando parecido se puede utilizar para comprobar si ha incluido los archivos encabezaderos adecuados.
En el programa Vim puede dividir el área de texto en varias partes para editar archivos diferentes. Después, puede comparar el contenido de dos o más archivos de texto y copiar / pegar entre ellos. Hay muchos comandos para abrir y cerrar las ventanas, pasar entre ellos, ocultar temporalmente los archivos, etc. Teniendo en cuenta que solo tendrá que utilizar los tres pasos básicos para elegir el conjunto de comandos que desea saber utilizarlos.
Hay muchas otras múltiples ventanas utilizadas. El mecanismo de previsualización de la etiqueta es un muy buen ejemplo. Esto abre una ventana de vista previa especial, mientras se mantiene el cursor en el archivo en el que está trabajando. El texto en las ventanas de vista previa muestra, la declaración de función para el nombre de la función que está bajo el cursor. Si mueve el cursor a otro nombre y lo deja allí un segundo, la ventana de vista previa indicará la definición de ese nombre. También podría ser el nombre de una estructura o una función que se declara en un archivo de inclusión de su proyecto.

5. Trabajamos juntos
Un editor sirve para corregir el texto. Un programa de correo electrónico es para enviar y recibir los mensajes. Un sistema operativo se usa para los programas en ejecución. Cada programa tiene su propia función y debe funcionar bien. El poder viene de tener los programas trabajan juntos.
Mire un ejemplo sencillo: Usted tiene que escribir un resumen de lo máximo 500 palabras. Elija el párrafo actual y escríbalo en el programa "wc": vip: w wc -w. El comando externo "wc -w" se utiliza para contar las palabras. Es muy fácil, ¿verdad?
Siempre habrá alguna funcionalidad que necesita y que no está en el editor. Permitiendo filtrar texto con otro programa significa que se puede añadir aquella funcionalidad externamente. Siempre ha sido el espíritu de Unix para tener programas separados que hacen bien su trabajo y cuales pueden trabajar juntos para realizar una tarea más grande. Desgraciadamente, la mayoría de los editores no funcionan demasiado bien en conjunto con otros programas como no se puede reemplazar el editor de correo electrónico en Netscape con otro. Al final lo acabas usando un editor de lisiado. La otra tendencia se base en incluir todo tipo de funcionalidad dentro del editor; Emacs puede ser un buen ejemplo de cómo esto puede acabar. (Algunos lo llaman un sistema operativo que también se puede utilizar para editar el texto.)
El programa de Vim trata de integrar con otros programas, pero esto sigue siendo una pelea. Actualmente es posible usar Vim como editor de MS-Developer Studio y de Sniff. Algunos programas de correo electrónico que soportan un editor externo, como Mutt también pueden usar Vim. La integración con Sun Workshop se está trabajando de momento. En general, esta es un área que necesita el mejoramiento en el próximo futuro. Sólo así podremos obtener un sistema que es mejor que la suma de sus partes.

6. El texto tiene que ser estructurado
Muy a menudo tendrá que trabajar con el texto que tiene algún tipo de estructura, pero será diferente de lo que está apoyado por los comandos disponibles. Después, hay que recurrir a los "bloques de construcción" del editor y crear sus propias macros y plugins para trabajar con este texto. Pasamos a las cosas más complicadas aquí.
Una de las cosas más simples es acelerar el ciclo de edición-compilación-fijación. El programa de Vim tiene el comando :make, que comienza la compilación, detecta los errores producidos y le permite pasar a las ubicaciones de error para solucionar los problemas. Si se utiliza otro compilador, no serán reconocidos los mensajes de error. En vez de volver al viejo sistema de "escríbalo", debe ajustar la opción 'errorformat'. Esto le dice a Vim lo que sus errores se parecen y proporciona la instrucción cómo obtener el nombre del archivo y el número de línea fuera de ellos. Eso funciona solamente con los mensajes de error de gcc complicados, así que debe ser capaz de hacerlo funcionar en cualquier compilador.
A veces, el ajuste de un tipo de archivo es simplemente una cuestión de establecer algunas opciones o escribir algunas macros. Por ejemplo, para pasar alrededor de las páginas manuales, puede escribir una macro que toma la palabra bajo el cursor, borra el buffer y luego lee la página del manual para esa palabra que está en el buffer. Esa es una manera sencilla y eficaz para buscar referencias cruzadas.
Con el uso de los tres pasos básicos, se puede trabajar de manera más eficaz con cualquier tipo de archivo estructurado. Basta con pensar en las acciones que desea hacer con el archivo, entonces encontrar los comandos del editor que lo hacen y empezar a usarlas. Es tan simple como suena. Sólo tienes que hacerlo.

Parte 3: Cómo afilar la sierra
7. Hágalo la costumbre
Para aprender a conducir un coche requiere un esfuerzo. ¿Es eso una razón para seguir conduciendo su bicicleta? No, se da cuenta de que tienes que dedicar tiempo para aprender una habilidad. La edición de texto es lo mismo. Es necesario aprender nuevos comandos y después convertirlos en un hábito.
Por otra parte, no se debe tratar de aprender todos los comandos ofrecidos. Eso sería una completa pérdida de tiempo. La mayoría de las personas sólo necesitan aprender del 10 al 20 por ciento de los comandos para su trabajo. Pero es un conjunto de comandos diferente para todo el mundo. Eso requiere que incline hacia atrás de vez en cuando, y se pregunta si hay alguna tarea repetitiva que podría ser automatizada. Si lo hace una tarea de una sola vez, y no espera de hacerlo de nuevo, no trates optimizarlo. Probablemente no se da cuenta de que ha estado repitiendo algo varias veces en la última hora. Entonces busque la documentación de un comando que puede hacerlo más rápido o escriba una macro para hacerlo. Cuando trabajas con una tarea más amplia tal como revestimiento de un tipo de texto específico, usted podría mirar a su alrededor en grupos de noticias o en Internet para ver si alguien ya lo resolvió para usted.
El paso básico esencial viene el último. Se puede pensar en una tarea repetitiva y encontrar una buena solución para ello y después de pasar fin de semana se le olvida cómo lo ha hecho antes. Eso no funciona así. Usted tendrá que repetir la solución hasta que los dedos lo hacen automáticamente. Sólo entonces alcanzará la eficiencia necesaria. No trate de aprender demasiadas cosas a la vez. Pero si haces unas cosas a la vez, está bien. No trates de usar los trucos con frecuencia para suficiente para hacer sus dedos acostumbrados, es posible que desee anotarlas para ser capaz de mirar hacia arriba después. De todos modos, si se mantiene el objetivo en vista, encontrará maneras de hacer su edición más y más eficaz.
La última observación para recordar lo que sucede cuando la gente ignora todo lo anterior: Todavía encuentro las personas que pasan la mitad del día detrás de una pantalla de visualización mirando hacia arriba en la pantalla, luego hacia abajo en dos dedos, luego hacia arriba en la pantalla, etc. - y luego preguntan por qué se ponen tan cansados ... ¡Hay que escribir con sus diez dedos! Es muy rápido y además es mucho menos tedioso también. Usando un programa de computadora durante una hora cada día le tomará hasta dos semanas para aprender escribir al tacto.

Epílogo
La idea para el título viene del exitoso libro que se llama "Los 7 hábitos de la gente altamente efectiva", el autor Stephen R. Covey. Se lo recomendaría a todos que quieren resolver los problemas personales y profesionales (y quién no lo quiere?). Aunque algunos de ustedes pueden decir que ese artículo tiene su título venido de "Siete años de personas altamente defectuosos", el autor Scott Adams (que también recomiendo para leer!). Vea la página http://iccf-holland.org/click1.html.

Sobre el Autor
Bram Moolenaar es el autor principal de Vim. Él escribe la funcionalidad principal de Vim y elige lo que se incluye el código enviado por otra gente. Él se graduó en la Universidad Técnica de Delft como un técnico en computación. Ahora trabaja principalmente con el software, pero aún sabe manejar el soldador. Es fundador y tesorero de ICCF en Holanda y ayuda a los huérfanos en Uganda. Él hace el trabajo independiente como arquitecto de sistemas, pero en realidad pasa la mayor parte del tiempo trabajando en Vim. Su dirección de correo electrónico: Bram AT Moolenaar.net.