[LINUX] Afficher des images et lire des vidéos dans le terminal Neovim

introduction

Depuis l'introduction de libsixel, Sixel Graphics, qui affiche des images sur le terminal, est devenu assez facile à utiliser.

En plus d'afficher directement, en utilisant un terminal pouvant utiliser l'extension Sixel d'une fonction appelée DRCS, il est possible d'afficher des images avec sixel même sur le terminal fourni par Neovim fonctionnant dessus. @Arakiken a expliqué en détail l'extension Sixel de DRCS dans cet article, mais il est un peu mentionné dans cet article. , Je voudrais essayer le support DRCS-Sixel de Neovim.

Si vous utilisez la fonction «fenêtres flottantes» de Neovim, vous pouvez ouvrir une fenêtre avec une taille spécifiée n'importe où sur le tampon, et le terminal fonctionnera dessus. Il sera possible de jouer.

À propos de l'environnement

Utilisez un émulateur de terminal pouvant utiliser DRCS-Sixel, tel que RLogin ou mlterm.

Installez libsixel

Il est généralement inclus dans le package de distribution maintenant, alors installons-le rapidement.

~% sudo apt-get install libsixel-bin libsixel-dev

Installez libvterm

Une bibliothèque utilisée par la fonction : terminal de neovim et de vim. Le libvterm introduit dans «À propos de l'extension Sixel de DRCS» est [ce référentiel] Il peut être construit et installé en le déposant depuis (https://bitbucket.org/arakiken/libvterm/src/default/), mais comme le Neovim actuel nécessite la version 0.1 ou supérieure de libvterm, le code source est le suivant. Prenons et déployons.

~% wget http://www.leonerd.org.uk/code/libvterm/libvterm-0.1.2.tar.gz
~% tar xvzf libvterm-0.1.2.tar.gz

La différence pour la prise en charge de DRCS-Sixel est la suivante. https://bitbucket.org/arakiken/libvterm/branch/sixel#diff J'ai essayé d'appliquer le diff manuellement cette fois. Après avoir modifié la source, créez et installez.

~% make
~% sudo make install

Installez Neovim

Il semble que Neovim dispose désormais d'un mécanisme pour implémenter le terminal en téléchargeant libvterm en cours de construction et en l'incorporant en lui-même, mais dans cette version groupée en spécifiant l'option suivante au moment de make Au lieu de cela, laissez le système d'exploitation utiliser le libvterm installé.

~% sudo apt-get install ninja-build gettext libtool libtool-bin autoconf automake cmake g++ pkg-config unzip
~% git clone https://github.com/neovim/neovim.git
~% cd neovim
~% make DEPS_CMAKE_FLAGS='-DUSE_BUNDLED_LIBVTERM=OFF'
~% sudo make install

Ceci termine l'installation de Neovim qui prend en charge DRCS-Sixel.

Essayez d'afficher l'image

Vous pouvez utiliser la commande ʻimg2sixelincluse dans libsixel pour afficher l'image. L'animation gif est également cool, mais elle n'a pas joué proprement, donc l'articleFFmpeg- dans l'article Introduction d'applications utilisant Sixel Graphics J'ai décidé d'utiliser la vidéo mpeg4 en utilisant sixel`.

Lors de l'utilisation de fenêtres flottantes, je me suis référé à l'article suivant. [Neovim] La fenêtre translucide peut maintenant être ouverte

Après avoir préparé une vidéo appelée miku.mp4, ajoutez ce qui suit au fichier de paramètres Neovim.

$HOME/.config/nvim/init.vim


command! Miku call s:miku()

function! s:miku()
    "Faire un tampon vide
    :let buf = nvim_create_buf(v:false, v:true)
    "Utilisez ce tampon pour ouvrir des fenêtres flottantes
    :call nvim_open_win(buf, v:true, {'relative': 'win', 'height': 30, 'width': 40, 'col': 44, 'row': 14})
    "Rendez-le transparent
    :set winblend=100
   "Ouvrez un terminal et exécutez une commande
    :terminal /usr/local/bin/ffmpeg2 -i ~/Desktop/images/miku.mp4 -f sixel -loglevel quiet -pix_fmt rgb24 -s 240x400 -
endfunction

Si vous démarrez Neovim dans cet état et tapez la commande : miku

mikumiku.gif

La vidéo sera lue comme ceci (désolé, la vidéo gif est très morose, mais en fait comme ça Joue plus facilement Sera). Si vous utilisez ce mécanisme, vous pouvez réaliser quelque chose de similaire à «l'éditeur que les mentors sortent et vous encouragent si vous sautez pendant un certain temps» qui était auparavant populaire sur Twitter.

Je pense qu'il existe de nombreuses autres façons intéressantes de l'utiliser, alors essayez-le!

Recommended Posts

Afficher des images et lire des vidéos dans le terminal Neovim
Afficher des images et lire des vidéos dans le terminal Neovim
Enregistrement et lecture sous Linux
Prenez une image avec Pepper et affichez-la sur votre tablette
Ajouter des lignes et du texte sur l'image
Mesurez la température et l'humidité intérieures et extérieures et affichez-les sur le tableau de bord
Afficher et prendre des images de caméra Web avec Python Kivy [GUI]
Exécuter une commande sur le serveur Web et afficher le résultat