Guía Completa de Ranger
El gestor de archivos de consola inspirado en Vim.
¿Qué es Ranger?
Ranger es un gestor de archivos de consola con:
- Atajos de teclado inspirados en Vim
- Interfaz minimalista con curses
- Vista de jerarquía de directorios (multi-columna)
- Previsualización automática de archivos
- Integración con rifle (lanzador de archivos inteligente)
Filosofía de Diseño
- Mantenible: Escrito en Python de alto nivel
- Rápido: Cambiar directorios y navegar eficientemente
- Minimalista: Pequeño pero útil, hace una cosa bien
- Integrado: Perfecta integración con el shell Unix
Características Principales
- Soporte UTF-8
- Pantalla multi-columna
- Previsualización del archivo/directorio seleccionado
- Operaciones comunes con archivos (crear/chmod/copiar/eliminar)
- Renombrado múltiple de archivos
- Consola y atajos estilo VIM
- Determina tipos de archivo automáticamente
- Pestañas, marcadores, soporte de ratón
- Cambia el directorio del shell al salir
1 Instalación
1.1 Desde Repositorios
Ubuntu/Debian:
sudo apt-get update
sudo apt-get install rangerFedora:
sudo dnf install rangerArch Linux:
sudo pacman -S rangermacOS (Homebrew):
brew install ranger1.2 Desde PyPI
pip install ranger-fm
# O mejor con pipx (entorno aislado)
pipx install ranger-fm1.3 Desde Código Fuente
git clone https://github.com/ranger/ranger.git
cd ranger
sudo make install1.4 Verificar Instalación
ranger --version1.5 Dependencias Opcionales
Para habilitar todas las funcionalidades de previsualización y análisis de archivos en ranger, se recomienda instalar las siguientes dependencias según tu distribución.
1.5.1 Para Debian / Ubuntu / derivados
# Básico (casi imprescindible)
sudo apt install file
# Resaltado de sintaxis (elige uno o varios)
sudo apt install highlight
sudo apt install bat
# pygments vía pip si prefieres la versión python:
# pip install --user pygments
# Imágenes (elige según tu terminal)
sudo apt install w3m w3m-img # Método clásico
sudo apt install caca-utils # Arte ASCII alternativo
# kitty / wezterm / alacritty → mejor con ueberzugpp
# Conversión y procesamiento de imágenes
sudo apt install imagemagick
# Archivos comprimidos
sudo apt install atool unrar p7zip-full
# PDFs
sudo apt install poppler-utils
# Miniaturas de video
sudo apt install ffmpegthumbnailer
# Información de medios
sudo apt install mediainfo
# Idiomas y codificación especial
sudo apt install python3-chardet
pip install --user python-bidi # Para árabe, hebreo, etc.
# Convertir SVG
sudo apt-get install librsvg2-bin1.5.2 Para Arch Linux / Manjaro / derivados
# Básico (casi imprescindible)
sudo pacman -S file
# Resaltado de sintaxis (elige uno o varios)
sudo pacman -S highlight
sudo pacman -S bat
# pygments vía pip si prefieres:
# pip install --user pygments
# Imágenes (elige según tu terminal)
sudo pacman -S w3m libcaca # Método clásico + ASCII
sudo pacman -S ueberzugpp # Muy recomendado (mejor que w3m)
# kitty / wezterm → soporte nativo excelente
# Conversión y procesamiento de imágenes
sudo pacman -S imagemagick
# Archivos comprimidos
sudo pacman -S atool unrar p7zip
# PDFs
sudo pacman -S poppler
# Miniaturas de video
sudo pacman -S ffmpegthumbnailer
# Información de medios
sudo pacman -S mediainfo
# Idiomas y codificación especial
sudo pacman -S python-chardet
sudo pacman -S python-bidi # Para textos RTL (árabe, hebreo...)
# Convertir SVG
sudo pacman -S librsvg1.5.3 Instalación recomendada mínima (elige según tu caso)
Usuario de Arch + kitty/wezterm:
sudo pacman -S file highlight bat imagemagick ffmpegthumbnailer \
poppler mediainfo ueberzugpp
# Opcional pero muy útil:
sudo pacman -S atool unrar p7zip python-bidi python-chardetUsuario de Ubuntu + terminal clásico:
sudo apt install file highlight imagemagick ffmpegthumbnailer \
poppler-utils mediainfo w3m w3m-img atool unrar p7zip-full python3-chardet
# Opcional: pip install --user python-bidi2 Configuración Inicial
2.1 Generar Archivos de Configuración
Ranger puede copiar automáticamente los archivos de configuración por defecto:
# Copiar todas las configuraciones
ranger --copy-config=all
# Copiar archivos específicos
ranger --copy-config=rc # Configuración principal
ranger --copy-config=rifle # Configuración de rifle
ranger --copy-config=scope # Script de previsualización
ranger --copy-config=commands # Comandos personalizados2.2 Ubicación de Archivos
Los archivos de configuración se encuentran en:
~/.config/ranger/
├── rc.conf # Configuración principal y atajos
├── rifle.conf # Lanzador de archivos
├── scope.sh # Script de previsualización
├── commands.py # Comandos personalizados (Python)
├── commands_full.py # Comandos adicionales
└── plugins/ # Directorio para plugins2.3 Primer Lanzamiento
rangerAl iniciar ranger por primera vez:
- Se abre en el directorio actual
- Muestra tres columnas: padre, actual, previsualización
- Usa las flechas o
hjklpara navegar
4 Atajos de Teclado Fundamentales
4.2 Movimiento Rápido
| Tecla | Acción |
|---|---|
gg |
Ir al inicio de la lista |
G |
Ir al final de la lista |
H |
Ir al inicio de la pantalla visible |
M |
Ir a la mitad de la pantalla visible |
L |
Ir al final de la pantalla visible |
{ |
Subir una página |
} |
Bajar una página |
Ctrl+u |
Media página arriba |
Ctrl+d |
Media página abajo |
Ctrl+b |
Página completa arriba |
Ctrl+f |
Página completa abajo |
4.3 Salir y Ayuda
| Tecla | Acción |
|---|---|
q |
Salir de ranger |
Q |
Salir sin cambiar directorio |
? |
Abrir manual de ayuda |
W |
Ver log de ranger |
6 Operaciones con Archivos
6.1 Copiar, Cortar y Pegar
| Tecla | Acción |
|---|---|
yy |
Copiar (yank) archivo seleccionado |
dd |
Cortar (cut) archivo seleccionado |
pp |
Pegar archivo |
po |
Pegar sobrescribiendo |
pP |
Pegar creando enlaces simbólicos |
pO |
Pegar enlaces simbólicos sobrescribiendo |
pl |
Pegar creando enlaces duros (hardlinks) |
pL |
Pegar enlaces duros con nuevo nombre |
ud |
Deshacer (undo) operación de cortar |
uy |
Deshacer (undo) operación de copiar |
6.2 Eliminar
| Tecla | Acción |
|---|---|
dD |
Eliminar archivo (pide confirmación) |
dT |
Mover a papelera (si está configurada) |
6.3 Crear y Editar
| Tecla | Acción |
|---|---|
:touch nombre |
Crear archivo nuevo |
:mkdir nombre |
Crear directorio nuevo |
i |
Mostrar nombre del archivo actual |
E |
Editar archivo con editor por defecto |
cw |
Renombrar archivo (change word) |
a |
Renombrar - cursor al final |
A |
Renombrar - cursor después de extensión |
I |
Renombrar - cursor al principio |
6.4 Permisos y Propiedades
| Tecla | Acción |
|---|---|
= |
Mostrar permisos en notación chmod |
+<permisos> |
Añadir permisos (ej: +x) |
-<permisos> |
Quitar permisos (ej: -w) |
Ejemplos:
+x # Añadir permiso de ejecución
-w # Quitar permiso de escritura
=755 # Establecer permisos exactos7 Selección Múltiple
7.1 Seleccionar Archivos
| Tecla | Acción |
|---|---|
Space |
Marcar/desmarcar archivo y bajar |
v |
Invertir selección de todos los archivos |
V |
Entrar en modo visual (selección continua) |
uv |
Desmarcar todos los archivos |
7.2 Modo Visual
En modo visual (V):
j/k- Extender selección arriba/abajogg/G- Seleccionar hasta inicio/finalo- Cambiar punto de anclaje de selección
7.3 Operaciones con Múltiples Archivos
Una vez seleccionados:
yy- Copiar todos los seleccionadosdd- Cortar todos los seleccionadosdD- Eliminar todos los seleccionados:bulkrename- Renombrar múltiples archivos en editor
7.4 Renombrado Masivo
# Seleccionar archivos con Space
# Ejecutar:
:bulkrename
# Se abre tu editor con lista de archivos
# Edita los nombres
# Guarda y cierra
# Ranger renombra los archivos automáticamente8 Búsqueda y Filtrado
8.1 Búsqueda
| Tecla | Acción |
|---|---|
/ |
Buscar hacia adelante |
? |
Buscar hacia atrás |
n |
Ir a siguiente resultado |
N |
Ir a resultado anterior |
ct |
Buscar en subdirectorios (content search) |
cs |
Cancelar búsqueda |
8.2 Filtrado
| Tecla | Acción |
|---|---|
zf |
Filtrar archivos (solo mostrar coincidencias) |
zz |
Cambiar configuración de filtro |
zh |
Mostrar/ocultar archivos ocultos |
8.3 Ordenamiento
| Tecla | Acción |
|---|---|
on |
Ordenar por nombre |
os |
Ordenar por tamaño |
ot |
Ordenar por fecha de modificación |
oa |
Ordenar por fecha de acceso |
oc |
Ordenar por fecha de creación |
oe |
Ordenar por extensión |
ob |
Ordenar por nombre base (sin extensión) |
or |
Invertir orden |
oz |
Aleatorio |
oS |
Ordenar naturalmente (números: 1, 2, 10 no 1, 10, 2) |
9 Pestañas (Tabs)
9.1 Gestión de Pestañas
| Tecla | Acción |
|---|---|
gn |
Crear pestaña nueva (tab new) |
gt |
Ir a siguiente pestaña (tab next) |
gT |
Ir a pestaña anterior (tab previous) |
gc |
Cerrar pestaña actual (tab close) |
Alt+1 |
Ir a pestaña 1 |
Alt+2 |
Ir a pestaña 2 |
| … | … |
Alt+9 |
Ir a pestaña 9 |
uq |
Restaurar pestaña cerrada |
9.2 Movimiento Entre Pestañas
# Con números
1gt # Ir a pestaña 1
3gt # Ir a pestaña 3
# Navegación relativa
gt # Siguiente
gT # Anterior10 Marcadores (Bookmarks)
10.1 Crear y Usar Marcadores
| Tecla | Acción |
|---|---|
m<letra> |
Crear marcador (ej: ma) |
'<letra> |
Ir a marcador (ej: 'a) |
`<letra> |
Ir a marcador (igual que ’) |
um<letra> |
Eliminar marcador |
10.2 Marcadores Especiales
| Marcador | Ubicación |
|---|---|
'' |
Posición anterior |
`` |
Posición anterior (backtick) |
Ejemplo de uso:
# Estás en /home/usuario/documentos
ma # Crear marcador 'a'
cd /etc # Navega a otro lugar
# Volver rápido
'a # Regresa a /home/usuario/documentos10.3 Ver Marcadores
:marks # Ver todos los marcadores11 Previsualización de Archivos
11.1 Configurar Previsualización
| Tecla | Acción |
|---|---|
zp |
Activar/desactivar previsualización |
zP |
Activar/desactivar previsualización de directorios |
zi |
Activar/desactivar previsualización de imágenes |
zv |
Cambiar modo de vista (Miller, Multipane) |
11.2 Tipos de Previsualización
Texto:
- Archivos de texto plano
- Código fuente con resaltado de sintaxis
- Archivos de configuración
Imágenes:
- Previsualización ASCII (con caca-utils)
- Previsualización real (con w3m-img, ueberzug, kitty, etc.)
Archivos Comprimidos:
- Listado de contenido (.zip, .tar.gz, .rar, etc.)
Documentos:
- PDFs (convertidos a texto con pdftotext)
- Office documents (convertidos con herramientas apropiadas)
Media:
- Videos (miniaturas con ffmpegthumbnailer)
- Audio (metadatos con mediainfo)
11.3 Configurar scope.sh
El archivo ~/.config/ranger/scope.sh controla qué se previsualiza y cómo.
Ejemplo - Añadir tipo de archivo:
# En scope.sh, añadir nuevo caso
case "$mimetype" in
application/json)
jq . "$path" && exit 5
cat "$path" && exit 5
exit 1;;
esac12 Comandos de Consola
12.1 Acceder a la Consola
| Tecla | Acción |
|---|---|
: |
Abrir consola de comandos |
! |
Ejecutar comando shell |
s |
Abrir shell en directorio actual |
S |
Abrir shell con escalada de privilegios |
12.2 Comandos Principales
12.4 Operaciones de Archivos
:touch <nombre> # Crear archivo
:mkdir <nombre> # Crear directorio
:rename <nuevo_nombre> # Renombrar
:delete # Eliminar con confirmación
:chmod <permisos> # Cambiar permisos12.5 Búsqueda
:search <patrón> # Buscar archivos
:search_inc <patrón> # Búsqueda incremental
:filter <patrón> # Filtrar archivos mostrados12.6 Pestañas y Marcadores
:tab_new # Nueva pestaña
:tab_close # Cerrar pestaña
:tab_move <n> # Mover a pestaña n
:mark <letra> # Crear marcador12.7 Configuración
:set <opción> <valor> # Establecer opción
:set show_hidden true # Mostrar archivos ocultos
:set column_ratios 1,3,4 # Cambiar proporciones de columnas
:set colorscheme <nombre> # Cambiar tema de colores12.8 Ayuda y Sistema
:help # Abrir ayuda
:source <archivo> # Cargar configuración
:shell <comando> # Ejecutar comando shell
:quit # Salir12.9 Comandos de Shell
# Ejecutar comando y ver output
!ls -la
# Ejecutar en segundo plano
!make &
# Ejecutar con privilegios
S
# O
!sudo <comando>12.10 Autocompletado
Tab- Autocompletar comando/rutaShift+Tab- Autocompletar hacia atrás
13 Configuración Avanzada
13.1 rc.conf - Configuración Principal
Ubicación: ~/.config/ranger/rc.conf
13.2 Opciones Comunes
# Mostrar archivos ocultos
set show_hidden true
# Cambiar editor por defecto
set editor vim
# set editor nano
# set editor code
# Proporciones de columnas (padre:actual:previsualización)
set column_ratios 1,3,4
# Confirmación antes de eliminar
set confirm_on_delete multiple
# Mostrar números de línea
set line_numbers relative
# Opciones: false, absolute, relative
# Tema de colores
set colorscheme default
# Otros: jungle, snow, solarized
# Previsualización automática
set preview_files true
set preview_directories true
set preview_images true
# Método de previsualización de imágenes
set preview_images_method w3m
# Opciones: w3m, ueberzug, kitty, iterm2
set preview_images_method kitty
# Guardar historial
set save_console_history true
# Tamaño máximo de previsualización
set preview_max_size 0 # 0 = sin límite
# Mostrar información VCS (git)
set vcs_aware true
# Comportamiento del mouse
set mouse_enabled true
# Scroll automático
set autosave_bookmarks true
set autoupdate_cumulative_size false
# Padding alrededor de la selección
set padding_right true13.3 Mapeos de Teclado Personalizados
# Mapear tecla a comando
map <tecla> <comando>
# Ejemplos:
map DD shell trash-put %s # Mover a papelera
map x shell chmod +x %s # Hacer ejecutable
map bg shell feh --bg-scale %s # Establecer fondo de pantalla
map <C-t> shell alacritty & # Abrir terminal
map <A-1> tab_move 1 # Ir a pestaña 1
map ee edit_file # Editar archivo
map et shell alacritty -e vim %s & # Editar en terminal nueva
# Desmap tecla
unmap dd # Quitar mapeo de dd13.4 Comandos de Shell
# Ejecutar comando con archivo actual
map X shell -f <comando> %f
# Variables disponibles:
# %f - archivo actual
# %d - directorio actual
# %s - archivos seleccionados
# %t - archivos etiquetados (tagged)
# %c - ruta completa del archivo actual13.5 rifle.conf - Lanzador de Archivos
Ubicación: ~/.config/ranger/rifle.conf
Determina qué programa abre cada tipo de archivo.
Sintaxis:
<condición> = <comando>Ejemplos:
# Texto plano
mime ^text, label editor = ${VISUAL:-$EDITOR} -- "$@"
mime ^text, label pager = "$PAGER" -- "$@"
# PDFs
ext pdf, has evince, X, flag f = evince -- "$@"
ext pdf, has zathura, X, flag f = zathura -- "$@"
ext pdf, has okular, X, flag f = okular -- "$@"
# Imágenes
mime ^image, has feh, X, flag f = feh -- "$@"
mime ^image, has gimp, X, flag f = gimp -- "$@"
mime ^image, has sxiv, X, flag f = sxiv -- "$@"
# Videos
mime ^video, has mpv, X, flag f = mpv -- "$@"
mime ^video, has vlc, X, flag f = vlc -- "$@"
# Audio
mime ^audio, has mpv, X, flag f = mpv --no-video -- "$@"
# Archivos comprimidos
ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --list --each -- "$@" | "$PAGER"
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --list --each -- "$@" | "$PAGER"
# Documentos Office
ext docx?|xlsx?|pptx?|odt|ods|odp, has libreoffice, X, flag f = libreoffice "$@"
# HTML
ext html?, has firefox, X, flag f = firefox -- "$@"
ext html?, has chromium, X, flag f = chromium -- "$@"
# Código fuente
ext py, has python = python -- "$1"
ext pl, has perl = perl -- "$1"
ext rb, has ruby = ruby -- "$1"
ext js, has node = node -- "$1"
ext sh, has sh = sh -- "$1"Condiciones disponibles:
ext <extensión>- Extensión de archivomime <tipo>- Tipo MIMEname <patrón>- Nombre de archivo (regex)has <programa>- Programa disponibleX- Requiere X11flag f- Fork (ejecutar en segundo plano)flag t- Terminal (ejecutar en terminal)
13.6 commands.py - Comandos Personalizados
Ubicación: ~/.config/ranger/commands.py
Crear comandos Python personalizados.
Ejemplo - Comando para comprimir:
from ranger.api.commands import Command
class compress(Command):
def execute(self):
"""Comprimir archivos seleccionados"""
import os
# Obtener archivos seleccionados
if self.fm.thisdir.marked_items:
files = [f.basename for f in self.fm.thisdir.marked_items]
else:
files = [self.fm.thisfile.basename]
# Nombre del archivo comprimido
archive_name = self.rest(1) if self.rest(1) else "archive.tar.gz"
# Comprimir
self.fm.execute_command(f"tar czf {archive_name} {' '.join(files)}")
self.fm.notify(f"Comprimido como {archive_name}")
class extract(Command):
def execute(self):
"""Extraer archivo comprimido"""
if self.fm.thisfile.extension in ['zip', 'tar', 'gz', 'bz2', 'xz']:
self.fm.execute_command(f"atool -x {self.fm.thisfile.basename}")
self.fm.notify("Archivo extraído")
class mkcd(Command):
"""Crear directorio y entrar en él"""
def execute(self):
from os.path import join, expanduser, lexists
dirname = join(self.fm.thisdir.path, expanduser(self.rest(1)))
if not lexists(dirname):
os.makedirs(dirname)
self.fm.cd(dirname)
else:
self.fm.notify("Directorio ya existe", bad=True)Usar comandos personalizados:
:compress archivo.tar.gz # Comprimir selección
:extract # Extraer archivo
:mkcd nueva-carpeta # Crear y entrar14 Rifle - El Lanzador de Archivos
14.1 ¿Qué es Rifle?
Rifle es el programa que ranger usa para determinar con qué abrir archivos. Es inteligente y tiene fallbacks.
14.2 Uso Básico
# Abrir archivo con rifle
rifle archivo.pdf
# Listar programas disponibles
rifle -l archivo.pdf
# Abrir con programa específico
rifle -p 2 archivo.pdf # Usar opción 2 de la lista14.3 Dentro de Ranger
| Tecla | Acción |
|---|---|
r |
Abrir con programa (muestra opciones) |
Enter o l |
Abrir con programa por defecto |
14.4 Configurar Rifle
Editar ~/.config/ranger/rifle.conf
Prioridad: Primera coincidencia gana
# Ejemplo: Abrir PDFs con zathura si está disponible
ext pdf, has zathura, X, flag f = zathura -- "$@"
# Si no, con evince
ext pdf, has evince, X, flag f = evince -- "$@"
# Si no, convertir a texto
ext pdf, has pdftotext = pdftotext -l 10 -nopgbrk -q -- "$@" -14.5 Flags de Rifle
f- Fork (ejecutar en segundo plano)t- Terminal (ejecutar en terminal y esperar)w- Wait (esperar que termine)c- Close stdout/stderrr- Requiere terminal, pero usa rifle.conf del sistema
15 Plugins y Extensiones
15.1 Ubicación de Plugins
~/.config/ranger/plugins/15.2 Plugins Populares
15.3 1. ranger_devicons
Añade iconos a tipos de archivo.
git clone https://github.com/alexanderjeurissen/ranger_devicons ~/.config/ranger/plugins/ranger_deviconsActivar en rc.conf:
default_linemode devicons15.4 2. ranger-archives
Mejorar manejo de archivos comprimidos.
git clone https://github.com/maximtrp/ranger-archives.git ~/.config/ranger/plugins/ranger-archives15.5 3. fasd Integration
Integración con fasd (autojump rápido).
En rc.conf:
map f shell fasd -d | fzf --no-sort | xargs -I{} ranger --selectfile "{}"15.6 4. fzf Integration
Búsqueda fuzzy con fzf.
En commands.py:
class fzf_select(Command):
def execute(self):
import subprocess
command = "find -L . -path '*/\.*' -prune -o -print 2> /dev/null | fzf +m"
fzf = self.fm.execute_command(command, stdout=subprocess.PIPE)
stdout, stderr = fzf.communicate()
if fzf.returncode == 0:
fzf_file = os.path.abspath(stdout.decode('utf-8').rstrip('\n'))
if os.path.isdir(fzf_file):
self.fm.cd(fzf_file)
else:
self.fm.select_file(fzf_file)Mapear en rc.conf:
map <C-f> fzf_select15.7 Crear Plugin Propio
Estructura básica:
# ~/.config/ranger/plugins/mi_plugin.py
import ranger.api
class CustomCommand(ranger.api.commands.Command):
def execute(self):
# Tu código aquí
self.fm.notify("Hola desde mi plugin!")
# Hook para inicialización
old_hook_init = ranger.api.hook_init
def hook_init(fm):
# Inicialización personalizada
fm.notify("Plugin cargado")
return old_hook_init(fm)
ranger.api.hook_init = hook_init16 Integración con Shell
16.1 Cambiar Directorio al Salir
Ranger puede cambiar el directorio de tu shell al salir.
16.2 Bash
Añadir a ~/.bashrc:
function ranger-cd {
tempfile="$(mktemp -t tmp.XXXXXX)"
ranger --choosedir="$tempfile" "${@:-$(pwd)}"
test -f "$tempfile" &&
if [ "$(cat -- "$tempfile")" != "$(echo -n `pwd`)" ]; then
cd -- "$(cat "$tempfile")"
fi
rm -f -- "$tempfile"
}
# Alias para usar
alias rr='ranger-cd'16.3 Zsh
Añadir a ~/.zshrc:
function ranger-cd {
tempfile="$(mktemp -t tmp.XXXXXX)"
ranger --choosedir="$tempfile" "${@:-$(pwd)}"
test -f "$tempfile" &&
if [ "$(cat -- "$tempfile")" != "$(echo -n `pwd`)" ]; then
cd -- "$(cat "$tempfile")"
fi
rm -f -- "$tempfile"
}
alias rr='ranger-cd'16.4 Fish
Añadir a ~/.config/fish/config.fish:
function ranger-cd
set tempfile (mktemp -t tmp.XXXXXX)
ranger --choosedir=$tempfile $argv
if test -f $tempfile
if test (cat $tempfile) != (pwd)
cd (cat $tempfile)
end
end
rm -f $tempfile
end
alias rr='ranger-cd'16.5 File Picker
Usar ranger como selector de archivos.
Script:
#!/bin/bash
# ranger-picker.sh
tempfile="$(mktemp -t tmp.XXXXXX)"
ranger --choosefile="$tempfile"
if [ -f "$tempfile" ]; then
cat "$tempfile"
rm -f "$tempfile"
fiUsar:
selected_file=$(ranger-picker.sh)
echo "Archivo seleccionado: $selected_file"17 Trucos y Tips Avanzados
17.1 Preview de Archivos con Sintaxis
Instalar highlight o bat:
sudo apt-get install highlight
# O
cargo install batEditar scope.sh para usar bat:
case "$mimetype" in
text/* | */xml)
bat --style=numbers --color=always "$path" && exit 5
exit 2;;
esac17.2 Thumbnails de Videos
Instalar ffmpegthumbnailer:
sudo apt-get install ffmpegthumbnailerYa debería funcionar con scope.sh por defecto.
17.3 Preview de Imágenes (Terminal Compatible)
Con w3m:
sudo apt-get install w3m w3m-imgEn rc.conf:
set preview_images true
set preview_images_method w3mCon kitty (mejor calidad):
set preview_images_method kittyCon ueberzug (mejor compatibilidad):
pip install ueberzug
set preview_images_method ueberzug17.4 Búsqueda con FZF
Integrar búsqueda fuzzy:
En commands.py:
import subprocess
class fzf(Command):
def execute(self):
command="find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune -o -print 2> /dev/null | sed 1d | cut -b3- | fzf +m"
fzf = self.fm.execute_command(command, stdout=subprocess.PIPE)
stdout, _ = fzf.communicate()
if fzf.returncode == 0:
fzf_file = os.path.abspath(stdout.decode('utf-8').rstrip('\n'))
if os.path.isdir(fzf_file):
self.fm.cd(fzf_file)
else:
self.fm.select_file(fzf_file)Mapear:
map <C-f> fzf17.5 Integración con Git
Ver estado de Git:
En rc.conf:
set vcs_aware true
set vcs_backend_git enabledRanger mostrará información de Git en archivos/directorios.
17.6 Archivos Grandes
Evitar lag con archivos grandes:
En rc.conf:
set preview_max_size 10485760 # 10MB
set max_history_size 20
set max_console_history_size 5017.7 Abrir en Programa Externo
Crear atajos para programas específicos:
En rc.conf:
# Abrir en VS Code
map code shell code "$PWD"
# Abrir terminal aquí
map tt shell alacritty &
# Abrir file manager GUI
map fm shell nautilus "$PWD" &
# Ejecutar script
map ex shell chmod +x %s && ./%s17.8 Sincronizar con Dropbox/Drive
# Crear marcador para cloud storage
map gdb cd ~/Dropbox
map gdv cd ~/Google\ Drive17.9 Operaciones Bulk
Renombrar múltiples archivos:
# Seleccionar archivos con Space
# Ejecutar:
:bulkrename
# Se abre editor con lista
# Modificar nombres
# Guardar y cerrar17.10 Preview de Archivos JSON/YAML
En scope.sh:
# JSON
json)
jq --color-output . "${FILE_PATH}" && exit 5
python -m json.tool -- "${FILE_PATH}" && exit 5
;;
# YAML
yaml)
yq eval --colors -- "${FILE_PATH}" && exit 5
;;18 Solución de Problemas
18.1 Problema: Imágenes no se previsualizan
Solución:
# Verificar método configurado
:set preview_images_method
# Cambiar método
:set preview_images_method w3m
# O kitty, ueberzug, iterm2
# Verificar instalación
which w3mimgdisplay18.2 Problema: Colores incorrectos
Solución:
# Verificar TERM
echo $TERM
# Debería ser xterm-256color o similar
export TERM=xterm-256color
# En rc.conf cambiar colorscheme
set colorscheme default18.3 Problema: Resaltado de sintaxis no funciona
Solución:
# Instalar highlight o pygments
sudo apt-get install highlight
# O
pip install pygments
# Verificar scope.sh está configurado correctamente18.4 Problema: Ranger lento
Soluciones:
- Limitar tamaño de preview
- Desactivar preview de imágenes en directorios grandes
- Reducir historial
# En rc.conf
set preview_max_size 1048576 # 1MB
set preview_images false
set max_history_size 1018.5 Problema: No cambia directorio del shell
Verificar que usas la función wrapper:
# Debe estar en ~/.bashrc o ~/.zshrc
function ranger-cd { ... }
alias rr='ranger-cd'18.6 Problema: Archivos ocultos no se muestran
# Presionar
zh
# O en rc.conf
set show_hidden true18.7 Problema: Rifle no encuentra programas
# Verificar PATH
echo $PATH
# Editar rifle.conf para usar rutas absolutas
ext pdf = /usr/bin/zathura -- "$@"19 Referencia Completa de Atajos
19.2 Archivos
| Tecla | Acción |
|---|---|
yy |
Copiar |
dd |
Cortar |
pp |
Pegar |
po |
Pegar sobrescribiendo |
dD |
Eliminar |
cw |
Renombrar |
a |
Renombrar (cursor al final) |
A |
Renombrar (después de extensión) |
I |
Renombrar (cursor al inicio) |
E |
Editar con editor |
i |
Inspeccionar archivo |
19.3 Selección
| Tecla | Acción |
|---|---|
Space |
Marcar/desmarcar |
v |
Invertir selección |
V |
Modo visual |
uv |
Desmarcar todos |
19.4 Búsqueda
| Tecla | Acción |
|---|---|
/ |
Buscar adelante |
? |
Buscar atrás |
n |
Siguiente resultado |
N |
Resultado anterior |
f<letra> |
Buscar por primera letra |
19.5 Pestañas
| Tecla | Acción |
|---|---|
gn / Ctrl+n |
Nueva pestaña |
gt / Tab |
Siguiente pestaña |
gT / Shift+Tab |
Pestaña anterior |
gc / Ctrl+w |
Cerrar pestaña |
Alt+1...9 |
Ir a pestaña N |
19.6 Marcadores
| Tecla | Acción |
|---|---|
m<letra> |
Crear marcador |
'<letra> |
Ir a marcador |
um<letra> |
Eliminar marcador |
19.7 Ordenamiento
| Tecla | Acción |
|---|---|
on |
Por nombre |
os |
Por tamaño |
ot |
Por fecha modificación |
oe |
Por extensión |
or |
Invertir orden |
19.8 Vista
| Tecla | Acción |
|---|---|
zp |
Toggle preview |
zP |
Toggle preview directorios |
zi |
Toggle preview imágenes |
zv |
Cambiar modo vista |
zh |
Toggle archivos ocultos |
zf |
Filtrar |
19.9 Sistema
| Tecla | Acción |
|---|---|
q |
Salir |
Q |
Salir sin cd |
R |
Recargar |
? |
Ayuda |
: |
Consola |
! |
Shell command |
s |
Shell |
S |
Shell como root |
19.10 Ir a (g)
| Tecla | Acción |
|---|---|
gh |
Home |
ge |
/etc |
gu |
/usr |
gd |
/dev |
go |
/opt |
gv |
/var |
gm |
/media |
gM |
/mnt |
gr |
/ |
gR |
/ |
20 Recursos y Enlaces
20.1 Documentación Oficial
- Sitio web: https://ranger.fm/
- GitHub: https://github.com/ranger/ranger
- Manual:
man rangero https://ranger.fm/man.html - Wiki: https://github.com/ranger/ranger/wiki
20.2 Tutoriales
- Official User Guide: En el repositorio de GitHub
- Arch Wiki: https://wiki.archlinux.org/title/Ranger
20.3 Comunidad
- IRC: #ranger en Libera.Chat
- Reddit: r/ranger
- Issues: https://github.com/ranger/ranger/issues
20.4 Configuraciones de Ejemplo
- Dotfiles repos: Buscar en GitHub “ranger config”
- r/unixporn: Muchas configuraciones compartidas
21 Conclusión
Ranger es una herramienta poderosa que combina la eficiencia de los atajos de teclado estilo Vim con las capacidades modernas de previsualización y gestión de archivos.
Consejos finales:
- Aprende gradualmente: Comienza con los atajos básicos (hjkl, yy, dd, pp)
- Personaliza: Ajusta rc.conf a tu flujo de trabajo
- Practica: La memoria muscular viene con el uso
- Explora plugins: Hay muchas extensiones útiles
- Lee el código: Ranger es Python, fácil de extender
Atajos esenciales para memorizar:
hjkl- Navegaciónyy/dd/pp- Copiar/cortar/pegarSpace- Seleccionargg/G- Inicio/fin/- Buscarzh- Mostrar ocultosq- Salir
Cómo citar
Achalma, E. (2025, 30 de diciembre). Guía Completa de Ranger. Chaska. https://chaska-x.netlify.app/cursos/linux/guia-de-ranger/
