Paso 1: Instalar Apache y Permitir el Firewall
El servidor Web Apache es actualmente el más popular del mundo. Está bien documentado, y ha sido ampliamente utilizado en la historia de la web, lo que hace que sea una gran opción por defecto para montar un sitio web (Más información).
Podemos instalar Apache facilmente desde el gestor de paquetes de Ubuntu,
apt . Un gestor de paquetes nos permite instalar con mayor facilidad un software desde un repositorio mantenido por Ubuntu. Puede aprender más sobre cómo utilizar apt aquí.
Para nuestros propósitos, podemos iniciar escribiendo los siguientes comandos:
Ya que estamos utilizando el comando
sudo , estas operaciones son ejecutadas con privilegios de administrador, por lo que le pedirá la contraseña para verificar sus intenciones.
Una vez que haya ingresado su contraseña,
apt le dirá qué paquetes planea instalar y cuánto espacio adicional ocuparán en su disco. Ingrese Y y presione Enter para continuar, y la instalación continuará.Establecer ServerName para Suprimir los Errores de Sintaxis
A continuación, agregamos una sola línea al archivo
/etc/apache2/apache2.conf para suprimir un mensaje de advertencia. Si no se define ServerName globalmente, recibirá la siguiente advertencia cuando compruebe la configuración de Apache para los errores de sintaxis:
Abra el archivo de configuración principal con su editor de texto:
Dentro, en la parte inferior del archivo, agregue una directiva
ServerName , apuntando a su nombre de dominio principal. Si no tiene un nombre de dominio asociado con su servidor, puede utilizar la dirección IP pública de su servidor:
/etc/apache2/apache2.conf
Guarde y cierre el archivo cuando termine.
Después, revise los errores de sintaxis escribiendo:
Puesto que hemos añadido la directiva global
ServerName , todo lo que debe ver es:
Reinicie Apache para implementar los cambios:
Ahora puede comenzar a ajustar el firewall.
Ajustar el Firewall para Permitir el Tráfico Web
Ahora, asumiendo que ha seguido las instrucciones iniciales de configuración del servidor para habilitar el firewall UFW, asegúrese de que el firewall permita el tráfico HTTP y HTTPS. Puede asegurarse de que UFW tiene un perfil de aplicación para Apache así:
Si observa el perfil
Apache Full , deberia mostrar que habilita el tráfico a los puertos 80 y 443:
Permitir el tráfico entrante para ese perfil:
Usted puede hacer un chequeo inmediato para verificar que todo salió según lo planeado visitando la dirección IP pública de su servidor en su navegador web (vea la nota en el siguiente encabezado para averiguar cuál es su dirección IP pública si no tiene esta información ya):
Verá la página web predeterminada de Apache y Ubuntu 16.04, que está disponible para fines informativos y de prueba. Debe ser algo como esto:
Si usted ve esta página, entonces su servidor web está correctamente instalado y accesible a través del firewall.
Si no la tienes puedes añadirla con los siguientes comandos (Más información):
¿Cómo Encontrar la Dirección IP Pública de tu Servidor?
Si no conoce cual es la dirección IP pública de su servidor, existen varias formas de averiguarlo. Usualmente esta es la dirección que utiliza para conectarse a su servidor a través de SSH.
Desde la línea de comando, puede encontrar esto de varias formas, primero puede utilizar la herramienta
iproute2 para obtener su dirección escribiendo esto:
Esto regresará 1 o 2 líneas. Ambas son correctas, pero el equipo sólo puede ser capaz de usar una de ellas, así que es libre de probar con cada una de ellas.
Un método alternativo es utilizar la utilidad
curl para ponerse en contacto con una parte externa que le diga cómo se ve su servidor. Puede hacer esto preguntando a un servidor específico cuál es su dirección IP:
Independientemente del método que utilice para obtener su dirección IP, puede escribirla en la barra de direcciones de tu navegador para accesar a su servidor.
Paso 2: Instalar MySQL
Ahora que ya tenemos nuestro servidor web configurado y corriendo, es el momento de instalar MySQL. MySQL es un sistema de gestión de base de datos. Básicamente, se encarga de organizar y facilitar el acceso a las bases de datos donde nuestro sitio puede almacenar información.
Una vez más, podemos usar
apt para adquirir e instalar nuestro software. Esta vez, también vamos a instalar otros paquetes "auxiliares" que permitirán a nuestros componentes comunicarse unos con otros:
Note: En este caso, no tiene que ejecutar
sudo apt-get update antes del comando. Esto se debe a que recientemente lo ejecutamos al instalar Apache. El índice de paquetes en nuestro servidor ya debe estar al día.
Una vez más, se le mostrará una lista de los paquetes que se van a instalar, junto con la cantidad de espacio en disco que ocupará. Introduzca Y para continuar.
Durante la instalación, el servidor le pedirá que seleccione y confirme una contraseña para el usuario "root" de MySQL. Esta es una cuenta administrativa en MySQL que ha aumentado privilegios. Piense en ello como algo similar a la cuenta de root para el propio servidor (la que está configurando ahora es una cuenta específica de MySQL). Asegúrese de que sea una contraseña segura, única, y no lo deje en blanco.
Cuando la instalación se haya completado, ejecutaremos un script simple de seguridad que nos permite eliminar algunas configuraciones peligrosas y bloquear un poco el acceso a nuestro sistema de base de datos. Inicie el script interactivo ejecutando:
Le pedirá que introduzca la contraseña que estableció para la cuenta root de MySQL. A continuación, le preguntará si desea configurar el
VALIDATE PASSWORD PLUGIN (Plugin de Validación de Contraseñas).
Advertencia: La activación de esta función es algo así como una cuestión de criterio. Si se habilita, las contraseñas que no coinciden con los criterios especificados serán rechazadas por MySQL con un error. Esto causará problemas si se utiliza una contraseña débil en conjunción con el software que configura automáticamente las credenciales de usuario de MySQL, como los paquetes de Ubuntu para phpMyAdmin. Es seguro dejar la validación desactivado, pero siempre se debe utilizar contraseñas únicas y fuertes para las credenciales de base de datos.
Ingrese y para sí, o cualquier otra cosa para continuar sin habilitar.
Le pedirá que seleccione un nivel de validación de contraseña. Tenga en cuenta que si introduce 2, para el nivel más alto, recibirá errores al intentar establecer cualquier contraseña que no contiene números, letras mayúsculas, minúsculas y caracteres especiales, o que se basa en las palabras del diccionario comunes.
Si ha habilitado la validación de contraseña, se muestra una fuerza de contraseña para la contraseña de root existente, y le preguntará si desea cambiar la contraseña. Si no está satisfecho con su contraseña actual, introduzca n para el "no" en la consola:
Para el resto de las preguntas, hay que ingresar Y y después pulsar Enter en cada pregunta. Esto eliminará algunos usuarios de ejemplo y la base de datos de prueba, desactivará las conexiones root remotas, y cargará estas nuevas reglas para que MySQL respete inmediatamente los cambios que hemos realizado.
En este punto, el sistema de base de datos ya está configurado y podemos seguir adelante.
Paso 3: Instalar PHP
PHP es el componente de nuestra configuración que procesará código para mostrar contenido dinámico. Puede ejecutar secuencias de comandos, conectarse a nuestras bases de datos MySQL para obtener información, y entregar el contenido procesado a nuestro servidor web para mostrarlo.
Una vez más podemos aprovechar el sistema
apt para instalar nuestros componentes. Vamos a incluir algunos paquetes de ayuda, así, por lo que el código PHP se puede ejecutar en el servidor Apache y hablar con nuestra base de datos MySQL:
Esto deberá instalar PHP sin ningún problema. Vamos a probar esto en un momento.
En la mayoría de los casos, vamos a querer modificar la forma en que Apache sirve archivos cuando se solicita un directorio. Actualmente, si un usuario solicita un directorio del servidor, Apache buscará primero un archivo llamado
index.html . Nosotros queremos decirle a nuestro servidor web que elija los archivos PHP de preferencia, por lo que vamos a hacer Apache busque un archivo index.php primero.
Para ello, escriba éste comando para abrir el archivo
dir.conf en un editor de texto con privilegios de root:
Se verá de forma similar a esto:
/etc/apache2/mods-enabled/dir.conf
Queremos mover el índice del archivo PHP destacandolo a la primera posición después de la especificación del
DirectoryIndex , así:
/etc/apache2/mods-enabled/dir.conf
Cuando haya terminado, guarde y cierre el archivo presionando "CTRL-X". Va a tener que confirmar el guardado ingresando "Y" y luego pulsando "Enter" para confirmar la ubicación de almacenamiento de archivos.
Después de esto, tenemos que reiniciar el servidor web Apache para que nuestros cambios sean reconocidos. Puede hacerlo hacerlo ejecutando esto:
También podemos comprobar el estado del servicio de
apache2 a través de systemctl :
Instalación de Módulos de PHP
Para mejorar la funcionalidad de PHP, podemos instalar opcionalmente algunos módulos adicionales.
Para ver las opciones disponibles para los módulos de PHP y bibliotecas, se puede canalizar los resultados de la búsqueda
apt-cache dentro de less , un localizador que le permite desplazarse a través de la salida de otros comandos:
Use las teclas de flecha para desplazarse hacia arriba y hacia abajo, y q para salir.
Los resultados son todos los componentes opcionales que se pueden instalar. Se le dará una breve descripción de cada uno:
Para obtener más información sobre lo que hace cada módulo, puede buscar en Internet, o se puede ver en la descripción larga del paquete escribiendo:
Habrá una gran cantidad de salida, con un solo campo llamado
Description-en que tendrá una explicación más larga de la funcionalidad que proporciona el módulo.
Por ejemplo, para averiguar lo que hace el módulo
php-cli , podríamos escribir esto:
Junto con una gran cantidad de otra información, encontrará algo que se parece a esto:
Si después de investigar, decide que le gustaría instalar un paquete, puede hacerlo utilizando el comando
apt-get install como lo hemos venido haciendo para nuestro otro software.
Si decidimos que necesitamos
php-clies , podemos escribir:
Si desea instalar más de un módulo, puede hacerlo listando cada uno, separados por un espacio, después del comando
apt-get install , algo así:
En este punto, LAMP está instalado y configurado. Sin embargo, todavía debemos probar nuestro PHP.
Paso 4: Prueba del Procesador PHP en el Servidor Web
Con el fin de probar que nuestro sistema se ha configurado correctamente para PHP, podemos crear un script PHP muy básico.
Vamos a llamar a este script
info.php . Para que Apache pueda buscar el archivo y lo trabaje correctamente, se debe guardar en un directorio muy específico, al cual se le conoce como "raíz".
En Ubuntu 16.04, este directorio se encuentra en
/var/www/html/ . Podemos crear el archivo en esa ubicación ejecutando:
Esto abrirá un archivo en blanco. Queremos poner el texto siguiente, que es el código PHP válido, dentro del archivo:
info.php
Cuando haya terminado, guarde y cierre el archivo.
Ahora podemos probar si nuestro servidor web puede visualizar correctamente el contenido generado por un script PHP. Para probar esto, sólo tenemos que visitar esta página en nuestro navegador web. De nuevo necesitará la dirección IP pública del servidor.
La dirección que desea visitar será:
La página que verá debe ser algo como esto:
Esta página básicamente le da información sobre el servidor desde la perspectiva de PHP. Es útil para la depuración y para asegurarse de que los ajustes se están aplicando correctamente.
Si esto fue un éxito, entonces su PHP está funcionando como se esperaba.
Es posible que desee eliminar este archivo después de esta prueba, ya que en realidad podría dar información sobre el servidor a los usuarios no autorizados. Para ello, puede escribir lo siguiente:
Siempre se puede volver a crear esta página si necesita acceder a la información nuevamente.
|
Instalar Servidor con Apache
Comandos Vi (Editor de textos linux)
1. Comandos Ultra Habituales
Vim dispone de muchísimos comandos y macros. En esta sección pondremos los mínimos imprescindibles para poder editar con soltura. Aunque no seas usuario de Vim o no te guste, es útil conocer este conjunto mínimo de comandos porque Vi está disponible en cualquier máquina Unix (lo especifica el estándar POSIX).
Añadir e insertar: a / iEntra en modo edición en la posición anterior / actual del cursor.
Añadir debajo: oInserta una nueva linea en blanco debajo de la actúal y entra en modo edición en esa nueva línea
Deshacer y rehacer: u / Control-RDeshacer / Rehacer la última acción (tiene varios niveles)
Volver al estado de hace X minutos, segundos o horas: :earlier 10s/:earlier 10m/:earlier 10hVuelve al estado en el que estaba el fichero en el tiempo especificado. Por ejemplo si ponemos :earlier 10m volverá al estado de hacer diez minutos (además de "m" podemos poner "s" para los segundos y "h" para las horas.)
Suprimir carácter y línea: x / ddSuprime el carácter/línea bajo el cursor. Si escribimos un número antes del comando (por ejemplo "12dd") se borrarán el número especificado de carácteres o líneas
Guardar: :w / :waGuardar / Guardar todas las pestañas. Si ponemos una exclamación al final (":w!") forzamos a guardar sin confirmación
Salir sin guardar: :q / :qaSalir / salir de todas las pestañas. Si ponemos una exclamación al final (":q!") forzamos a salir sin confirmación
Guardar y salir: :x / :xaGuardar y salir. Si ponemos una exclamación al final (":x!") forzamos a salir sin confirmación
Ir a linea: nggVa a la línea n, por ejemplo, si escribimos "10gg" irá a la linea 10. Si no esribimos número de linea (sólo "gg"), va al principio del fichero.
Ir al final del fichero: GVa al final del fichero
Buscar: /termino_busquedaBusca el término especificado tras la barra en el texto
Buscar hacia atrás: ?cadena< /dt>Busca el término especificado tras el ? hacia atrás en el texto.
Siguiente /anterior resultado: n / NSiguiente / anterior resultado de la búsqueda
Preparar pegado externo: set paste / :set nopaste:set paste pone el vim en modo "pegar". En este modo se desactiva cualquier formateado automático de modo que podamos pegar lineas con el ratón sin que nos las descoloque. :set nopaste se utiliza para volver al modo normal con formateado automático. Esto es muy útil para pegar con el ratón desde programas externos al Vim (en la sección "Copiar, pegar, insertar" veremos otra forma de pegar para texto interno a Vim.)
Sustituir texto: :%s/cadena 1/cadena 2/gSustituye todo el fichero cada ocurrencia de cadena 1 por cadena 2
Repetir última modificación: .Repite la última modificación que hayamos realizado.Moverse a próximo carácter: f-carácterSe mueve al carácter indicado. Por ejemplo si pulsamos "f-i" estándo al principio de esta linea se moverá a la palabra "indicado." Podemos avanzar hasta el siguiente carácter pulsando punto y coma (;). Este comando es muy útil para moverse rápidamente a un punto determinado dentro de un párrafo.
2. Pestañas, subdivisiones y sesiones
Vim nos permite editar varios ficheros o varias partes de un mismo fichero simultaneamente. Para ello nos proporciona pestañas (similares a las pestañas de los navegadores) y subdivisiones ("splits"). Además nos permite guardar las sesiones de edición, incluyendo opciones usadas, pestañas, archivos cargados en las pestañas, y subdivisiones creadas dentro de cada pestaña, para poder recuperarlas en cualquier momento. En mi caso suelo trabajar abriendo cada uno de los ficheros sobre los que estoy trabajando en una pestaña, y creo subdivisiones cuando quiero ver varias partes de un fichero al mismo tiempo.
Cargar archivo: :e nombre_del_archivoAbre el archivo especificado en la pestaña actúal. Si no queremos escribirlo podemos poner ":e ." y se nos abrirá un navegador de ficheros en modo texto muy intuitivo (se usa con los cursores e intro para abrir fichero o entrar en directorios) desde el cual podremos seleccionar el fichero
Abrir nueva pestaña: tabeCrea una nueva pestaña vacía. Normalmente cargaremos algo en la pestaña usando el comando ":e" (ver punto anterior). La pestaña se puede cerrar con :tabc ("tab close") o con los :w, :q y :x habituales (si no añadimos "a" al final de estos comandos, operarán sólo sobre la pestaña actual; si lo añadimos (":wa!") operarán sobre todas las pestañas abiertas.
Ir a siguiente / anterior pestaña: gt / gTCambiar a pestaña siguiente / pestaña anterior. También podemos ir directamente a la primera o la última con :tabfirst y :tablast
Crear subdivisión horizontal o vertical :split / :vsplitCrea, dentro de la pestaña actúal, una subdivisión independiente horizontal (":split") o vertical (":vsplit", más útil para monitores panorámicos.) Podemos movernos entre las subdivisiones usando Control-W-W o Control-W y una tecla del cursor hacia donde esté la subdivisión. Podemos clear subdivisiones dentro de las propias subdivisiones. Las subdivisiones puede cerrarse usando ":q" (cerrará sólo esa división, no la pestaña ni el Vim.) Estos comandos pueden abreviarse como :sp / :vsp.
Guardar o cargar la sesión actual: :mksession nombre_fichero_sesion / :source nombre_fichero_sesion":mksession" guarda la información de la sesión actual (pestañas, subdivisiones, ficheros abiertos y otras opciones) en el fichero con el nombre especificado (yo suelo usar "visesion"). Este fichero sería el equivalente a los ficheros de proyecto de Visual Studio y otros IDEs. Para recuperar una sesión podemos ejecutar el Vim como "vim -S fichero_sesion" o si ya estamos dentro de una pestaña de Vim con ":source fichero_sesion". mksession puede abreviarse como :mks y :source puede abreviarse como :so
Convertir los buffers en pestañas: :tab sbaEsto es extremadamente útil pues nos permite convertir todos los buffers (ficheros abiertos pero no en pestañas) en pestañas. De esta forma podremos indicar a vi desde la línea de comandos una serie de ficheros (por ejemplo "vim *.py") y con este comando haremos que todos esos ficheros se conviertan en pestañas. Otra opción es pasarle a Vim el argumento "-p" que hará que los abra directamente en pestañas (pero es fácil olvidarse... aunque en mi sistema yo tengo un alias que hace que vim apunte a "vim -p")Mover pestaña a posición: :tabm posiciónCon esto movemos una pestaña a la posición que le indiquemos como un índice que empieza por 0 (:tabm 0 movería la pestaña actúal a la primera posición.)Ejecutar comando de vi en todas pestañas::tabdo comandoEn ocasiones podemos querer que un comando, por ejemplo una substitución con :%s se ejecute no sólo en la pestaña actual sino también en todas las pestañas.
3. Programación
Vim es un editor usado principalmente, además de por administradores de sistemas, por programadores. Es normal, por lo tanto, que tenga muchos comandos extremadamente útiles para programar. Algunos de ellos son:
Compilar o comprobar errores: :makeEste comando es mucho más útil que el anterior: Ejecuta make desde el directorio desde el que lanzamos Vim, pero si hay algún error salta directamente a el. Podemos configurar el comando que se ejecute al hacer ":make" para que por ejemplo ejecute el pychecker o el pylint
Ir a la definición: gdSalta a la declaración, o primera aparición en este archivo, del símbolo sobre el que se encuentra el cursor.
Siguiente / anterior bloque de sentencias: } / {Salta al siguiente / previo conjunto de sentencias.
Siguiente / anterior instrucción: w y bSalta a la siguiente o anterior 'palabra' pero con un concepto de 'palabra' dependiente de cada lenguaje.
Sustitución cadenas: c-i-' / c-i-"Elimina el texto de la cadena, dentro del tipo indicado (comilla simple o doble) y pone el cursor en inserción al principio.
Selección texto cadenas: v-i-' / v-i-"Selecciona (en modo visual) todo el texto bajo la siguiente cadena de la línea actúal.
Sumar / Restar al número bajo el cursor:Control-a / Control-xSuma o resta uno al número que esté bajo el cursor. Más útil de lo que parece...
Resaltar llaves o paréntesis: %Se resaltarán las llaves o paréntesis (o ambos) que se correspondan con el bloque de código actual. Útil cuando hay mucho lío de llaves o paréntesis.Buscar un texto en ficheros: :grep "texto indicado" *Busca el texto que le pongamos como argumento entre los archivos del directorio actual o, si le pasamos a grep el argumento -r, entre todos los archivos del directorio actual y subdirectorios.
4. Movimiento dentro de una pestaña
Vim ofrece varias formas de movernos rápidamente dentro de el fichero editado dentro de una pestaña. Además de los comandos para saltar a principio (gg), final (G) o una línea concreta (número-gg) y los comandos de búsqueda y salto entre resultados (/, n y N) que vimos en la sección de "Comando Ultra Habituales", es interesante también conocer estos otros:
Primer carácter siguiente línea: introVa al primer carácter que no sea un espacio o un tabulador de la siguiente línea.
Primer carácter anterior línea: -Va al primer carácter que no sea un espacio en blaco o un tabulador de la línea anterior.
Ir a última posición modificada: ',Mueve el cursor a la posición donde hayamos realizado la última modificación, sin salir del modo comando.Insertar en posición última modificación: g-iMueve el cursor al sitio donde hiciéramos la última modificación y se pasa a modo inserción. Ésto es muy útil para volver a la posición donde estábamos trabajando después de habernos ido "a mirar algo" en otra posición del fichero.
Poner / ir a marcador: m[letra] y '[letra]Establece una marca, a la que podremos saltar posteriormente. Si 'letra' es minúscula, sólo podremos volver a la marca desde el mismo archivo en que se situó, si es una letra mayúsculas podremos volver incluso desde otros archivos.
Ir a inicio/final del párrafo: { / }Mueve el cursor al inicio o al final del párrafo. Mas rápido que usar las teclas de dirección,.Ir a inicio/final de frase: ( / )Mueve el cursor al inicio o al final de la frase. Más rápido que usar las teclas de dirección, de nuevo.Mostrar lineas que contienen palabra: ]IMuestra todos las líneas donde está la palabra debajo del cursor
5. Modo Visual (copiar, cortar, pegar)
El modo visual de Vim permite realizar selecciones de texto. Una vez echas éstas, podremos copiar, cortar y pegar (también podemos copiar y pegar desde programas externos usando el portapapeles normal del sistema operativo, aunque en ese caso se recomienda activar el modo "paste".)
Activar modo Visual: vEntra en modo Visual. En este modo seleccionaremos un texto con los cursores, y después podremos cortar, copiar y pegar con los comandos:
Copiar: yCopiar el texto seleccionado en modo visual (de "yank".)
Cortar: cCortar el texto seleccionado en modo visual
Pegar: pPegar el texto copiado o cortar en modo visual con anterioridad.
Seleccionar párrafo: v-i-pSelecciona todo el párrafo bajo el cursor.
Ir al otro lado de la selección: oMueve el cursor al otro extremo de la selección. Útil para ampliar la selección por ese lado.
Pasar selección a mayúscula / minúscula: gU / guPasa toda la selección a mayúscula o minúscula.
6. Autocompletado
El Vim proporciona muchos modos de autocompletado. La mayoría se activar pulsando Control-X y luego un carácter que activa un modo u otro. Sin duda el modo más avanzado es el "Omni" (Vim 7.0 o superior) que completa, si estamos programando, de forma inteligente los métodos de clase, funciones o miembros de un módulo. Cuando hay varias alternativas estos modos de completado muestran una lista desplegable con todas las opciones, que podremos seleccionar con los cursores e intro. Los modos de autocompletado funcionan en modo de inserción, no en modo comando.
Completar palabra en fichero: Control-pCompleta la palabra que estamos escribiendo con otras palabras existentes en cualquiera de los ficheros que estamos editando en la sesión (en todas las pestañas.) En la sección sobre el fichero de configuración, más adelante, se muestra como remapear el tabulador para que realice esta función.
Completar nombre de fichero: Control-x-fCompleta el nombre de fichero que estamos escribiendo con nombres de fichero o directorios existentes en el sistema de archivos.
Completado inteligente "Omni": Control-x oCompleta de forma inteligente los nombres de métodos de clase, clases y módulos. En algunos casos incluso muestra la documentación en una subdivisión superior.
Anular sugerencias de completado: Control-eAnula cualquier sugerencia de completado y elimina la lista desplegable. No funciona si ya hemos seleccionado uno de los términos.
7. Otros comandos interesantes
Ejecución de comando externo: :!comandoEjecuta un comando externo del sistema; por ejemplo si queremos ver la lista de ficheros en el directorio actual podemos hacer ":!ls". Además, si tenemos un texto seleccionado en modo visual, el comando (si lo permite) se aplicará sobre ese texto; por ejemplo en Unix podemos ordenar una lista de líneas seleccionándolas en modo visual y haciendo ":!sort".
Suspender temporalmente Vim y volver a la shell: Control-zSuspende el Vim y vuelve a la shell, desde donde podremos ejecutar comandos del sistema. Podemos volver a Vim en cualquier momento si, bajo Unix o Cygwin, ejecutamos "fg".
Insertar un archivo en el cursor: :r nombre_ficheroInserta el fichero especificado a partir de la posición actual del cursor.
Buscar siguiente / anterior bajo el cursor: * / #Busca la palabra bajo el cursor (atajo a escribir /palabra y n)
Búsqueda sin importar/importando mayusculas/minúsculas: /\c o /\CIndependiéntemente de como tengamos configurado Vim, podemos forzar que una búsqueda sea independente de mayúsculas minúsculas usando /\c y luego los términos de la búsqueda. También podemos forzar que la búsqueda considere la diferencia con /\C.
Borrado de frase: d-a-sBorra toda la frase, desde el punto anterior al siguiente punto, dentro del mismo párrafo.
Unir con linea siguiente: Shift-jUne la linea con la siguiente.Imprimir: :ha!Imprime el documento en la impresora por defecto; fácil de recordar.
El fichero de configuración de Vim: $HOME/.vimrc
En el archivo de configuración ($HOME/.vimrc) se pueden configurar infinidad de opciones; yo utilizo las siguientes:
set sw=3Por defecto Vim produce unas tabulaciones de 8 caracteres. Esto, si estás programando, puede producir que en cuando tengas unos pocos bloques anidados se te acaben las líneas enseguida. Por eso, con esta opción establezco las tabulaciones a tres blancos.
set aiAutoindent: Cada vez que pulsamos intro para acceder a una nueva línea, Vim indentará esa línea del mismo modo que la línea anterior. Si estamos bajo Linux, y usando el controlador para ratón en consola GPM, esto puede tener el indeable efecto de que al pegar texto con el ratón se nos descoloquen todas las líneas (porque va tomando la indentación de la anterior y se van acumulando). La forma de evitar esto es hacer justo antes de pegar ':set noai' pera desactivar la autoindentación, y ':set ai' para activarla después. El Auténtico Hombre Vago (TM) se debería hacer una macro para esto, aunque al Realmente Auténtico Hombre Vago (TM), como yo, le da pereza hacerla...
set cindentRealiza una indentación inteligente según lo que estemos introduciendo (por ejmplo pondrá una tabulación tras una llave "{" si estamos con un programa en C, o la reducirá cuando encuentre una llave de cierre). Para más información sobre esta opción es recomendable ver la ayuda
set smCada vez que cerremos un paréntesis, llave o corchete nos mostrará la apertura equivalente. Esto es treméndamente útil a la hora de programar ya que en muchas ocasiones nos evita errores, o ayuda a identificarlos, sobre todo a los degenerados que programan en Lisp.
set rulerNos indicará en todo momento, en la parte inferior de la pantalla, la línea y columna en la que estamos.
set nocompatiblePone los valores por defecto del Vim, en lugar de los de Vi. Pone varias opciones de configuración interesantes, pero puede confundir a los que estén acostumbrados a manejar en Vi. Sin embargo, recomendamos enérgicamente activar esta opción.
Crear comandos
En el fichero .vimrc podemos además crear nuestros propios comandos mediante el comando map. Vamos a crear por ejemplo un comando para comentar lineas de shell scripts. Si lo hiciéramos "a pelo" tendríamos que pulsar i para ponernos en modo INSERT y, entonces, ir linea por línea colocándonos al principio e insertando un carácter #. Vamos a ver cómo sería el comando:
map ^[c ^[^I#^[j
Vamos por partes:
map: Comando para asignar a una combinación de teclas unas acciones determinadas.
^[c: Con esto lo que queremos decir es: "cuando pulses ALT+c .....". Para ponerlo nos ponemos en modo "INSERT" y pulsamos CTL+v seguido de ALT+c. Esto se aplica a cualquier comando que queramos crear.
^[: Esta secuencia tiene el mismo efecto que si pulsáramos dentro del editor la tecla ESC(pasar a modo comando) y, por lo tanto, lo conseguimos mediante la secuencia dentro del editor: CTL+v seguido de ESC.
^: Mediante esta secuencia lo que conseguimos es ponernos al principio de la línea. Esto es análogo al uso que en grep se le da a ^
I#: Una vez que estamos al principio de la línea lo que queremos es insertar un "#". Por lo tanto nos ponemos en modo insertar y le decimos que ponga "#".
^[j: Nos ponemos en modo comando para mover el cursor una línea hacia abajo mediante el comando "j". Para ponernos en modo comando, puesto que es igual que si pulsáramos la tecla ESC dentro del editor, utilizamos la secuencia CTL+v seguido de ESC. Poniendo j después conseguimos que el cursor avance una línea.
Y ya tenemos terminado nuestro comando. Grabamos el .vimrc, y cuando entremos al vim y pulsemos ALT+c se comentará la línea en la que estemos trabajando. El comando para comentar una línea de un fuente de C sería muy parecido:
map ^[v ^[^I//^[j
Con este comando al pulsar ALT+v se insertará "//" al principio de la línea y bajará a la siguiente.
Crear alias para "palabras" habituales
Otro "truquillo" que podemos utilizar en el .vimrc es el de crear alias para palabras habituales que normalmente utilicemos en nuestros documentos. Si, por ejemplo, sueles poner tu dirección de correo y tu nombre en tus documentos, estaría bien poder disminuir el número de teclas a pulsar para no tener que estar repitiendo siempre lo mismo.
Para crear alias utilizamos el comando ab. Vamos a hacer un alias para la dirección de correo electrónico:
ab dcr ferkys@pagina.de
Incluyendo esto en el fichero .vimrc la próxima vez que, estando trabajando con vim, pongamos la secuencia dcr (como una palabra a parte, si forma parte de una palabra no se sustituye) la transformará en ferkys@pagina.de