
Pluma es el editor de texto oficial del entorno de escritorio MATE. Si bien busca la simplicidad y la facilidad de uso, Pluma es un potente editor de texto de propósito general. Se puede utilizar para crear y editar todo tipo de archivos de texto.
Pluma cuenta con un sistema de complementos flexible que permite añadir dinámicamente nuevas funciones avanzadas a la propia Pluma.

¿Qué es Pluma?
Pluma es el editor de texto oficial de MATE. Está diseñado como un editor gráfico ligero, sencillo de utilizar y suficientemente potente para editar tanto documentos de texto normales como archivos de configuración y código fuente.
Forma parte del conjunto de aplicaciones de MATE Desktop Environment y es, conceptualmente, el sucesor de Gedit 2.x dentro del ecosistema MATE.
Su nombre hace referencia a "pluma" (pluma estilográfica), siguiendo la tradición de nombres de aplicaciones del escritorio.
Una forma sencilla de situarlo es:
MATE
│
▼
┌───────────┐
│ Pluma │
│ │
│ Editor de │
│ texto │
└─────┬─────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
archivos código texto
.txt .py .conf
│ │ │
└────────────┼────────────┘
▼
sistema de
archivos
Pero Pluma no es simplemente un "bloc de notas". Internamente tiene una arquitectura bastante interesante basada en GTK, un modelo de documento propio, resaltado de sintaxis, búsqueda/reemplazo, pestañas y un sistema de complementos.
1. ¿Qué problema resuelve Pluma?
Su objetivo principal es permitir trabajar con texto plano de forma gráfica.
Por ejemplo:
notas.txt
config.conf
script.sh
programa.py
index.html
style.css
README.md
Puedes abrir cualquiera de estos archivos en Pluma.
A diferencia de un procesador de textos como LibreOffice Writer, Pluma trabaja principalmente con texto sin formato.
Esto significa que si escribes:
Hola mundo
Este es un archivo de texto.
el archivo contiene esencialmente:
H o l a _ m u n d o \n
E s t e _ e s _ u n _ a r c h i v o...
y no información compleja de formato como:
fuente = Arial
tamaño = 14
negrita = true
color = azul
2. Pluma frente a un procesador de textos
Es importante distinguir:
Pluma
Procesador de textos
Texto plano
Documento enriquecido
Código fuente
Documentos formateados
Configuración
Informes visuales
Scripts
Cartas
Markdown
Documentos con estilos
Archivos .conf
.odt, .docx, etc.
Por ejemplo:
Pluma
└── /etc/archivo.conf
es un uso natural.
Mientras que:
LibreOffice Writer
└── informe.odt
es un uso diferente.
Pluma está mucho más cerca conceptualmente de:
nano
vim
gedit
Kate
Mousepad
que de:
LibreOffice Writer
Microsoft Word
3. Arquitectura general
Una manera útil de visualizar Pluma es:
PLUMA
│
┌──────────────┼──────────────┐
│ │ │
▼ ▼ ▼
GTK/GtkSource Document Plugins
│ │ │
│ │ │
▼ ▼ ▼
interfaz texto en RAM funciones
│ │
└──────────────┼──────────────┘
▼
archivo en disco
Hay una distinción fundamental:
El archivo del disco y el documento que estás editando en Pluma son dos estados diferentes.
Cuando haces:
Archivo → Abrir
Pluma lee el archivo.
El contenido pasa a memoria.
Trabajas sobre esa copia en memoria.
Cuando haces:
Archivo → Guardar
Pluma escribe el contenido de nuevo al almacenamiento.
4. El modelo documento en memoria
Supongamos que tienes:
/home/usuario/documento.txt
con:
Hola
Mundo
Cuando lo abres:
DISCO
│
│ lectura
▼
PLUMA
│
▼
Documento en memoria
Puedes cambiarlo:
Hola
Mundo
a:
Hola
Mundo desde MATE
pero hasta que guardes:
Ctrl+S
el archivo original puede seguir siendo:
Hola
Mundo
Por tanto:
RAM
│
documento editado
│
Ctrl + S
│
▼
DISCO
Este concepto es básico para entender cualquier editor de texto.
5. Pestañas
Pluma permite trabajar con múltiples documentos mediante pestañas.
Por ejemplo:
┌─────────────────────────────────────────────────┐
│ [config.conf] [script.sh] [README.md] [+] │
├─────────────────────────────────────────────────┤
│ │
│ #!/bin/bash │
│ echo "Hola" │
│ │
└─────────────────────────────────────────────────┘
Cada pestaña representa un documento diferente.
Conceptualmente:
Ventana Pluma
│
├── Documento A
│
├── Documento B
│
└── Documento C
Esto permite trabajar con varios archivos sin tener que abrir una ventana independiente para cada uno.
6. Ventanas y documentos
También puedes tener varias ventanas de Pluma.
Por ejemplo:
Ventana 1
├── main.py
├── config.py
└── README.md
Ventana 2
├── servidor.conf
└── logs.txt
Esto permite separar proyectos o tareas.
7. Resaltado de sintaxis
Esta es una de las características que hacen que Pluma sea mucho más que un editor de texto básico.
Puede utilizar resaltado de sintaxis para diferentes lenguajes y formatos.
Por ejemplo, un archivo Python:
def saludar(nombre):
print("Hola", nombre)
puede aparecer visualmente con diferentes colores para:
def → palabra reservada
saludar → función
nombre → variable
"Hola" → cadena
En un archivo Bash:
#!/bin/bash
echo "Hola"
Pluma puede distinguir:
#!/bin/bash → comentario/directiva
echo → comando
"Hola" → cadena
La idea es:
texto original
│
▼
analizador de sintaxis
│
▼
tokens
│
▼
colores/estilos
Esto no modifica el archivo.
El color es solamente una representación visual.
8. GtkSourceView
Una pieza tecnológica muy importante detrás de Pluma es GtkSourceView.
GtkSourceView proporciona componentes especializados para editores de texto basados en GTK, incluyendo funcionalidades como:
- resaltado de sintaxis;
- regiones de texto;
- números de línea;
- modos de lenguaje;
- marcado;
- otras capacidades de edición.
Por eso Pluma puede ofrecer funcionalidades propias de un editor de código sin convertirse en un IDE completo.
La arquitectura conceptual sería:
Pluma
│
▼
GtkSourceView
│
├── texto
├── sintaxis
├── estilos
├── números de línea
└── navegación
9. Detección del lenguaje
Cuando abres:
programa.py
Pluma puede reconocer que se trata de Python.
Con:
script.sh
puede reconocer Bash/Shell.
Con:
archivo.html
puede reconocer HTML.
Con:
archivo.css
puede reconocer CSS.
Esto permite activar automáticamente un esquema de resaltado apropiado.
También puedes seleccionar manualmente el modo de lenguaje cuando sea necesario.
10. Números de línea
Una característica muy útil para programación es mostrar:
1 #!/usr/bin/env python3
2
3 def main():
4 print("Hola")
5
6 main()
Los números de línea permiten referirse fácilmente a posiciones concretas:
"El error está en la línea 42."
Esto resulta especialmente útil cuando trabajas con compiladores, intérpretes o logs.
11. Búsqueda
Pluma incorpora búsqueda de texto.
Por ejemplo, en un archivo grande puedes buscar:
localhost
y navegar entre las coincidencias.
Conceptualmente:
Documento
│
├── línea 10
├── línea 23 ← localhost
├── línea 87
├── línea 142 ← localhost
└── línea 300
La búsqueda evita tener que recorrer manualmente todo el documento.
12. Reemplazar
También puedes sustituir texto.
Por ejemplo:
localhost
por:
192.168.1.100
en un documento.
El flujo es:
Buscar
↓
Encontrar coincidencia
↓
Reemplazar
↓
Siguiente coincidencia
Dependiendo de la versión/configuración también puedes realizar reemplazos múltiples.
13. Búsqueda sensible a mayúsculas
Una opción habitual es distinguir:
Hola
de:
hola
Es decir:
Hola ≠ hola
cuando está activada la sensibilidad a mayúsculas/minúsculas.
Esto resulta importante en programación porque muchos lenguajes son case-sensitive.
14. Deshacer y rehacer
Pluma mantiene un historial de modificaciones.
Por ejemplo:
Estado 1
Hola
Estado 2
Hola mundo
Estado 3
Hola mundo desde MATE
Puedes retroceder:
Ctrl+Z
y volver:
Estado 2
Después puedes rehacer la operación.
Conceptualmente:
Editar
│
▼
historial
│
├── undo
│
└── redo
Esto es fundamental en cualquier editor.
15. Copiar, cortar y pegar
Pluma utiliza las operaciones tradicionales:
Ctrl+C
Ctrl+X
Ctrl+V
para:
copiar
cortar
pegar
También puedes seleccionar:
una palabra
una línea
varias líneas
un bloque de texto
y manipularlo.
16. Autoguardado y archivos modificados
Cuando modificas un documento, Pluma necesita distinguir:
archivo guardado
de:
archivo modificado
Por ejemplo:
config.conf
puede pasar a:
config.conf *
o mostrar alguna indicación equivalente de modificación según la interfaz/tema.
El asterisco representa conceptualmente:
contenido en memoria ≠ contenido en disco
Cuando haces:
Ctrl+S
se sincronizan:
RAM ↔ DISCO
17. Codificación de caracteres
Esta es una característica técnicamente muy importante.
Un archivo de texto no es simplemente "letras".
En disco se almacenan bytes.
Por ejemplo:
A
tiene una representación determinada.
Pero:
á
ñ
€
中
requieren una codificación capaz de representarlos.
Una de las más importantes actualmente es:
UTF-8
Por eso Pluma necesita manejar correctamente las codificaciones de caracteres.
Puedes encontrarte con archivos en:
UTF-8
ISO-8859-1
Windows-1252
entre otras.
Si una codificación se interpreta incorrectamente puedes obtener algo como:
España
en lugar de:
España
La gestión de codificaciones es, por tanto, fundamental para un editor de texto Linux.
18. Finales de línea
Otra característica que normalmente pasa desapercibida es el tipo de salto de línea.
Unix/Linux utiliza normalmente:
LF
Windows tradicionalmente:
CRLF
y sistemas antiguos como ciertos entornos de Macintosh utilizaban:
CR
Conceptualmente:
Linux:
línea 1\n
línea 2\n
Windows:
línea 1\r\n
línea 2\r\n
Un editor como Pluma debe ser capaz de trabajar con estas diferencias para evitar problemas al mover archivos entre sistemas.
Esto es especialmente importante para programación y scripts.
19. Guardar archivos
Cuando guardas un documento, Pluma tiene que realizar varias operaciones:
Documento en memoria
│
▼
determinar codificación
│
▼
determinar formato de texto
│
▼
escribir bytes
│
▼
archivo
El resultado es un archivo de texto que otras aplicaciones pueden leer.
Por ejemplo:
Pluma
↓
script.sh
↓
Bash
↓
ejecución
Pluma no interpreta el script.
Simplemente lo edita.
20. Pluma como editor de código
Aunque no es un IDE completo, Pluma resulta bastante útil para programación.
Por ejemplo:
Proyecto
├── main.py
├── config.py
├── utils.py
└── README.md
Puedes abrir los archivos en pestañas:
[main.py] [config.py] [utils.py] [README.md]
y utilizar:
- resaltado;
- búsqueda;
- reemplazo;
- indentación;
- números de línea;
- plugins;
- navegación.
Pero no deberías confundirlo con un IDE como:
Visual Studio Code
PyCharm
Eclipse
Un IDE integra muchas más funciones de desarrollo.
21. Sangría e indentación
Pluma proporciona herramientas para facilitar la escritura de código estructurado.
Por ejemplo:
if usuario:
print("Hola")
La indentación es especialmente importante en Python.
También es útil para:
Python
C
C++
Java
JavaScript
HTML
CSS
Bash
etc.
22. Espacios y tabuladores
En programación hay una diferencia entre:
TAB
y:
ESPACIOS
Pluma permite configurar aspectos relacionados con la indentación para adaptar el comportamiento del editor a las preferencias del usuario o del proyecto.
Por ejemplo:
Tab → 4 espacios
puede hacer que al pulsar Tab se inserten cuatro espacios.
Esto puede ser importante para mantener un estilo coherente.
23. Ajuste de línea
Imagina una línea enorme:
Lorem ipsum dolor sit amet consectetur adipiscing elit ...
Sin ajuste:
Lorem ipsum dolor sit amet consectetur adipiscing elit consectetur...
→
Con ajuste:
Lorem ipsum dolor sit amet consectetur adipiscing elit
consectetur adipiscing elit...
El ajuste de línea cambia cómo se visualiza el texto, pero no necesariamente introduce saltos de línea reales en el archivo.
Esta distinción es importante:
ajuste visual
≠
salto de línea real
24. Barra de estado
La interfaz puede mostrar información contextual del documento, como:
Línea 42, columna 17
y otra información relacionada con:
- posición del cursor;
- estado del documento;
- lenguaje;
- codificación.
Esto resulta particularmente útil para programación.
25. Ir a una línea concreta
Si un compilador dice:
error en línea 157
no quieres desplazarte manualmente por cientos de líneas.
Una función de navegación permite ir directamente a una posición concreta.
Conceptualmente:
Ctrl+L
↓
157
↓
línea 157
El nombre exacto del atajo puede variar según la versión/configuración, pero la funcionalidad de navegación por posición es una característica típica del editor.
26. Múltiples documentos
Una de las ventajas del sistema de pestañas es poder comparar archivos.
Por ejemplo:
[config.old] [config.new]
y desplazarte entre ellos.
Esto permite tareas como:
archivo original
↓
archivo modificado
↓
comparación visual
Aunque para diferencias avanzadas existen herramientas especializadas como:
diff
meld
Pluma sirve muy bien para una comparación manual básica.
27. Plugins
Una de las características más interesantes de Pluma es su arquitectura de complementos/plugins.
En lugar de incorporar absolutamente todas las funcionalidades al núcleo, ciertas capacidades pueden añadirse como extensiones.
Conceptualmente:
PLUMA
│
┌───────┴───────┐
│ │
núcleo plugins
│ │
│ ┌───────┼───────┐
│ │ │ │
▼ ▼ ▼ ▼
edición Git terminal otros
Esto permite mantener el editor relativamente sencillo mientras se añaden capacidades según las necesidades.
28. Ejemplos de funcionalidades mediante plugins
Dependiendo de la versión y los complementos disponibles, el ecosistema de Pluma puede proporcionar funcionalidades como:
- navegador de archivos;
- terminal integrado;
- integración con sistemas de control de versiones;
- herramientas de documentos;
- snippets;
- selección avanzada;
- ejecución de comandos;
- soporte adicional para lenguajes.
La disponibilidad exacta depende de la versión de Pluma y de los paquetes de plugins instalados.
Esto es importante porque no todas las instalaciones de MATE tienen exactamente los mismos plugins habilitados.
29. Terminal integrado
Algunas instalaciones pueden disponer de un complemento que permite abrir una terminal dentro de Pluma.
Conceptualmente:
┌──────────────────────────────────────┐
│ Pluma │
├──────────────────────────────────────┤
│ #!/bin/bash │
│ echo "Hola" │
│ │
├──────────────────────────────────────┤
│ $ ./script.sh │
│ Hola │
└──────────────────────────────────────┘
Esto puede ser especialmente cómodo para programación.
Editas:
script.sh
y ejecutas:
./script.sh
sin abandonar el editor.
30. Sistema de snippets
Otro concepto interesante es el de fragmentos de código (snippets).
Por ejemplo, en vez de escribir repetidamente:
if __name__ == "__main__":
main()
un sistema de snippets puede permitir insertar automáticamente una plantilla.
Conceptualmente:
abreviatura
↓
snippet
↓
código completo
Esto puede acelerar considerablemente determinadas tareas de programación.
31. Integración con Git
Dependiendo de los plugins instalados, Pluma puede ofrecer cierta integración con sistemas de control de versiones.
Por ejemplo, un proyecto:
proyecto/
├── .git/
├── main.py
├── config.py
└── README.md
puede abrirse en Pluma mientras otras herramientas gestionan Git.
Es importante distinguir:
Pluma
↓
edición
Git
↓
control de versiones
Pluma no sustituye a Git.
32. Archivos de configuración
Pluma es especialmente útil para editar archivos de configuración Linux.
Por ejemplo:
~/.bashrc
~/.profile
~/.config/...
y muchos otros archivos de texto.
Aquí aparece una característica interesante de los editores gráficos Linux:
Pluma
│
├── usuario
│
└── permisos
│
▼
archivo
Si intentas modificar un archivo que tu usuario no puede escribir, Pluma no puede simplemente saltarse los permisos del sistema.
Esto es una propiedad de seguridad del sistema operativo.
33. Root y permisos
Supongamos:
/etc/algo.conf
pertenece a:
root:root
y tu usuario no tiene permisos de escritura.
Abrirlo con Pluma no convierte mágicamente al editor en root.
Puedes leerlo, pero guardar puede fallar.
La razón es:
Pluma
│
▼
usuario actual
│
▼
kernel Linux
│
▼
permisos del archivo
El kernel es quien decide si puedes escribir.
Esto es una distinción importante entre:
editor gráfico
y:
privilegios del sistema
34. UTF-8 y Unicode
Pluma está pensado para trabajar en entornos modernos donde Unicode/UTF-8 es la codificación habitual.
Esto permite editar:
Español
Português
Français
Ελληνικά
Русский
中文
日本語
العربية
etc.
Pero nuevamente:
Unicode
es un estándar de caracteres, mientras:
UTF-8
es una forma concreta de codificarlos como bytes.
35. Soporte de archivos grandes
Pluma está pensado principalmente para archivos de texto de tamaño razonable.
No es buena idea asumir que es la herramienta ideal para abrir:
archivo.log
de varios gigabytes.
Para archivos gigantes pueden ser más apropiadas herramientas como:
less
tail
grep
awk
sed
Por ejemplo:
less enorme.log
o:
tail -f enorme.log
Pluma está optimizado para editar, no para analizar logs gigantescos.
36. Seguridad y archivos remotos
Pluma puede trabajar con archivos accesibles a través de las capacidades de acceso de archivos proporcionadas por el entorno GTK/GIO, dependiendo de la configuración y versión.
Esto significa que el concepto de:
archivo local
puede extenderse a recursos accesibles mediante mecanismos de escritorio.
Pero para administración remota avanzada normalmente es más apropiado utilizar:
ssh
scp
sftp
rsync
y después editar localmente o utilizar herramientas especializadas.
37. Integración con el gestor de archivos Caja
Dentro del ecosistema MATE, Caja es el administrador de archivos.
Una interacción típica sería:
Caja
│
│ doble clic
▼
archivo.txt
│
▼
Pluma
Por ejemplo:
/home/usuario/documentos/notas.txt
puede abrirse desde Caja con Pluma.
Esto genera una experiencia bastante integrada:
Caja → localizar archivo
↓
Pluma
↓
editar
↓
guardar
38. Asociación de archivos
MATE/Linux utiliza asociaciones para decidir qué aplicación debe abrir determinados tipos de archivos.
Por ejemplo:
.txt → Pluma
.py → Pluma
.conf → Pluma
aunque las asociaciones concretas dependen de tu sistema.
Así, cuando haces doble clic sobre un archivo de texto, el escritorio puede decidir:
archivo
↓
MIME type
↓
aplicación asociada
↓
Pluma
39. ¿Qué es un MIME type?
Linux no siempre determina el tipo de archivo simplemente por su extensión.
Puede utilizar información MIME.
Por ejemplo:
archivo.txt
puede identificarse como:
text/plain
mientras:
archivo.html
puede identificarse como:
text/html
Esto ayuda al escritorio a decidir qué aplicación utilizar.
40. Interfaz gráfica
La interfaz de Pluma sigue una filosofía tradicional de aplicaciones GTK.
Normalmente encontramos:
┌─────────────────────────────────────────────────┐
│ Archivo Editar Ver Buscar Herramientas ... │
├─────────────────────────────────────────────────┤
│ [Nuevo] [Abrir] [Guardar] ... │
├─────────────────────────────────────────────────┤
│ 1 #!/usr/bin/env python3 │
│ 2 │
│ 3 print("Hola") │
│ 4 │
│ 5 │
├─────────────────────────────────────────────────┤
│ Línea 3, Columna 12 Python UTF-8 │
└─────────────────────────────────────────────────┘
La interfaz busca ser familiar para usuarios de editores gráficos tradicionales.
41. Menús principales
Dependiendo de la versión, normalmente encontrarás funciones agrupadas alrededor de:
Archivo
Editar
Ver
Buscar
Herramientas
Ayuda
Desde ahí se accede a operaciones como:
Nuevo
Abrir
Guardar
Guardar como
Cerrar



El Mundo de Ubuntu en las Redes Sociales
Espero que esta publicación te haya gustado. Si tienes alguna duda, consulta o quieras complementar este post, no dudes en escribir en la zona de comentarios. También puedes visitar Facebook, Twitter, Google +, Linkedin, Instagram, Pinterest, restantes Redes Sociales y Feedly donde encontrarás información complementaria a este blog. COMPARTE EN!