147 lines
5.4 KiB
HTML
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>".</code>. Par exemple, pour accéder au registre r, il faut taper la séquence <code>"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>"ry</code>. Et pour coller ce dernier : <code>"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>""</code>.
|
|
En fait, une simple copie y est un raccourci de <code>""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>"0</code>.
|
|
<code>"0</code> aura toujours le dernier texte copié.
|
|
<code>"1</code> à <code>"9</code> contiennent les neuf derniers textes supprimés (via la commande d), <code>"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>"_</code></em>. La séquence <code>"_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>":</code> est la dernière commande exécutée. À mon sens, ce registre est peu utile.
|
|
<code>"%</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("+",vim.fn.system("pwd"):gsub("\n$","").."/"..vim.fn.getreg("%")).g('%'))</code>
|
|
<code>"#</code> est le dernier fichier éditer. Avec les plugins permettant une navigation fluide, ce registre n'a que peu d'intérêt
|
|
<code>".</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> · -->
|
|
<!-- <a href="https://github.com/Geobert"><i class="fab fa-github"></i></a> · -->
|
|
<!-- <a href="https://www.flickr.com/photos/geobmcfly/"><i class="fab fa-flickr"></i></a> -->
|
|
<!-- </span></p> -->
|
|
<span>
|
|
© 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>
|