2022-10-31 11:39:53 +01:00

147 lines
5.4 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Sans ligne éditoriale fixe • Neovim : les registres
</title>
<!-- CSS -->
<link rel="stylesheet" href="/assets/fonts.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css"
integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
<link rel="stylesheet" href="/assets/tale.css">
<!-- Favicon -->
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon.png">
<link rel="feed" href="/rss.xml" type="application/rss+xml" title="Sans ligne éditoriale fixe" />
</head>
<body>
<nav class="nav">
<div class="nav-container">
<a href="/">
<h2 class="nav-title">Sans ligne éditoriale fixe</h2>
</a>
<ul>
<li><a href="/pages/uhl">UHL</a></li>
<li><a href="/pages/about">À propos</a></li>
<li><a href="/archives/">Archives</a></li>
<li><a href="/tags/">Tags</a></li>
<li><a href="/rss.xml"><i class="fa fa-rss-square"></i></a></li>
</ul>
<div class="site-description"></div>
</div>
</nav>
<main class="content">
<div class="post">
<h1 class="post-title">Neovim : les registres</h1>
<div class="post-line"></div>
<div class="post-info">
<div class="date">
<time datetime="
Mercredi
21
septembre
2022
">
Mercredi
21
septembre
2022
</time>
<span class="fas fa-clock eta"></span>
≈ 2 min
</div>
<div class="tags">
<span class="fa fa-tags"></span>
<a href="/tags/neovim" class="tag">Neovim</a>,
<a href="/tags/outil" class="tag">Outil</a>
</div>
<br />
</div>
<article>
<p>Les registres sont des espaces mémoires internes à Neovim (mais aussi Vim évidemment) où l'on peut copier du texte. Le mécanisme est le même que le presse-papier de l'OS, mis à part que l'on n'est pas limité à une seule copie.</p>
<h2 id="comment-cela-fonctionne">Comment cela fonctionne ?</h2>
<p>Pour accéder à un registre, il faut utiliser le caractère <code>&quot;.</code>. Par exemple, pour accéder au registre r, il faut taper la séquence <code>&quot;r</code>.
Maintenant, il ne reste plus qu'à appliquer une opération à ce registre. Si l'on veut copier un texte préalablement sélectionné dans notre registre r : <code>&quot;ry</code>. Et pour coller ce dernier : <code>&quot;rp</code>.
La commande <code>:reg</code> permet de voir le contenu de tous les registres.</p>
<h2 id="le-registre-par-defaut">Le registre par défaut</h2>
<p>Lorsque aucun registre n'est spécifié, sur les commandes de suppression (oui, quand on supprime du texte, il est également copié) ou de copie, le texte est placé dans le registre <code>&quot;&quot;</code>.
En fait, une simple copie y est un raccourci de <code>&quot;&quot;y</code>. Idem pour p.</p>
<h2 id="les-registres-numerotes">Les registres numérotés</h2>
<p>Nous sommes tous tombés dans le piège de copier un texte, d'en supprimer un autre, et en voulant copier le premier, il a disparu. En fait, il n'a disparu que du registre par défaut, mais il est toujours présent dans le registre <code>&quot;0</code>.
<code>&quot;0</code> aura toujours le dernier texte copié.
<code>&quot;1</code> à <code>&quot;9</code> contiennent les neuf derniers textes supprimés (via la commande d), <code>&quot;1</code> état le plus récent.</p>
<p>Une autre possibilité pour contrer ce problème est d'utiliser le <em>Black hole register <code>&quot;_</code></em>. La séquence <code>&quot;_d</code> supprime le texte sans le copier dans un registre.</p>
<h2 id="les-registres-en-lecture-seule">Les registres en lecture seule</h2>
<p><code>&quot;:</code> est la dernière commande exécutée. À mon sens, ce registre est peu utile.
<code>&quot;%</code> est le chemin du fichier courant, mais relatif au répertoire dans lequel Neovim a été ouvert. Pour avoir le chemin complet du fichier, j'utilise la commande suivante que j'ai mappée : <code>:lua vim.fn.setreg(&quot;+&quot;,vim.fn.system(&quot;pwd&quot;):gsub(&quot;\n$&quot;,&quot;&quot;)..&quot;/&quot;..vim.fn.getreg(&quot;%&quot;)).g('%'))</code>
<code>&quot;#</code> est le dernier fichier éditer. Avec les plugins permettant une navigation fluide, ce registre n'a que peu d'intérêt
<code>&quot;.</code> est le dernier texte inséré (via le mode insertion).</p>
</article>
</div>
<div class="pagination">
</div>
</main>
<footer>
<!-- <p><span class="external-icons"> -->
<!-- <a href="https://twitter.com/geobomatic"><i class="fab fa-twitter"></i></a> &middot; -->
<!-- <a href="https://github.com/Geobert"><i class="fab fa-github"></i></a> &middot; -->
<!-- <a href="https://www.flickr.com/photos/geobmcfly/"><i class="fab fa-flickr"></i></a> -->
<!-- </span></p> -->
<span>
&copy; 2022 Yann Fery •
<a href="/pages/mentions-legales">Mentions légales</a>
Propulsé par
<a href="https://getzola.org/">Zola</a> avec un template de <a href="https://github.com/Geobert/blog/">Geobert</a>.
</span>
</footer>
</body>
</html>