Automatiza la instalación y configuración del entorno básico necesario para programar en el Cursus de 42.
Testeado en las siguientes distribuciones:
Distribución | Codename |
---|---|
Ubuntu 22.04 LTS | Jammy |
Debian 12 LTS (WSL) | Bookworm |
La ejecución de 42env.sh
en entornos basados en WSL (Windows Subsystem for Linux)
actualmente da ciertos problemas relacionados con la instalación de 'norminette' y 'c_formatter_42' debido a que la instalación (en general) de paquetes con pip/pip3
está limitada. La solución más simple es instalar pipx
o bien crear un virtualenv
desde el que instalar estos paquetes (lo cual es recomendable).
Luego es necesario incluir el directorio 'bin' del virtualenv en el PATH del sistema para que se pueda llamar a los binarios correspondientes desde fuera del mismo. Al finalizar la ejecución del script, en el momento que se nos pide reiniciar el sistema, también nos dará error si estamos bajo WSL, esto es debido a que no podemos hacer sudo reboot
como haríamos normalmente en nuestra máquina virtual. La solución es tan simple como cerrar WSL con el comando exit
y volver a lanzar nuestra distro bajo WSL.
Este script instala el siguiente software en el caso de que no esté instalado:
- zsh | Shell ZSH
- oh-my-zsh | Oh-My-Zsh
- zsh-autocompletions | Plugin zsh-autosuggestions
- zsh-syntax-highlighting | Plugin zsh-syntax-highlighting
- terminator | Terminator
- git | Git Fast Version Control
- python3 | Python 3.11.2
- pip3 | Package Installer for Python
- ripgrep | Recursively searches by regex pattern
- fd / fd-find | Simply alternative to 'find'
- luarocks | Package manager for Lua modules
- neovim | Hyperextensible Vim-based text editor + vim-plug + 42 plugins
- nerd fonts | Iconic font aggregator, collection, and patcher | Hack Nerd Font
- lsd | The next gen ls command
- bat | A cat clone with wings
- lazygit | Simple terminal UI for git commands
- Atajos de teclado para 'nvim' y config para .zshrc
IMPORTANTE: Antes de comenzar el proceso se recomienda hacer copia de seguridad o un snapshot del estado actual de la máquina virtual. Este script está pensado para uso en nuestro ordenador personal.
Primero descargamos el repositorio y entramos en la carpeta 42env del repositorio clonado.
git clone https://github.com/WildZarek/42env.git; cd 42env
Asigna permisos de ejecución al script y ejecútalo. Se recomienda tener siempre maximizada la ventana de la shell.
chmod +x 42env.sh; ./42env.sh
Al ejecutar el script, te pedirá tu usuario de la Intra 42, escríbelo y pulsa Enter
Este usuario se usará para configurar el header de 42 para vim/nvim.
Una vez que haya terminado todo el proceso, pulsa la tecla Enter
y se reiniciará el equipo.
Después de arrancar el sistema, abre Terminator, maximiza la ventana y ejecuta nvim
, acto seguido escribe :PlugInstall
para que se complete la configuración de Neovim.
nvim
Si no pulsas con el ratón en la ventana de instalación, puede que el instalador te pida que pulses una tecla.
Si es tu caso, pulsa la tecla Espacio
. La configuración continuará y finalizará cuando te solicite que pulses Enter
.
Si ejecutas nvim
sin ningún nombre de archivo, se abrirá a la izquierda el explorador de archivos en la ruta actual para que puedas navegar entre las distintas carpetas y archivos. Si se ejecuta pasando un nombre de archivo, entonces el foco cambia directamente a la ventana del archivo.
En NeoVim se han definido multitud de atajos de teclado para el uso diario que funcionan solo en el modo NORMAL y nos facilitan la tarea de escribir codigo:
Tecla F1: Inserta el header de 42 y pone el editor en modo Insert
.
Tecla F2: Formatea automáticamente el código siguiendo la Norma para presentarlo a la norminette
.
Tecla F3: Ejecuta norminette
con las flags -R CheckForbiddenSourceHeader
sobre el archivo actual.
Tecla Ctrl+q: Fuerza el cierre de la ventana activa [Equivale a :q!
]
Tecla Ctrl+s: Guarda el documento activo [Equivale a :w
]
Tecla Ctrl+f: Guarda y cierra el documento activo [Equivale a :wq
]
Tecla F4: Abre o cierra el explorador de archivos.
Nota: Puedes ver los demás atajos de teclado aquí
Pendiente de redactar esta sección...
Pendiente de redactar esta sección...
Pendiente de redactar esta sección...
Se decidió incluir lsd
ya que mejora la legibilidad en la terminal aprovechando las Hack Nerd Fonts instaladas. El alias ll
equivale a:
/usr/bin/lsd -lha --group-dirs=first
Si por comodidad queremos ver los permisos de los archivos y carpetas en base octal, llo
es un alias de:
/usr/bin/lsd -lha --group-dirs=first --permission octal
Pendiente de redactar esta sección...
LazyGit es ideal para quienes prefieren usar la terminal pero quieren una forma más cómoda y rápida de manejar Git sin tener que escribir todos los comandos manualmente. Resulta especialmente útil para desarrolladores que trabajan con repositorios grandes y complejos, ya que facilita la visualización de los cambios y permite moverse ágilmente entre las distintas secciones del repositorio.
¡Por probarlo no pierdes nada!
Estos atajos son para utilizar en el modo NORMAL
Atajo | Descripción |
---|---|
F1 |
Añade el header de 42 |
F2 |
Aplica auto-formato al código C en base a la Norma v3 de 42 |
F3 |
Ejecuta Norminette sobre el archivo actual y muestra los errores de norma |
F4 |
Muestra u oculta explorador de archivos NERDTree |
F5 |
Muestra u oculta el plugin Tagbar a la derecha |
Ctrl + q |
Cierra la ventana actual sin guardar los cambios (:q!) |
Ctrl + s |
Guarda los cambios en el documento actual (:w) |
Ctrl + f |
Guarda los cambios en el documento actual y cierra Nvim (:wq) |
Ctrl + h |
Cambia el foco a la división del lado izquierdo |
Ctrl + l |
Cambia el foco a la división del lado derecho |
Ctrl + j |
Cambia el foco a la división del lado inferior |
Ctrl + k |
Cambia el foco a la división del lado superior |
Ctrl + ↑ |
Cambia el tamaño de la división activa hacia arriba (horizontalmente) |
Ctrl + ↓ |
Cambia el tamaño de la división activa hacia abajo (horizontalmente) |
Ctrl + ← |
Cambia el tamaño de la división activa hacia la izquierda (verticalmente) |
Ctrl + → |
Cambia el tamaño de la división activa hacia la derecha (verticalmente) |
Terminator es una excelente opción si buscas un emulador de terminal que combine velocidad, personalización y funcionalidad avanzada, ideal para usuarios que desean aprovechar al máximo su entorno de trabajo en la terminal. Permite dividir la pantalla en varias terminales dentro de una misma ventana, facilitando la multitarea sin necesidad de usar múltiples ventanas. Terminator es un proyecto de código abierto con un desarrollo activo, lo que significa que recibe actualizaciones frecuentes y mejoras continuas.
Atajo | Descripción |
---|---|
Ctrl + Shift + Q |
Finaliza la ejecución de Terminator |
Ctrl + Shift + W |
Cierra la terminal o la ventana activa |
Ctrl + Shift + I |
Abre una nueva ventana (la cual es parte del proceso actual de Terminator) |
Ctrl + Shift + T |
Abre una nueva pestaña en el directorio actual |
Ctrl + Shift + O |
Divide la terminal horizontalmente |
Ctrl + Shift + E |
Divide la terminal horizontalmente |
Ctrl + Shift + → |
Modifica el tamaño de la terminal verticalmente |
Ctrl + Shift + ← |
Modifica el tamaño de la terminal verticalmente |
Ctrl + Shift + ↑ |
Modifica el tamaño de la terminal horizontalmente |
Ctrl + Shift + ↓ |
Modifica el tamaño de la terminal horizontalmente |
Ctrl + Shift + S |
Oculta/Muestra la barra de scroll de la terminal activa |
Ctrl + Shift + F |
Muestra la barra de búsqueda |
Ctrl + Shift + N |
Cambia a la siguiente terminal en la misma pestaña |
Ctrl + Shift + P |
Cambia a la anterior terminal en la misma pestaña |
Ctrl + Shift + X |
Cambia entre mostrar todas las terminales o maximizar la actual |
Ctrl + Shift + Z |
Cambia entre mostrar todas las terminales o una visión ampliada de la actual (zoom) |
Ctrl + PageDown |
Cambia a la siguiente terminal |
Ctrl + PageUp |
Cambia a la terminal anterior |
Alt + → |
Cambia a la terminal justo a la derecha de la actual |
Alt + ← |
Cambia a la terminal justo a la izquierda de la actual |
Alt + ↑ |
Cambia a la terminal justo encima de la actual |
Alt + ↓ |
Cambia a la terminal justo debajo de la actual |
Ctrl + Shift + C |
Copia el texto seleccionado a la clipboard |
Ctrl + Shift + V |
Pega el contenido de la clipboard a la terminal actual |
Ctrl + Plus (+) |
Aumenta el tamaño de la fuente para la terminal actual (es posible que debas presionar Shift dependiendo del teclado) |
Ctrl + Minus (-) |
Reduce el tamaño de la fuente para la terminal actual (es posible que debas presionar Shift dependiendo del teclado) |
Ctrl + Zero (0) |
Reinicia el tamaño de la fuente para la terminal actual (a los valores de configuración por defecto) |
F11 |
Activa o desactiva la pantalla completa |
Ctrl + Shift + R |
Reinicia el estado de la terminal |
Ctrl + Shift + G |
Reinicia el estado de la terminal y limpia la pantalla |
Próximamente intentaré publicar el proyecto con una configuración alternativa para su ejecución en usuarios con permisos limitados.