Corrección ortográfica y plantillas en Neovim

Neovim

Este es uno de los capítulos del tutorial Neovim. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.

Actualmente estoy utilizando Neovim, entre otras cosas, para escribir los artículos que publico en atareao.es, los libros que recopilan los distintos tutoriales, los guiones de los podcast y de los vídeos. En este sentido Neovim, es una herramienta fundamental, y ha supuesto un antes y un después en lo que a mi producción literaria, por así llamarlo, se refiere. Pero, por supuesto, para poder hacer esto, y hacerlo con un mínimo de dignidad, me hacía falta un corrector ortográfico. Además, por supuesto, también lo utilizo para implementar scripts o desarrollar aplicaciones, con lo que también necesito, tener preparado parte del encabezado que acompaña a cada uno de esos elementos, y para esto utilizo plantillas. Así, en este artículo te quiero mostrar como puedes utilizar la corrección ortográfica y plantillas en Neovim.

Corrección ortográfica y plantillas en Neovim

Corrección ortográfica y plantillas en Neovim

Corrección ortográfica

En mi caso, la corrección ortográfica solo la tengo activada para los archivos markdown, entre otras cosas, porque la corrección ortográfica en un archivo de código puede ser una auténtica locura, o por lo menos así me lo parece. No es bastante con que tengas errores en el código, que el analizador de código descubra, determinados fallos, para que además te corrija. Mas en mi caso, que normalmente suelo utilizar el inglés como lenguaje para escribir las variables, etc.

Así, la parte de mi configuración que me facilita tener la corrección autográfica en Neovim, se limita a estas pocas líneas,

-- spell
exec ([[
    augroup markdownSpell
        autocmd!
        autocmd FileType markdown setlocal spell spelllang=es
        autocmd BufRead,BufNewFile *.md setlocal spell spelllang=es
    augroup END
  ]], false)

Plantillas

Por otro lado, y tal y como indico en la introducción, el otro elemento que utilizo, en este caso para el código que implemento, son las plantillas. Estas plantillas básicamente, y actualmente, se ciñen a los encabezados de cada uno de los archivos de código. Normalmente indican la autoría, el año y la licencia. Así como en el caso de que se trata de un script en Bash, también aparecerá el shebang.

De esta forma, la parte de la configuración que utilizo para la parte delas plantillas, es la siguiente,

-- templates
exec([[
  augroup templates
      au!
      let g:template_name = 'Lorenzo Carbonell <a.k.a. atareao>'
      autocmd BufNewFile *.* silent! execute '0r $HOME/.config/nvim/templates/'.expand("<afile>:e").'.tpl'
      autocmd BufNewFile * %s/{{YEAR}}/\=strftime('%Y')/ge
      autocmd BufNewFile * %s/{{NAME}}/\=template_name/ge
      autocmd BufNewFile * %s/{{EVAL\s*\([^}]*\)}}/\=eval(submatch(1))/ge
  augroup END
]], false)

Si te fijas, aquí indico la dirección en la que se encuentran las plantillas, que en mi caso es $HOME/.config/templates/. Para identificar la plantilla, lo que hago es poner la extensión del lenguaje de programación seguido de la extensión .tpl. De esta manera quedaría de esta forma,

  • Python => py.tpl
  • Bash => sh.tpl
  • Rust => sh.tpl
  • JavaScript => js.tpl

Dentro del archivo, por ejemplo py.tpl, encontrarás lo siguiente,

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# Copyright (c) {{YEAR}} {{NAME}}

# Permission is hereby granted, ...

Aquí, cabe destacar {{YEAR}} y {{NAME}} que sin dos variables que las reemplazo directamente por el año en curso, en el momento de editar el archivo y por una frase donde indico la autoría en una variable template_name, declarada con anterioridad. También es capaz de evaluar determinadas expresiones, pero esto es algo que hasta el momento no he utilizado.

Desde luego, que puedes añadir todos aquellos reemplazos que quieras, todo con la idea de que te resulte más cómodo trabajar con plantillas.

El vídeo

A continuación te dejo un vídeo, en el que te explico la utilización de la corrección ortográfica y las plantillas en Neovim.

6 comentarios en “Corrección ortográfica y plantillas en Neovim

  1. Salva hace 5 meses

    Buenas me haría falta sacar como variable el nombre del archivo, para una modificación del template, no sé como hacerlo. Podrías echarme una mano o remitirme a documentación. Gracias.

    1. atareao hace 5 meses

      Lo añadí a mis dotfiles, pero básicamente sería lo siguiente,
      exec([[
      augroup templates
      au!
      let g:template_name = ‘Lorenzo Carbonell
      autocmd BufNewFile *.* silent! execute ‘0r $HOME/.config/nvim/templates/’.expand(«:e»).’.tpl’
      autocmd BufNewFile * %s/{{YEAR}}/\=strftime(‘%Y’)/ge
      autocmd BufNewFile * %s/{{NAME}}/\=template_name/ge
      autocmd BufNewFile * %s/{{EVAL\s*\([^}]*\)}}/\=eval(submatch(1))/ge
      autocmd BufNewFile * %s/{{FILENAME}}/\=expand(‘%:t’)/ge
      augroup END
      ]], false)

  2. Salva hace 5 meses

    Otra cuestión, en mi configuración de vim tengo un plugin concretamente «Plug ‘vim-scripts/java_getset.vim’, es para generar setters y getters de java, como puedo aplicarlo en neovim? Además he logrado aplicar un par de cosas interesantes que tengo que pasarte, como renombrar variables e ir a la definición de una clase en otro archivo. Pero ya hablaremos. Gracias.

    1. atareao hace 5 meses

      Hola Salva,
      Para esto, yo utilizo los snippets, en concreto el complemento Luasnip

  3. Victor hace 1 mes

    Buenas,
    Una consulta, en el video, pones que los ficheros del «template» estan disponibles en tu github, pero he buscado y no los encuentro por ningun sitio.
    Muchas gracias por tus videos para iniciarse en neovim.

    1. Victor hace 1 mes

      Asi mismo, tambien no encuentro los del directorio «spell».
      Perdon por las molestias.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *