Hello:
Thanks for such a quick reply. Actually, last email was an example of
the issue, the gettetized documents were
from usr_02 to usr_12, all displaying the same results.
Could you send me the usr_01.txt file you used and the po4a commands
you
used (with the config file if you are using one).
There is no po4a.cfg as I didn't adapt the project for po4a after the
issue, and we used
po2txt/txt2po after gettextization. It is now that the vim-doc-es
project is a bit more "stable" (started couple of months ago)
that I 'm sending this.
The original is usr_02.txt, the translation is usr_02es.txt (attached).
The command had nothing special
"po4a-gettextize -f text -M utf8 -L utf8 -m usr_02.txt -l usr_02es.txt
-p usr2.po"
I guess that's something close to what I would use in po4a.cfg under the
options section.
The resulting file of the command is attached as well (usr2.po), the
issue is at #: usr_02.txt:20.
usr2.pot (attached) is the result of txt2po.
Fixing the issue after gettextization involved the use of the txt2po
tool, msgmerge and msghack.
Plus, po4a and txt2po produce different po files in the way they treat
similar (or identical) msgid's and how it (and it's translation) are
arranged.
Because of this, I either have to use po4a or translate-toolkit po's to
avoid
extra steps, and too many fuzzy strings in the process.
Do you know if vim is using a standard format (or is it only used for
the
vim documentation).
In the manual it says Vim's help is written in regular text.
I do know that Vim can sometimes present its own issues with encodings
(it's kinda messy in Vim).
In this case, it would be nice to create a specific module (or an
option
to the text module). This could be used to handle menus, or options
specifically.
That might be really useful for other projects in general.
some new options could also be added that could be used by
other text-like format. For example an option could indicate that
paragraph containing tabulation shall be handled as verbatim paragraph
(no rewrap).
Do you thunk there should be an option to activate a vim documentation
specific mode, or should we add options only for tabulations?
This issue is only present in that menu (in every file). It would be nice
to adapt the project vim-doc-es to po4a (and others, if willing). But I
think that would
require an option only for tabulations.
Otherwise, it parses the file fine, tables included. An option only for
Vim doc's
seems huge, (taking into account the few people who have translated
these files to
other languages).
However, I don't know about this things, and I wonder if those options
only for
tabulations could mess up other tables or paragraphs in the process. I know
nothing on formats (but perhaps PO format :).
If it doesn't break things (too much), it's inclusion will make it
perfect for Vim's help files and
perhaps the needs of others.
Thanks for the interest!
Best regards, Omar.
*usr_02.txt* Para Vim version 7.2. Último cambio: 2007 Feb 08
MANUAL DE USUARIO DE VIM - por Bram Moolenaar
Primeros pasos en Vim
Este capítulo provee suficiente información para editar un archivo con vim.
No bien ni rápido, pero podrás editar. Tómate un tiempo para practicar estos
comandos, son la base de lo que sigue.
|02.1| Ejecutar Vim por Primera Vez
|02.2| Insertando texto
|02.3| Movimiento
|02.4| Eliminando caracteres
|02.5| Deshacer y Rehacer
|02.6| Otros comandos de edición
|02.7| Salir
|02.8| Encontrar ayuda
Capítulo siguiente: |usr_03.txt| Movimiento
Capítulo anterior: |usr_01.txt| Sobre los manuales
Contenidos: |usr_toc.txt|
==============================================================================
*02.1* Ejecutar Vim por primera vez
Para ejecutar Vim, introduce este comando: >
gvim file.txt
En UNIX puedes introducir este comando en cualquier consola. Si estás bajo
windows, abre un consola MS-DOS e introduce el comando.
En ambos casos, Vim comienza editando un archivo llamado file.txt. Ya que
es un archivo nuevo, obtienes un ventana vacía. Así es como tu ventana deberá
aparecer:
+---------------------------------------+
|# |
|~ |
|~ |
|~ |
|~ |
|"file.txt" [New file] |
+---------------------------------------+
('#" es la posición del cursor.)
La líneas con tilde (~) indican líneas que no se hallan en el archivo. En otras
palabras, cuando Vim se queda sin archivo que mostrar, muestra líneas con tilde.
En la parte de abajo de la pantalla, un mensaje muestra que el archivo se llama
file.txt y que estás creando un archivo nuevo. La información del mensaje es
temporal y otra información la sobreescribirá.
EL COMANDO VIM
El comando gvim hace que el editor cree una nueva ventana para la edición. Si
usas el comando: >
vim file.txt
la edición ocurre dentro de la ventana de llamada. En otras palabras, si estás
dentro de una xterm, el editor usa tu ventana xterm. Si estás usando una
consola MS-DOS bajo windows, la edición ocurrirá dentro de esta ventana. El
texto en la ventana tendrá el mismo aspecto en ambas versiones, pero con gvim
tiene características extra, como una barra de menú. Veremos más sobre esto
posteriormente.
==============================================================================
*02.2* Insertando texto
El editor Vim es un editor modal. Esto significa que el editor se comporta de
manera diferente, dependiendo del modo en el que estés. Los dos modos básicos se
denominan modo Normal y modo Insertar. En modo Normal, los caracteres que
introduzcas son comandos. En modo Insertar, los caracteres insertando son texto.
Ya que acabas de iniciar Vim estará en modo Normal. Para iniciar el modo
Insertar introduce el comande "i" (i de Insertar). Entonces podrás introducir
texto. Éste será introducido en el archivo. No te preocupes si cometes
errores; puedes corregirlos después. Teclea esto para introducir la siguiente
quintilla: >
iA very intelligent turtle
Found programming UNIX a hurdle
Tras teclear "turtle" presiona la tecla <Entrar> para comenzar una nueva
línea.
Por último, presiona la tecla <Esc> para salir del modo Insertar y volver al
modo Normal. Ahora tienes dos líneas de texto en tu ventana de Vim:
+---------------------------------------+
|A very intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
¿EN QUÉ MODO?
Para ver en que modo estás, teclea el siguiente comando:
:set showmode
Comprobarás que cuando introduces dos puntos, Vim mueve el cursor a la última
línea de la ventana. Allí es donde introducirás comandos con dos puntos
(comandos que comienzan con dos puntos). Finaliza el comando presionando la
tecla <Entrar> (todos estos comandos se finalizan de este modo).
Si ahora pulsas el comando "i" Vim mostrará --INSERT-- en la parte de abajo
de la ventana. Esto indica que estás en modo Insertar.
+---------------------------------------+
|A very intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
|-- INSERT -- |
+---------------------------------------+
Si presionas <Esc> para volver al modo Normal la última linea desaparecerá.
LA CONFUSIÓN DE LOS MODOS
Uno de los problemas para los que comienzan a usar Vim es la confusión de los
modos, que se produce al olvidar en qué modo estás o por teclear accidentalmente
un comando que cambia de modo. Para volver al modo Normal, no importa el modo
en el que estés, presiona la tecla <Esc>. En algunas ocasiones, tendrás que
presionarlo dos veces. Si Vim emite un pitido, entonces estás de vuelta en el
modo Normal.
==============================================================================
*02.3* Movimiento
Una vez en el modo Normal, puedes moverte usando éstas teclas:
h izquierda *hjkl*
j abajo
k arriba
l derecha
En un principio, puede parecer que estos comandos han sido elegidos
arbitrariamente. Después de todo, ¿quién ha visto usar l para derecha? De
hecho, hay una buena razón para esto: Mover el cursor es una de las cosas más
comunes que harás en un editor, y esta teclas están en la fila central en tu
mano derecha. En otras palabras, estos comandos están situados donde puedes
teclearlos de manera más rápida (especialmente cuando escribes con diez dedos).
Nota:
También puedes mover el cursor usando las flechas. Si lo haces, sin
embargo, ralentizas considerablemente la edición, ya que para ello
tendrás que desplazar tu mano desde las letras a las flechas del
teclado. Teniendo en cuenta que debes hacerlo cientos de veces cada
hora, esto puede llevar un tiempo considerable.
Además, hay teclados que no tienen teclas de flechas, o que las
colocan en lugares inusuales; por lo tanto, conocer el uso de hjkl ayuda
en esas situaciones.
Una manera de recordar estos comandos es que la h está en la izquierda, l en la
derecha y j apunta hacia abajo. En un esquema: >
k
h l
j
La mejor manera de aprender estos comandos es usándolos. Usa el comando "i"
para insertar algunas líneas de texto más. Luego usa las teclas hjkl para
moverte e insertar palabras. No te olvides de presionar <Esc> para volver al
modo Normal. El |vimtutor| es una buena manera de aprender haciendo.
Para usuarios japoneses, Hiroshi Iwatani sugiere lo siguiente:
Komsomolsk
^
|
Huan Ho <--- ---> Los Angeles
(Río amarillo) |
v
Java (la isla, no el lenguaje de programación)
==============================================================================
*02.4* Eliminando caracteres
Para eliminar un carácter, pon el cursor encima y presiona "x". (Esto es una
reminiscencia de los días de las máquinas de escribir, cuando se eliminaban
caracteres escribiendo xxxx sobre ellos.) Pon el cursor en el comienzo de la
primera línea, por ejemplo, y pulsa xxxxxxx (siete "x") para eliminar "A
very ".
El resultado debería ser:
+---------------------------------------+
|intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
Ahora puedes insertar texto nuevo, por ejemplo tecleando: >
iA young <Esc>
Esto comienza a insertar (la "i"), inserta las palabras "A young", y
sale del
modo insertar (el <Esc> final). El resultado:
+---------------------------------------+
|A young intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
ELIMINANDO UNA LÍNEA
Para eliminar una línea entera usa el comando "dd". La siguiente línea se
moverá
hacia arriba para rellenar el hueco:
+---------------------------------------+
|Found programming UNIX a hurdle |
|~ |
|~ |
|~ |
| |
+---------------------------------------+
ELIMINANDO UN SALTO DE LÍNEA
En Vim puedes unir dos líneas, lo que significa que el salto de línea entre
ellas es eliminado. El comando "J" hace esto.
Coge estas dos líneas:
A young intelligent ~
turtle ~
Mueve el cursor a la primera línea y pulsa "J":
A young intelligent turtle ~
==============================================================================
*02.5* Deshacer y Rehacer
Supón que eliminas demasiado. Puedes teclearlo de nuevo, pero una manera más
fácil existe. El comando "u" deshace la última edición. Echa un vistazo a
esto en acción: Tras usar "dd" para eliminar la última línea, "u" la
devuelve.
Otra más: mueve el cursor a la A en la primera línea:
A young intelligent turtle ~
Ahora teclea xxxxxxx para eliminar "A young". El resultado es el siguiente:
intelligent turtle ~
Teclea "u" para deshacer la última eliminación. Esa última eliminación quitó
la g, por lo que el deshacer la devuelve.
g intelligent turtle ~
El próximo comando "u" te devuelve el último carácter eliminado:
ng intelligent turtle ~
El próximo carácter "u" te devuelve la u, y sigue:
ung intelligent turtle ~
oung intelligent turtle ~
young intelligent turtle ~
young intelligent turtle ~
A young intelligent turtle ~
Nota:
Si tecleas la "u" dos veces, y el resultado es que obtienes el mismo
texto de vuelta, es que tienes Vim configurado para que sea
Vi-compatible. Mira aquí para solucionarlo: |not-compatible|.
Este texto asume que trabajas en "El Modo Vim". Quizá quieras usar
el viejo modo Vi, pero entonces tendrás que observar las pequeñas
diferencias.
REHACER
Si deshaces de más, puedes pulsar CTRL-R (rehacer) para revertir el comando
precedente. En otras palabras, deshace el deshacer. Para ver esto en acción,
presiona CTRL-R dos veces. El carácter A y el espacio desaparecerán:
young intelligent turtle ~
Hay una versión especial del comando deshacer, el comando "U" (deshacer línea).
El comando deshacer línea, deshace todos los cambios realizados en la última
línea editada. Teclear este comando dos veces deshace el "U" precedente.
A very intelligent turtle ~
xxxx Eliminar very
A intelligent turtle ~
xxxxxx Eliminar turtle
A intelligent ~
Restaurar línea con "U"
A very intelligent turtle ~
Deshacer "U" con "u"
A intelligent ~
El comando "U" es un cambio en sí mismo, que el comando "u" deshace y
el
CTRL-R rehace. Esto puede resultar confuso. No te preocupes, con "u" y CTRL-R
puedes ir a cualquier situación anterior. Más sobre esto en la sección |32.1|.
==============================================================================
*02.6* Otros comandos de edición
Vim tiene una larga lista de comandos para cambiar texto. Mira en |Q_in| y
debajo. Aquí hay algunos de uso frecuente.
AÑADIR
El comando "i" inserta un carácter antes del carácter bajo el cursor. Esto
funciona bien; pero ¿qué ocurre si quieres añadir algo al final de la línea?
Para ello necesitas insertar texto después del cursor. Esto se hace con el
comando "a" (añadir).
Por ejemplo, para cambiar la línea
and that's not saying much for the turtle. ~
a
and that's not saying much for the turtle!!! ~
Mueve el cursor sobre el punto al final de la línea. Pulsa "x" para eliminar
el punto. El cursor estará situado ahora al final de la línea, en la e en
turtle. Ahora teclea: >
a!!!<Esc>
para añadir tres signos de exclamación después de la e en turtle:
and that's not saying much for the turtle!!! ~
ABRIR UNA NUEVA LÍNEA
El comando "o" crea una nueva línea vacía debajo del cursor y pone Vim en modo
insertar. Puedes introducir el text de la nueva línea.
Supón que el cursor está en algún lugar de la primera de estas líneas:
A very intelligent turtle ~
Found programming UNIX a hurdle ~
Si ahora usas el comando "o" e introduces más texto: >
oThat liked using Vim<Esc>
El resultado es:
A very intelligent turtle ~
That liked using Vim ~
Found programming UNIX a hurdle ~
El comando "O" (mayúscula) abre una nueva línea encima del cursor.
USAR UN MULTIPLICADOR
Supón que quieres moverte nueve líneas hacia arriba. Puedes teclear
"kkkkkkkkk" o puedes teclear el comando "9k". De hecho, se puede
emplear el
multiplicador con muchos comandos. Anteriormente, en este capítulo, añadiste
tres exclamaciones al final de la línea con "a!!!<Esc>". Otra forma de
hacer
esto es usar el comando "3a!<Esc>". El multiplicador 3 hace que el comando
que
sigue triplique su efecto. De igual modo, para eliminar tres caracteres, usa
"3x". El multiplicador siempre va delante del comando sobre el que se aplica.
==============================================================================
*02.7* Saliendo
Para salir, usa el comando "ZZ". Este comando escribe el archivo y sale.
Nota:
Al revés que muchos otros editores, Vim no hace un archivo de
seguridad automático. Si escribes "ZZ", tus cambios son comprometidos
y no hay vuelta atrás. Puedes configurar el editor Vim para que haga
copias de seguridad, ver |07.4|.
DESCARTANDO CAMBIOS
En ocasiones te darás cuenta de que tras una secuencia de cambios, estabas
mejor donde comenzaste. No te preocupes; Vim tiene un comando para salir y
echar a perder todos los cambios. Es: >
:q!
No te olvides de presionar <Entrar> para finalizar el comando.
Para aquellos de vosotros interesados en los detalles, las tres partes de este
comando son los dos puntos (:), que entra en el modo Línea de Comandos; el
comando "q", para salir; y el modificador de anulación (!).
El modificador de anulación es necesario porque Vim se resiste a perder los
cambios. Si solo escribieses ":q", Vim mostraría un mensaje de error y se
negaría a salir:
E37: No write since last change (use ! to override) ~
Especificando el operador de anulación, estás diciendo a Vim "Sé que lo que
hago parece una estupidez, pero ya soy mayorcito y sé lo que hago."
Si quieres continuar editando con Vim: El comando ":e!" vuelve a cargar la
versión original del archivo.
==============================================================================
*02.8* Encontrando ayuda
Todo lo que quieras saber puedes encontrarlo en los archivos de ayuda.
¡No tengas miedo a preguntar!
Para obtener ayuda genérica usa el siguiente comando:
:help
También puedes usar la tecla <F1>. Si tu teclado tiene tecla <Ayuda> puede
que
funcione también.
Si no defines un tema, ":help" muestra la ventana de ayuda general.
Los creadores de Vim hicieron algo muy inteligente (o fueron muy vagos) con el
sistema de ayuda: Hicieron la ventana de ayuda una ventana normal de edición.
Puedes usar todos los comandos normales de Vim para moverte por ella. Por lo
tanto, h, j, k, l mueven hacia la izquierda, derecha, arriba y abajo.
Para salir de la ventana de ayuda, usa el mismo comando que usas para salir
del editor: "ZZ". Esto sólo cerrará la ayuda, no saldrá de Vim.
A medida que leas el texto de ayuda, notarás que hay texto entro barras
verticales (por ejemplo, |help|). Esto indica un hiperenlace. Si sitúas el
cursor en cualquier lugar entre las barras y presionas CTRL-] (saltar a
etiqueta), el sistema de ayuda te llevará al tema indicado. (Por motivos que
no corresponden a esta explicación, la terminología Vim para hiperenlace es
etiqueta o "tag". Por lo tanto, CTRL-] salta a la localización del tag dado
por la palabra bajo el cursor.)
Tras unos cuantos saltos, quizá quieras volver atrás. CTRL-T (saltar hacia
atrás en la pila) te devuelve a la posición precedente. CTRL-O (saltar hacia
la posición anterior) también funciona bien aquí.
Mira |29.1| para detalles sobre el uso de etiquetas.
Para obtener ayuda sobre un tema concreto, usa el siguiente comando: >
:help {subject}
Para obtener ayuda sobre el comando "x", por ejemplo, introduce: >
:help x
Para averiguar cómo eliminar texto, usa el comando: >
:help deleting
Para obtener un índice completo de todos los comandos Vim usa: >
:help index
Cuando necesites obtener ayuda para los comandos control carácter (por
ejemplo, CTRL-A), debes escribirlo con el prefijo "CTRL-". >
:help CTRL-A
El editor Vim tiene muchos modos diferentes. Por defecto, el sistema de ayuda
muestra las comandos de modo normal. Por ejemplo el siguiente comando muestra
la ayuda para el comando CTRL-H en modo normal: >
:help CTRL-H
Para identificar otros modos, se necesita un prefijo de modo. Si quieres
ayuda para la versión en modo insertar del comando, usa "i_". Para CTRL-H es
el siguiente comando: >
:help i_CTRL-H
Cuando arranques el editor Vim, puedes usar diversos argumentos de línea de
comandos. Todos ellos comienzan con guión (-). Para buscar lo que el
argumento -t hace, por ejemplo, usa el comando: >
:help -t
El editor Vim tiene una serie de opciones que te permiten configurar y
personalizar el editor. Si quieres ayuda para una opción, tienes que
escribirla entre comillas simples. Para encontrar lo que hace la opción
'number' por ejemplo, usa el comando siguiente: >
:help 'number'
Puedes encontrar aquí la tabla con todos los prefijos de modo: |help-context|.
Las teclas especiales se escriben entre corchetes angulares. Para encontrar
ayuda sobre la flecha hacia arriba en modo insertar, usa: >
:help i_<Up>
Si ves un mensaje de error que no entiendes, por ejemplo:
E37: No write since last change (use ! to override) ~
Puedes usar el código de error del principio para encontrar ayuda: >
:help E37
Resumen: *help-summary* >
:help
< Te aporta ayuda muy general. Desplaza el texto hacia abajo
para ver una lista con todos los archivos de ayuda, incluyendo
los añadidos (que no se distribuyen con Vim). >
:help user-toc.txt
< Índice de contenidos del manual de usuario. >
:help :tema
< Comando tipo "Ex" ("tema"), por ejemplo el siguiente: >
:help :help
< Ayuda sobre cómo obtener ayuda. >
:help abc
< Comando del modo Normal "abc". >
:help CTRL-B
< Tecla de control <C-B> en el modo Normal. >
:help i_abc
:help i_CTRL-B
< Lo mismo pero en el modo Insertar. >
:help v_abc
:help v_CTRL-B
< Lo mismo pero en el modo Visual. >
:help c_abc
:help c_CTRL-B
< Lo mismo en modo línea de comandos. >
:help 'tema'
< Opción 'tema'. >
:help tema()
< Función "tema". >
:help -tema
< Opción línea de comandos "-tema". >
:help +tema
< Característica de Vim compilada "+tema'. >
:help NombreDeEvento
< Evento de Autocomando "NombreDeEvento". >
:help digraphs.txt
< El principio del archivo de ayuda "digraph.txt".
De forma similar para cualquier otro archivo de ayuda. >
:help patrón<Tab>
< Buscar un patrón de ayuda que comience con "patrón". Repetir
<Tabulador> para otros. >
:help patrón<Ctrl-D>
< Ver todas las posibles concordancias del patrón para ayuda.>
:helpgrep patrón
< Buscar entre todos los archivos de ayuda el patrón "patrón".
Salta a la primera coincidencia. Sala a las siguientes con: >
:cn
< siguiente coincidencia >
:cprev
:cN
< anterior coincidencia >
:cfirst
:clast
< primera o última coincidencia >
:copen
:cclose
< abrir/cerrar la ventana "quickfix" (arreglos rápidos);
pulsa <Entrar> para ir al elemento bajo el cursor.
==============================================================================
Capítulo siguiente: |usr_03.txt| Movimiento
Copyright: ver |manual-copyright| vim:tw=78:ts=8:ft=help:norl:
*usr_02.txt* For Vim version 7.2. Last change: 2007 Feb 28
VIM USER MANUAL - by Bram Moolenaar
The first steps in Vim
This chapter provides just enough information to edit a file with Vim. Not
well or fast, but you can edit. Take some time to practice with these
commands, they form the base for what follows.
|02.1| Running Vim for the First Time
|02.2| Inserting text
|02.3| Moving around
|02.4| Deleting characters
|02.5| Undo and Redo
|02.6| Other editing commands
|02.7| Getting out
|02.8| Finding help
Next chapter: |usr_03.txt| Moving around
Previous chapter: |usr_01.txt| About the manuals
Table of contents: |usr_toc.txt|
==============================================================================
*02.1* Running Vim for the First Time
To start Vim, enter this command: >
gvim file.txt
In UNIX you can type this at any command prompt. If you are running Microsoft
Windows, open an MS-DOS prompt window and enter the command.
In either case, Vim starts editing a file called file.txt. Because this
is a new file, you get a blank window. This is what your screen will look
like:
+---------------------------------------+
|# |
|~ |
|~ |
|~ |
|~ |
|"file.txt" [New file] |
+---------------------------------------+
('#" is the cursor position.)
The tilde (~) lines indicate lines not in the file. In other words, when Vim
runs out of file to display, it displays tilde lines. At the bottom of the
screen, a message line indicates the file is named file.txt and shows that you
are creating a new file. The message information is temporary and other
information overwrites it.
THE VIM COMMAND
The gvim command causes the editor to create a new window for editing. If you
use this command: >
vim file.txt
the editing occurs inside your command window. In other words, if you are
running inside an xterm, the editor uses your xterm window. If you are using
an MS-DOS command prompt window under Microsoft Windows, the editing occurs
inside this window. The text in the window will look the same for both
versions, but with gvim you have extra features, like a menu bar. More about
that later.
==============================================================================
*02.2* Inserting text
The Vim editor is a modal editor. That means that the editor behaves
differently, depending on which mode you are in. The two basic modes are
called Normal mode and Insert mode. In Normal mode the characters you type
are commands. In Insert mode the characters are inserted as text.
Since you have just started Vim it will be in Normal mode. To start Insert
mode you type the "i" command (i for Insert). Then you can enter
the text. It will be inserted into the file. Do not worry if you make
mistakes; you can correct them later. To enter the following programmer's
limerick, this is what you type: >
iA very intelligent turtle
Found programming UNIX a hurdle
After typing "turtle" you press the <Enter> key to start a new line.
Finally
you press the <Esc> key to stop Insert mode and go back to Normal mode. You
now have two lines of text in your Vim window:
+---------------------------------------+
|A very intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
WHAT IS THE MODE?
To be able to see what mode you are in, type this command: >
:set showmode
You will notice that when typing the colon Vim moves the cursor to the last
line of the window. That's where you type colon commands (commands that start
with a colon). Finish this command by pressing the <Enter> key (all commands
that start with a colon are finished this way).
Now, if you type the "i" command Vim will display --INSERT-- at the bottom
of the window. This indicates you are in Insert mode.
+---------------------------------------+
|A very intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
|-- INSERT -- |
+---------------------------------------+
If you press <Esc> to go back to Normal mode the last line will be made blank.
GETTING OUT OF TROUBLE
One of the problems for Vim novices is mode confusion, which is caused by
forgetting which mode you are in or by accidentally typing a command that
switches modes. To get back to Normal mode, no matter what mode you are in,
press the <Esc> key. Sometimes you have to press it twice. If Vim beeps back
at you, you already are in Normal mode.
==============================================================================
*02.3* Moving around
After you return to Normal mode, you can move around by using these keys:
h left *hjkl*
j down
k up
l right
At first, it may appear that these commands were chosen at random. After all,
who ever heard of using l for right? But actually, there is a very good
reason for these choices: Moving the cursor is the most common thing you do in
an editor, and these keys are on the home row of your right hand. In other
words, these commands are placed where you can type them the fastest
(especially when you type with ten fingers).
Note:
You can also move the cursor by using the arrow keys. If you do,
however, you greatly slow down your editing because to press the arrow
keys, you must move your hand from the text keys to the arrow keys.
Considering that you might be doing it hundreds of times an hour, this
can take a significant amount of time.
Also, there are keyboards which do not have arrow keys, or which
locate them in unusual places; therefore, knowing the use of the hjkl
keys helps in those situations.
One way to remember these commands is that h is on the left, l is on the
right and j points down. In a picture: >
k
h l
j
The best way to learn these commands is by using them. Use the "i" command to
insert some more lines of text. Then use the hjkl keys to move around and
insert a word somewhere. Don't forget to press <Esc> to go back to Normal
mode. The |vimtutor| is also a nice way to learn by doing.
For Japanese users, Hiroshi Iwatani suggested using this:
Komsomolsk
^
|
Huan Ho <--- ---> Los Angeles
(Yellow river) |
v
Java (the island, not the programming language)
==============================================================================
*02.4* Deleting characters
To delete a character, move the cursor over it and type "x". (This is a
throwback to the old days of the typewriter, when you deleted things by typing
xxxx over them.) Move the cursor to the beginning of the first line, for
example, and type xxxxxxx (seven x's) to delete "A very ". The result
should
look like this:
+---------------------------------------+
|intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
Now you can insert new text, for example by typing: >
iA young <Esc>
This begins an insert (the i), inserts the words "A young", and then exits
insert mode (the final <Esc>). The result:
+---------------------------------------+
|A young intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
DELETING A LINE
To delete a whole line use the "dd" command. The following line will
then move up to fill the gap:
+---------------------------------------+
|Found programming UNIX a hurdle |
|~ |
|~ |
|~ |
| |
+---------------------------------------+
DELETING A LINE BREAK
In Vim you can join two lines together, which means that the line break
between them is deleted. The "J" command does this.
Take these two lines:
A young intelligent ~
turtle ~
Move the cursor to the first line and press "J":
A young intelligent turtle ~
==============================================================================
*02.5* Undo and Redo
Suppose you delete too much. Well, you can type it in again, but an easier
way exists. The "u" command undoes the last edit. Take a look at this in
action: After using "dd" to delete the first line, "u" brings it
back.
Another one: Move the cursor to the A in the first line:
A young intelligent turtle ~
Now type xxxxxxx to delete "A young". The result is as follows:
intelligent turtle ~
Type "u" to undo the last delete. That delete removed the g, so the undo
restores the character.
g intelligent turtle ~
The next u command restores the next-to-last character deleted:
ng intelligent turtle ~
The next u command gives you the u, and so on:
ung intelligent turtle ~
oung intelligent turtle ~
young intelligent turtle ~
young intelligent turtle ~
A young intelligent turtle ~
Note:
If you type "u" twice, and the result is that you get the same text
back, you have Vim configured to work Vi compatible. Look here to fix
this: |not-compatible|.
This text assumes you work "The Vim Way". You might prefer to use
the good old Vi way, but you will have to watch out for small
differences in the text then.
REDO
If you undo too many times, you can press CTRL-R (redo) to reverse the
preceding command. In other words, it undoes the undo. To see this in
action, press CTRL-R twice. The character A and the space after it disappear:
young intelligent turtle ~
There's a special version of the undo command, the "U" (undo line) command.
The undo line command undoes all the changes made on the last line that was
edited. Typing this command twice cancels the preceding "U".
A very intelligent turtle ~
xxxx Delete very
A intelligent turtle ~
xxxxxx Delete turtle
A intelligent ~
Restore line with "U"
A very intelligent turtle ~
Undo "U" with "u"
A intelligent ~
The "U" command is a change by itself, which the "u" command undoes
and CTRL-R
redoes. This might be a bit confusing. Don't worry, with "u" and CTRL-R
you
can go to any of the situations you had. More about that in section |32.1|.
==============================================================================
*02.6* Other editing commands
Vim has a large number of commands to change the text. See |Q_in| and below.
Here are a few often used ones.
APPENDING
The "i" command inserts a character before the character under the cursor.
That works fine; but what happens if you want to add stuff to the end of the
line? For that you need to insert text after the cursor. This is done with
the "a" (append) command.
For example, to change the line
and that's not saying much for the turtle. ~
to
and that's not saying much for the turtle!!! ~
move the cursor over to the dot at the end of the line. Then type "x" to
delete the period. The cursor is now positioned at the end of the line on the
e in turtle. Now type >
a!!!<Esc>
to append three exclamation points after the e in turtle:
and that's not saying much for the turtle!!! ~
OPENING UP A NEW LINE
The "o" command creates a new, empty line below the cursor and puts Vim in
Insert mode. Then you can type the text for the new line.
Suppose the cursor is somewhere in the first of these two lines:
A very intelligent turtle ~
Found programming UNIX a hurdle ~
If you now use the "o" command and type new text: >
oThat liked using Vim<Esc>
The result is:
A very intelligent turtle ~
That liked using Vim ~
Found programming UNIX a hurdle ~
The "O" command (uppercase) opens a line above the cursor.
USING A COUNT
Suppose you want to move up nine lines. You can type "kkkkkkkkk" or you can
enter the command "9k". In fact, you can precede many commands with a number.
Earlier in this chapter, for instance, you added three exclamation points to
the end of a line by typing "a!!!<Esc>". Another way to do this is to use
the
command "3a!<Esc>". The count of 3 tells the command that follows to
triple
its effect. Similarly, to delete three characters, use the command "3x". The
count always comes before the command it applies to.
==============================================================================
*02.7* Getting out
To exit, use the "ZZ" command. This command writes the file and exits.
Note:
Unlike many other editors, Vim does not automatically make a backup
file. If you type "ZZ", your changes are committed and there's no
turning back. You can configure the Vim editor to produce backup
files, see |07.4|.
DISCARDING CHANGES
Sometimes you will make a sequence of changes and suddenly realize you were
better off before you started. Not to worry; Vim has a
quit-and-throw-things-away command. It is: >
:q!
Don't forget to press <Enter> to finish the command.
For those of you interested in the details, the three parts of this command
are the colon (:), which enters Command-line mode; the q command, which tells
the editor to quit; and the override command modifier (!).
The override command modifier is needed because Vim is reluctant to throw
away changes. If you were to just type ":q", Vim would display an error
message and refuse to exit:
E37: No write since last change (use ! to override) ~
By specifying the override, you are in effect telling Vim, "I know that what
I'm doing looks stupid, but I'm a big boy and really want to do this."
If you want to continue editing with Vim: The ":e!" command reloads the
original version of the file.
==============================================================================
*02.8* Finding help
Everything you always wanted to know can be found in the Vim help files.
Don't be afraid to ask!
To get generic help use this command: >
:help
You could also use the first function key <F1>. If your keyboard has a
<Help>
key it might work as well.
If you don't supply a subject, ":help" displays the general help window.
The creators of Vim did something very clever (or very lazy) with the help
system: They made the help window a normal editing window. You can use all
the normal Vim commands to move through the help information. Therefore h, j,
k, and l move left, down, up and right.
To get out of the help window, use the same command you use to get out of
the editor: "ZZ". This will only close the help window, not exit Vim.
As you read the help text, you will notice some text enclosed in vertical bars
(for example, |help|). This indicates a hyperlink. If you position the
cursor anywhere between the bars and press CTRL-] (jump to tag), the help
system takes you to the indicated subject. (For reasons not discussed here,
the Vim terminology for a hyperlink is tag. So CTRL-] jumps to the location
of the tag given by the word under the cursor.)
After a few jumps, you might want to go back. CTRL-T (pop tag) takes you
back to the preceding position. CTRL-O (jump to older position) also works
nicely here.
At the top of the help screen, there is the notation *help.txt*. This name
between "*" characters is used by the help system to define a tag (hyperlink
destination).
See |29.1| for details about using tags.
To get help on a given subject, use the following command: >
:help {subject}
To get help on the "x" command, for example, enter the following: >
:help x
To find out how to delete text, use this command: >
:help deleting
To get a complete index of all Vim commands, use the following command: >
:help index
When you need to get help for a control character command (for example,
CTRL-A), you need to spell it with the prefix "CTRL-". >
:help CTRL-A
The Vim editor has many different modes. By default, the help system displays
the normal-mode commands. For example, the following command displays help
for the normal-mode CTRL-H command: >
:help CTRL-H
To identify other modes, use a mode prefix. If you want the help for the
insert-mode version of a command, use "i_". For CTRL-H this gives you the
following command: >
:help i_CTRL-H
When you start the Vim editor, you can use several command-line arguments.
These all begin with a dash (-). To find what the -t argument does, for
example, use the command: >
:help -t
The Vim editor has a number of options that enable you to configure and
customize the editor. If you want help for an option, you need to enclose it
in single quotation marks. To find out what the 'number' option does, for
example, use the following command: >
:help 'number'
The table with all mode prefixes can be found here: |help-context|.
Special keys are enclosed in angle brackets. To find help on the up-arrow key
in Insert mode, for instance, use this command: >
:help i_<Up>
If you see an error message that you don't understand, for example:
E37: No write since last change (use ! to override) ~
You can use the error ID at the start to find help about it: >
:help E37
Summary: *help-summary* >
:help
< Gives you very general help. Scroll down to see a list of all
helpfiles, including those added locally (i.e. not distributed
with Vim). >
:help user-toc.txt
< Table of contents of the User Manual. >
:help :subject
< Ex-command "subject", for instance the following: >
:help :help
< Help on getting help. >
:help abc
< normal-mode command "abc". >
:help CTRL-B
< Control key <C-B> in Normal mode. >
:help i_abc
:help i_CTRL-B
< The same in Insert mode. >
:help v_abc
:help v_CTRL-B
< The same in Visual mode. >
:help c_abc
:help c_CTRL-B
< The same in Command-line mode. >
:help 'subject'
< Option 'subject'. >
:help subject()
< Function "subject". >
:help -subject
< Command-line option "-subject". >
:help +subject
< Compile-time feature "+subject'. >
:help EventName
< Autocommand event "EventName". >
:help digraphs.txt
< The top of the helpfile "digraph.txt".
Similarly for any other helpfile. >
:help pattern<Tab>
< Find a help tag starting with "pattern". Repeat <Tab> for
others. >
:help pattern<Ctrl-D>
< See all possible help tag matches "pattern" at once. >
:helpgrep pattern
< Search the whole text of all help files for pattern "pattern".
Jumps to the first match. Jump to other matches with: >
:cn
< next match >
:cprev
:cN
< previous match >
:cfirst
:clast
< first or last match >
:copen
:cclose
< open/close the quickfix window; press <Enter> to jump
to the item under the cursor
==============================================================================
Next chapter: |usr_03.txt| Moving around
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: