Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/vim71/doc/usr_27.esx
diff options
context:
space:
mode:
Diffstat (limited to 'vim71/doc/usr_27.esx')
-rw-r--r--vim71/doc/usr_27.esx603
1 files changed, 603 insertions, 0 deletions
diff --git a/vim71/doc/usr_27.esx b/vim71/doc/usr_27.esx
new file mode 100644
index 0000000..2543c29
--- /dev/null
+++ b/vim71/doc/usr_27.esx
@@ -0,0 +1,603 @@
+*usr_27.esx* Para Vim version 7.3. Último cambio: 28/3/2010
+
+ MANUAL DE USUARIO DE VIM - por Bram Moolenaar
+
+ Órdenes y patrones de búsqueda
+
+
+El capítulo 3 trató superficialmente los patrones de búsqueda |03.9|, pero
+Vim puede realizar búsquedas más complejas. Este capítulo explica los más
+comunes. Dispone de una explicación más detallada: |pattern|
+
+|27.1| Ignorar la distinción entre mayúsculas y minúsculas
+|27.2| Justificar el fin del archivo
+|27.3| Dirección relativa («offsets»)
+|27.4| Emparejar varios elementos
+|27.5| Alternativas
+|27.6| Rangos de caracteres
+|27.7| Clases de caracteres
+|27.8| Coincidir con un salto de línea
+|27.9| Ejemplos
+
+ Siguiente capítulo: |usr_28.txt| Plegar
+ Capítulo anterior: |usr_25.esx| Repetición
+Tabla de contenidos: |usr_toc.esx|
+
+==============================================================================
+*27.1* Ignorar la distinción entre mayúsculas y minúsculas
+
+Vim distingue entre mayúsculas y minúsculas al realizar un búsqueda de forma
+predefinida. «INCLUDE», «Include» e «include» son por ello tres palabras
+distintas, y una búsqueda encontraría sólo una de ellas.
+ Active ahora la opción 'ignorecase': >
+
+ :set ignorecase
+
+Si realiza otra búsqueda de «include», ésta devolvería «Include», «INCLUDE»
+e «InClUDe». Puede activar la opción 'hlsearch' (resaltar búsquedas) para
+ver fácilmente los patrones coincidentes.
+ Puede desactivar esta opción con: >
+
+ :set noignorecase
+
+Vamos a dejar esta opción activada, y realizar una búsqueda de
+«INCLUDE». Encontrará el mismo texto que «include». Active ahora la opción
+'smartcase': >
+
+ :set ignorecase smartcase
+
+Si tiene un patrón con al menos un carácter en mayúscula, la búsqueda no
+distinguirá entre mayúsculas y minúsculas. La idea es que no necesitaba
+escribir ese carácter en mayúscula, y que por ello lo que deseaba era
+encontrar coincidencias con distinción entre mayúsculas y minúsculas. ¡Qué
+inteligente!
+ Obtendría las siguientes coincidencias de activar ambas opciones:
+
+ patrón coincidencias ~
+ palabra palabra, Palabra, PALABRA, PaLaBRa etc.
+ Palabra Palabra
+ PALABRA PALABRA
+ PaLaBRa PaLaBRa
+
+
+DISTINCIÓN ENTRE MAYÚSCULAS Y MINÚSCULAS EN UN PATRÓN
+
+Puede anexar la cadena «\c» si desea ignorar esta distinción para un patrón
+en particular. Usar «\C» activará la distinción. Esto invalida las opciones
+'ignorecase' y 'smartcase', ya que usar «\c» o «\C» obvia el valor de estas
+opciones.
+
+ patrón coincidencias ~
+ \Cpalabra palabra
+ \CPalabra Palabra
+ \cpalabra palabra, Palabra, PALABRA, PaLaBrA, etc.
+ \cPalabra palabra, Palabra, PALABRA, PaLaBrA, etc.
+
+Una enorme ventaja de usar «\c» y «\C» es que se mantienen ligadas al
+patrón. Por ello, si repite un patrón desde el registro de búsquedas
+obtendrá el mismo resultado sin importar si cualquier cambio de 'ignorecase'
+y 'smartcase'.
+
+ Nota:
+ El uso del elemento «\» en patrones de búsqueda depende de la opción
+ 'magic'.
+ En estos capítulos daremos por sentado que 'magic' está activado, ya
+ que es la configuración estándar y recomendad. De cambiar 'magic'
+ muchos patrones de búsqueda no serían válidos.
+
+ Nota:
+ Si la búsqueda lleva más tiempo del esperado, puede interrumpir esta
+ con CTRL-C en Unix y CTRL-Break en MS-DOS y MS-Windows.
+
+==============================================================================
+*27.2* Justificar el fin del archivo
+
+Por omisión, una búsqueda hacia adelante se inicia buscando la cadena dada
+en la ubicación presente del cursor. Después continua hasta el final del
+archivo. Si no ha encontrado ninguna cadena, vuelve al inicio y busca desde
+el principio del archivo.
+ Tenga en cuenta que, de repetir la orden «n» para buscar la siguiente
+coincidencia, al final volverá a la primera. ¡Buscará para siempre si no nota
+esto! Vim le da una pista con la forma del siguiente mensaje:
+
+ La búsqueda ha llegado al FINAL, continuando desde el PRINCIPIO ~
+
+Si usa la orden «?» para buscar en dirección inversa obtendrá el siguiente
+mensaje:
+
+ La búsqueda ha llegado al FINAL, continuando desde el PRINCIPIO ~
+
+Aún así,no sabe cuando vuelve a la primera coincidencia. Una forma de ver
+esto es activando la opción 'ruler'.
+
+ :set ruler
+
+Muestra siempre la posición actual en la esquina inferior derecha de la
+ventana (en la línea de estado, de existir). Presenta este aspecto:
+
+ 101,29 84% ~
+
+El primer número es el número de la línea del cursor. Recuerde el número de
+la línea inicial, de manera pueda comprobar si ya pasó por esta posición.
+
+
+BÚSQUEDA «NOWRAP»
+
+Para evitar continuar la búsqueda al alcanzar el fin del archivo, use la
+siguiente orden.
+
+ :set nowrapscan
+
+Ahora verá un mensaje de error cuando la búsqueda llega al final del
+archivo:
+
+ E385: La búsqueda ha llegado al FINAL sin una coincidencia para:
+ forever ~
+
+Así, puede encontrar todas las coincidencias desplazándose al inicio del
+archivo con «gg», y buscar hasta ver este mensaje.
+ Si busca en otra dirección, usando, «?», obtendrá:
+
+ E385: La búsqueda ha llegado al PRINCIPIO sin una coincidencia
+ para: forever ~
+
+==============================================================================
+*27.3* Dirección relativa («Offsets»)
+
+Por omisión, la orden de búsqueda posiciona el cursor al inicio del
+patrón. Puede hacer que Vim lo posicione en algún lugar especificando una
+dirección relativa. Para la orden de búsqueda hacia delante «/», la
+dirección relativa se especifica añadiendo una barra inversa («/») y la
+dirección relativa: >
+
+ /omisión/2
+
+Esta orden busca el patrón «omisión», y después se desplaza al inicio de la
+segunda línea, más allá del patrón. De usar esta orden en el párrafo
+anterior, Vim encontraría la palabra «omisión» en la primera línea. Acto
+seguido, el cursor se posicionaría dos líneas más abajo, para acabar en la
+dirección relativa.
+
+El cursor se posicionara al inicio de la línea presente un número n de
+líneas a partir de la coincidencia, si la dirección relativa es un simple
+número. El número de dirección relativa puede ser positivo o negativo. De
+ser positivo, el cursor se desplaza hacia abajo un número n de líneas; si es
+negativo, se desplaza hacia arriba.
+
+
+CARÁCTER DE DIRECCIÓN RELATIVA
+
+La dirección relativa «e» indica una dirección a partir del final de la
+coincidencia. Desplaza el cursor al último carácter de la coincidencia. La
+orden :>
+
+ /const/e
+
+pone el cursor sobre la «t» de «const».
+ Añadir un número le desplazará hacia delante tantos caracteres desde la
+posición inicial. Esta orden desplaza el carácter a la posición anterior
+a la coincidencia: >
+
+ /const/e+1
+
+Un número positivo desplaza el cursor a la derecha, un número negativo lo
+desplaza a la izquierda. Ejemplo: >
+
+ /const/e-1
+
+desplaza el cursor a la «s» de «const».
+
+Si la dirección empieza con una «b», el cursor se desplazará al inicio del
+patrón. No es muy útil, ya que se logra lo mismo dejando la «b». Es de
+utilidad al añadir o sustraer un número. Entonces, el cursor se desplaza
+hacia delante o atrás tantos caracteres. Por ejemplo: >
+
+ /const/b+2
+
+Desplaza el cursor al principio de la coincidencia, dos caracteres a la
+derecha. Por ello, finaliza en «n».
+
+
+REPETICIÓN
+
+Para repetir una búsqueda del último patrón dado, pero con una dirección
+relativa distinta, omita el patrón: >
+
+ /that
+ //e
+
+Equivale a: >
+
+ /that/e
+
+Para repetir con el mismo desplazamiento:>
+
+ /
+
+«n» hace lo mismo. Para repetir mientras elimina una dirección usada
+anteriormente: >
+
+ //
+
+
+BUSCAR EN SENTIDO INVERSO
+
+La orden «?» usa las direcciones relativas de la misma forma, pero debe usar
+«?» para separar la dirección del patrón, en lugar de «/»: >
+
+ ?const?e-2
+
+La «b» y la «e» mantienen su significado, no cambien de dirección con el uso
+de «?».
+
+
+POSICIÓN INICIAL
+
+Al iniciar una búsqueda, generalmente comienza por la posición del
+cursor. Esto puede causar problemas cuando especifica un desplazamiento
+relativo de línea. Por ejemplo: >
+
+ /const/-2
+
+Esto encuentra la siguiente aparición de «const», y después se desplaza dos
+líneas haci arriba. Si usa «n» para repetir la búsqueda, puede que Vim la
+inicie en la posición actual, encontrando la misma coincidencia de «const».
+Al usar el mismo desplazamiento relativo, ha vuelto al punto inicio.
+¡Se quedaría atascado!
+ Aún pero: supongo que existe otra aparición de «const» en la siguiente
+línea. Repetir la búsqueda hacia adelante encontraría esta coincidencia,
+y desplazaría el cursor dos líneas atrás. ¡Estaría desplazando el cursor
+hacia atrás todo el rato!
+
+Al especificar un carácter de desplazamiento relativo, Vim dará una
+compensación. Por ello, la búsqueda se inicia unos cuantos caracteres
+delante o detrás, para no encontrar otra vez la misma coincidencia.
+
+==============================================================================
+*27.4* Emparejar varios elementos
+
+El elemento «*» especifica que el elemento precedente puede emparejarse un
+número ilimitado de veces. Por ello: >
+
+ /a*
+
+coincide con «a», «aa», «aaa», etc. Pero también « » (una cadena vacía), ya
+que se incluye por omisión cero veces.
+ «*» sólo afecta al su elemento precedente. Por ello, «ab*» encuentra «a»,
+«ab», «abb», «abbb», etc. Para encontrar varias apariciones de una cadena
+completa, ésta ha de estar agrupada bajo un mismo elemento. Esto se hace
+colocando «\(» antes de la cadena, y «\)» después. Por ello, la siguiente
+orden: >
+
+ /\(ab\)*
+
+encuentra «ab», «abab», «ababab», etc. También « ».
+
+Para evitar que coincida con una cadena vacía, use «\+». Esto encuentra una
+o
+más apariciones del elemento precedente. >
+
+ /ab\+
+
+Encuentra «ab», «abb», «abbb», etc. No coincide con «a» si no va seguido de
+«b».
+
+Para hacer coincidir un elemento opcional, utilice «\=». Ejemplo:>
+
+ /directorio\=
+
+Encuentra «directorio» y «directorios».
+
+
+RECUENTOS ESPECÍFICOS
+
+Use la forma «\{n,m}» para emparejar un número específico de elementos. «n»
+y «m» son números. El elemento anterior a éstos se emparejará con «n» un
+número «m» de veces |inclusive|. Ejemplo: >
+
+ /ab\{3,5}
+
+empareja «abbb», «abbbb» y «abbbbb».
+ El valor predefinido cero en ausencia de «n». El valor predefinido es
+infinito en ausencia de «m». En ausencia de «m», se empareja exactamente
+«n» veces.
+Ejemplos:
+
+ patrón número de coincidencias ~
+ \{,4} 0, 1, 2, 3 o 4
+ \{3,} 3, 4, 5, etc.
+ \{0,1} 0 o 1, igual que \=
+ \{0,} 0 o más, igual que *
+ \{1,} 1 o más, igual que \+
+ \{3} 3
+
+
+REDUCIR EL NÚMERO DE COINCIDENCIAS
+
+Los elementos encajan con cuantos caracteres pueden encontrar. Para encontrar
+el menor número posible de coincidencias, use «\{-n,m}». Funciona igual
+que «\{n,m}», pero se mostrará la menor cantidad posible.
+
+ /ab\{-1,3}
+
+Encontraría «ab» en «abbb». En realidad, nunca coincidirá con mas de una «b»,
+ya que no hay razón para coincidir con más. Se precisa algo más para forzar
+un número de coincidencias mayor que el límite más bajo.
+ Las mismas reglas están presentes al eliminar «n» y «m». También es posible
+eliminar ambos números, dejando «\{-}». Esto encuentra el elemento anterior
+a él cero o más veces, pero cuantas menos posibles. El elemento en sí siempre
+se empareja cero veces. Es de utilidad en combinación con algo más.
+Ejemplo: >
+
+ /a.\{-}b
+
+Esto coincide con «axb» en «axbxb». De usar este patrón >
+
+ /a.*b
+
+...intentaría coincidir con tantos caracteres como es posible con «.*», y
+por ello se empareja por completo con «axbxb».
+
+==============================================================================
+*27.5* Alternativas
+
+El operador «or» dentro de un patrón es «\|». Ejemplo: >
+
+ /foo\|bar
+
+Esto encuentra «foo» o «bar». Puede concatenar más alternativas: >
+
+ /uno\|dos\|tres
+
+Coincide con «uno», «dos» y «tres».
+ Para encontrar varias coincidencias debe insertar la cadena completa entre
+«\(» y «\)»: >
+
+ /\(foo\|bar\)\+
+
+Esto encuentra «foo», «foobar», «foofoo», «barfoobar», etc.
+ Otro ejemplo: >
+
+ /end\(if\|while\|for\)
+
+Esto coincide con «endif», «endwhile» y «endfor».
+
+Un elemento relacionado es «\&». Esto requiere que ambas alternativas
+coincidan en el mismo lugar. La coincidencia resultante usa la última
+alternativa. Ejemplo: >
+
+ /forever\&...
+
+Esto coincide on «for» en «forever». No coincide con «fortuin», por ejemplo.
+
+==============================================================================
+*27.6* Rangos de caracteres
+
+Puede usar «/a|b\|c» para encontrar «a», «b» o «c». Esto se extiende si
+desea encontrar todas las letras de la «a» a la «z». Existe una manera más
+corta: >
+
+ /[a-z]
+
+La construcción [] encuentra un sólo carácter. Especifique dentro de este
+los caracteres a encontrar. Puede incluir una lista larga de caracteres,
+como esto: >
+
+ /[0123456789abcdef]
+
+Esto encuentra cualquier carácter incluido. Puede especificar un rango para
+encontrar caracteres consecutivos. «0-3» significa «01234». «w-z» significa
+«wxyz». Por ello, puede acortar la orden anterior: >
+
+ /[0-9a-f]
+
+Para encontrar el carácter «-», tiene que aparecer al principio o final del
+rango. Estos caracteres especiales se aceptan para facilitar su uso dentro
+de un rango [] (en realidad, puede usarlos en cualquier lugar dentro del
+patrón de búsqueda):
+
+ \e <Esc>
+ \t <Tab>
+ \r <CR>
+ \b <BS>
+
+Existen unas cuantos casos especiales para los rangos [], consulte |/[]|
+para una completa información.
+
+
+RANGO COMPLEMENTADO
+
+Use «^» al principio del rango para evitar emparejar un carácter en
+particular. El elemento [] emparejará todo menos los caracteres
+incluidos. Ejemplo: >
+
+ /"[^"]*"
+<
+ " dobles comillas
+ [^"] todo carácter que no es una comilla doble
+ * tantos como sea posible
+ " otras dobles comillas
+
+Esto coincide con "foo" y "3!x", incluyendo las comillas dobles.
+
+
+RANGOS PREDEFINIDOS
+
+Existe un número de rangos usados a menudo. Vim ofrece accesos directos para
+esto. Por ejemplo: >
+
+ /\a
+
+Encuentra caracteres alfabéticos. Esto equivale a usar «/[a-zA-Z]». Aquí hay
+más ejemplos:
+
+ elemento coincidencias equivalente ~
+ \d dígito [0-9]
+ \D no-dígito [^0-9]
+ \x dígito hexadecimal [0-9a-fA-F]
+ \X dígito no hexadecimal [^0-9a-fA-F]
+ \s espacio vacío [ ] (<Tab> y <Space>)
+ \S caracteres no vacíos [^ ] (no <Tab> y <Space>)
+ \l alfa minúscula [a-z]
+ \L alfa no mayúscula [^a-z]
+ \u alfa mayúscula [A-Z]
+ \U alfa no mayúscula [^A-Z]
+
+ Nota:
+ El uso de estos rangos predefinidos es más rápido que el rango de
+ caracteres que simbolizan.
+ Estos elementos no se pueden usar dentro de []. Así, «[\d\l]» NO
+ funciona para encontrar un dígito o un alfa minúscula. En lugar
+ de ello, use «\(\d\|\l\)».
+
+Consulte |/\s| para la lista completa de rangos.
+
+==============================================================================
+*27.7* Clase de carácter
+
+El rango de carácter empareja un conjunto específico de caracteres. Se
+parece una clase de carácter, pero con una importante diferencia: puede
+redefinir el conjunto de caracteres sin cambiar el patrón de búsqueda.
+ Por ejemplo, busque este patrón: >
+
+ /\f\+
+
+Los elementos «\f» simbolizan caracteres de nombre de archivo. Así, esto
+empareja una secuencia de caracteres que pueden ser un nombre de archivo.
+Qué caracteres pueden formar parte de un nombre de archivo dependen del
+sistema que esté usando. En MS-Windows, la barra inversa está incluida, pero
+no en Unix. Puede especificar esto con la opción 'isfname'. El valor por
+omisión en Unix es: >
+
+ :set isfname
+ isfname=@,48-57,/,.,-,_,+,,,#,$,%,~,=
+
+El valor predefinido depende del sistema. Así, puede crear un patrón de
+búsqueda con «\f» para emparejar un nombre de archivo, y ajustarse
+automáticamente al sistema en el que lo está usando.
+
+ Nota:
+ En realidad, Unix permita usar casi cualquier carácter, incluyendo
+ espacios. Incluir estos caracteres en 'isfname' sería teóricamente
+ correcto, pero imposibilitaría encontrar el fin del nombre de archivo
+ en el texto. Así, el valor predefinido de 'isfname' es importante.
+
+Las clases de caracteres son:
+
+ elemento coinicidencias opción ~
+ \i caracteres de identificación 'isident'
+ \I como \i, excluyendo dígitos
+ \k carácter de palabra clave 'iskeyword'
+ \K como \k, excluyendo dígitos
+ \p caracteres imprimibles 'isprint'
+ \P como \p, excluyendo dígitos
+ \f caracteres de nombre de archivo 'isfname'
+ \F como \f, excluyendo dígitos
+
+==============================================================================
+*27.8* Coincidir con un salto de línea
+
+Vim puede encontrar un patrón que incluye un salto de línea. Debe especificar
+la aparición del salto de línea, ya que todos los elementos mencionados hasta
+ahora no se emparejan con un salto de línea.
+ Para comprobar si hay un salto de línea en un lugar específico, use el
+elemento «\n»: >
+
+ /la\npalabra
+
+Esto coincidiría en una línea que termina con «la», seguida de una que
+comienza con «palabra». Para encontrar también «la palabra», tendrá que
+emparejar el espacio o el salto de línea. Para ello, use el elemento «\_s»:
+>
+
+ /la\_spalabra
+
+Para permitir cualquier cantidad de espacio en blanco:>
+
+ /la\_s\+palabra
+
+Esto también coincide cuando «la » está al final de la línea, y «palabra» al
+inicio de la siguiente.
+
+«\s» coincide con espacio en blanco, «\_s» coincide con espacio en blanco o
+un salto de línea. De forma parecida, «\a» coincide con un carácter
+alfabético o un salto de línea. Las otras clases de caracteres y rangos se
+pueden modificar de la misma forma insertando un «_».
+
+Puede hacer coincidir muchos otros elementos con un salto de línea
+prefijando «\_». Por ejemplo, «\_.» coincide con cualquier carácter o salto
+de línea.
+
+ Nota:
+ «\_.*» empareja todo hasta el final del archivo. Use esto con
+ cuidado, ya que puede reducir la velocidad de una orden de búsqueda.
+
+Otro ejemplo es «\_[]», un rango de carácter que incluye un salto de línea:
+>
+
+ /"\_[^"]*"
+
+Esto encuentra un texto entre comillas dobles que se puede dividir en varias
+líneas.
+
+==============================================================================
+*27.9* Ejemplos
+
+Aquí dispone de unos cuantos patrones de búsqueda que puede encontrar
+útiles. Esto muestra cómo combinar los elementos anteriormente mencionados.
+
+
+ENCONTRAR UNA MATRÍCULA DE COCHE DE CALIFORNIA
+
+Un ejemplo de un número de matrícula es «1MGU103». Tiene un dígito, tres
+letras mayúsculas y tres dígitos. Puede insertar esto en un patrón búsqueda
+de la siguiente manera: >
+
+ /\d\u\u\u\d\d\d
+
+Otra forma es especificar que hay tres dígitos y letras, con un recuento: >
+
+ /\d\u\{3}\d\{3}
+
+O usando rangos [] en su lugar: >
+
+ /[0-9][A-Z]\{3}[0-9]\{3}
+
+¿Cual debería usar? Él que recuerde. La manera sencilla que puede recordar
+es más rápida que la compleja que no puede. Si los puede recordar todos,
+evite el último, ya que es más lento de teclear y de ejecutar.
+
+
+ENCONTRAR UN IDENTIFICADOR
+
+En programas C (y muchos otros lenguajes de programación), un identificador
+empieza con una letra seguida de letras y dígitos. Puede usar
+subrayados. Puede encontrar esto con: >
+
+ /\<\h\w*\>
+
+«\<» y «\>» se usan para encontrar palabras completas.«\h» simboliza
+«[A-Za-z_]», y «\w» simboliza «[0-9A-Za-z_]».
+
+ Nota:
+ «\<» y «\>» dependen de la opción 'iskeyword'. De incluir un «-»,
+ por ejemplo, «ident-» no se encontrará. Use lo siguiente en esta
+ situación: >
+
+ /\w\@<!\h\w*\w\@!
+<
+ Esto revisa se «\w» no se empareja antes o después de un
+ identificador. Consulte |/\@<!| and |/\@!|.
+
+==============================================================================
+
+Siguiente capítulo: |usr_28.txt| Plegar
+
+Copyright: véase |manual-copyright| vim:tw=78:ts=8:ft=help:norl:
+
+==============================================================================
+
+Traducción del capítulo: Omar Campagne Polaino
+
+Proyecto: |vim-doc-es|
+