[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Estos comandos manejan expresiones balanceades, también llamadas sexps(9).
Avanza sobre una expresión balanceada (forward-sexp
).
Retrocede sobre una expresión balanceada (backward-sexp
).
Mata una expresión balanceada hacia adelante (kill-sexp
).
Mata una expresión balanceada hacia atrás (backward-kill-sexp
).
Transpone expresiones (transpose-sexps
).
Pone la marca después de la siguiente expresión (mark-sexp
).
Cada modo principal de lenguaje de programación personaliza la definición de las expresiones balanceadas para dicho lenguaje. Las expresiones balanceadas típicamente incluyen los símbolos, números, y constantes de cadenas, así como cualquier par de delimitadores emprejados y su contenido. Algunos lenguajes tienen formas oscuras de sintaxis de expresiones que nadie se ocupó de implementar en Emacs.
Por convencion, las teclas para estos comandos son todos caracteres Control-Meta. Generalmente operan con las expresiones igual que los caracteres Meta correspondientes operan con las palabras. por ejemplo, el comando C-M-b retrocede sobre una expresión balanceada, igual que M-b retrocede sobre una palabra.
Para avanzar sobre una expresión balanceada, utilice C-M-f
(forward-sexp
). Si el primer caracter significativo después del
punto es un delimitador de apertura (`(' en Lisp; `(', `[' o
`{' en C), C-M-f avanza hasta después del delimitador de cierre
correspondiente. Si el carácter es el principio de un símbolo, cadena, o
número, C-M-f avanza sobre él.
El comando C-M-b (backward-sexp
) retrocede sobre una
expresión balanceada. Las reglas detalladas son como las anteriores para
C-M-f, pero con la dirección invertida. Si hay caracteres prefijos
(comilla simple, comilla inclinada y coma, en Lisp) precediendo la
expresión, C-M-b retrocede sobre ellos también. Los comandos para
expresiones balanceadas mueven a través de los comentarios como si fuesen
espacio en blanco, en la mayoría de los modos.
C-M-f o C-M-b con un argumento repite la operación la cantidad especificada de veces; con un argumento negativo, se mueve en la dirección opuesta.
Se puede matar una expresión balanceada entera con C-M-k
(kill-sexp
) o C-M-DEL (backward-kill-sexp
).
C-M-k mata los caracteres que C-M-f saltaría, y
C-M-DEL mata los caracteres que C-M-b saltaría. En
algunas máquinas, C-M-DEL tecleado en la consola es un
comando para reiniciar; cuando es así, ud. no puede usarlo como comando
de Emacs. Este conflicto es infrecuente, sin embargo: generalmente la
tecla DEL para Emacs es en realidad BACKSPACE, y el comando
de reinicio es C-M-DELETE, de manera que no hay conflicto.
Un comando que suena un poco extraño pero que sin embargo es práctico
es C-M-t (transpose-sexps
), que traslada la expresión
balanceada anterior detrás de la siguiente. Un argumento sirve como
cantidad de repeticiones, y un argumento negativo traslada la expresión
balanceada anterior hacia atrás a través de las que la preceden (cancelando
el efecto de C-M-t con un argumeto positivo). Un argumento de cero,
en lugar de no hacer nada, traspone las expresiones balanceadas que terminan
en el punto y en la marca, o después de ellos.
Para establecer la región alrededor de la siguiente expresión balanceada
en el búfer, utilice C-M-@ (mark-sexp
), que establece la marca
en el mismo lugar adonde iría con C-M-f. C-M-@ acepta
argumentos como C-M-f. En particular, un argumento negativo es
útil para poner la marca al comienzo de la expresión balanceada anterior.
En los lenguajes que utilizan operadores infijos, como C, no es posible reconocer todas las expresiones balanceadas como tales porque puede haber varias posibilidades en una posición dada. Por ejemplo, el modo C no toma `foo + bar' como una expresión individual, aunque es una expresión de C; en su lugar, reconoce `foo' como una expresión y `bar' como otra, con el `+' como puntuación entre ambos. Tanto `foo + bar' como `foo' son elecciones legítimas para "la expresión después del punto" cuando el punto está en la `f', luego los comandos de expresiones deben elegir forzosamente una o la otra para operar. Observe que `(foo + bar)' se reconoce como una expresión individual en modo C, por los paréntesis.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Roberto on abril, 2 2007 using texi2html 1.76.