382 lines
15 KiB
HTML
382 lines
15 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<title>Even better Neovim with Zellij terminal multiplexer - 🚀 ApolloNvim</title>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
|
|
<link rel="stylesheet" href="../../../assets/css/darcula-highlight.min.css">
|
|
|
|
<link rel="stylesheet" href="../../../assets/css/bootstrap.min.css">
|
|
<link rel="stylesheet" href="../../../assets/css/dracula-ui.min.css">
|
|
<link rel="stylesheet" href="../../../assets/css/mkdocs.min.css">
|
|
<link href="../../../style/style.css" rel="stylesheet">
|
|
|
|
|
|
<link rel="icon" type="image/x-icon" href="../../../assets/img/favicon.ico">
|
|
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
|
|
<script>hljs.initHighlightingOnLoad();</script>
|
|
|
|
</head>
|
|
|
|
<body class="drac-bg-black-secondary drac-text-grey-ternary drac-text drac-scrollbar-purple">
|
|
|
|
<main class="d-flex">
|
|
|
|
<!-- block sidebar -->
|
|
<nav id="sidebar" class="sidebar drac-bg-black">
|
|
<div class="custom-menu">
|
|
<button type="button" id="sidebarCollapse" class="btn btn-primary">
|
|
<i class="fa fa-bars"></i>
|
|
<span class="sr-only">Menu</span>
|
|
</button>
|
|
</div>
|
|
|
|
<div class="p-4">
|
|
|
|
|
|
<div class="drac-text-center">
|
|
|
|
<span class="drac-text drac-line-height drac-text-white">🚀 ApolloNvim</span>
|
|
|
|
</div>
|
|
|
|
<div class="drac-box flex-column">
|
|
<ul class="dot-ul">
|
|
<li><div class="dot-li drac-bg-cyan"></div></li>
|
|
<li><div class="dot-li drac-bg-green"></div></li>
|
|
<li><div class="dot-li drac-bg-orange"></div></li>
|
|
<li><div class="dot-li drac-bg-pink"></div></li>
|
|
<li><div class="dot-li drac-bg-purple"></div></li>
|
|
<li><div class="dot-li drac-bg-red"></div></li>
|
|
<li><div class="dot-li drac-bg-yellow"></div></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<hr class="drac-divider" />
|
|
|
|
<!-- block menu -->
|
|
<ul class="mb-5 drac-list drac-list-none">
|
|
|
|
<li class="drac-box">
|
|
<a href="../../.."
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
🏘 Home
|
|
</a>
|
|
</li>
|
|
<li class="drac-box">
|
|
<a href="../../installation/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
🛠 Installation
|
|
</a>
|
|
</li>
|
|
<li class="drac-box">
|
|
<a href="../../plugins/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
🗄 Plugins
|
|
</a>
|
|
</li>
|
|
<li class="drac-box">
|
|
<a href="../../.."
|
|
class=" active
|
|
drac-anchor btn-toggle d-inline-flex align-items-center border-0 drac-text-purple--hover collapsed"
|
|
data-bs-toggle="collapse" data-bs-target="#📑-tutorials-collapse" aria-expanded="false">
|
|
📑 Tutorials
|
|
</a>
|
|
<div class="collapse" id="📑-tutorials-collapse">
|
|
<ul class="mb-5 drac-list drac-list-none">
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../01.%20vimplug/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
How to install vim.plug into Neovim
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../02.%20keyshortcuts/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
Default keyboard shortcuts
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../03.%20Jak%20nainstalovat%20Codeium%20do%20Neovim/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
How to install Codeium on Neovim
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../04.%20Jak%20nainstalovat%20Telescope%20do%20editoru%20Neovim/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
Telescope
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../05.%20Barevn%C3%A9%20sch%C3%A9ma/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
Color scheme
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../06.%20Autosave/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
Automatic saving
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../07.%20Kop%C3%ADrov%C3%A1n%C3%AD%20a%20Vkl%C3%A1d%C3%A1n%C3%AD%20do%20a%20z%20Neovim%20z%20extern%C3%ADch%20zdroj%C5%AF/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
Copying and Pasting to and from Neovim from external sources
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../08.%20Markdown_syntax/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
Markdown_syntax
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../09.%20init.vim%20z%C3%A1kladn%C3%AD%20nastaven%C3%AD/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
init.vim basic settings
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../10.%20vim-fugitive%20ovl%C3%A1dni%20Git%20v%20Neovim/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
vim-fugitive
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../11.%20Gitsigns%20drobn%C3%A9%20vylep%C5%A1en%C3%AD%20git%20v%20Neovim/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
Gitsigns minor improvements to git in Neovim
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="./"
|
|
class=" active
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
Even better Neovim with Zellij terminal multiplexer
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../13.%20Pou%C5%BE%C3%ADv%C3%A1n%C3%AD%20relativn%C3%ADch%20%C4%8D%C3%ADsel%20%C5%99%C3%A1dk%C5%AF/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
Using relative line numbers
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../15.%20Jak%20na%20kop%C3%ADrov%C3%A1n%C3%AD%20a%20vkl%C3%A1d%C3%A1n%C3%AD/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
How to copy and paste
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../17.%20Jak%20opravit%20nefunk%C4%8Dn%C3%AD%20Prettier/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
How to fix a broken Prettier
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../18.%20Konfigurace%20Lua/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
Configuring plagin in Lua file
|
|
</a>
|
|
</li>
|
|
|
|
<li class="drac-box-ternary">
|
|
<a href="../20.%20N%C3%A1hledy%20markdown%20v%20nvim/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
How to show markdown preview in browser using coc-webview
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li class="drac-box">
|
|
<a href="../../../contact/"
|
|
class="
|
|
drac-anchor d-inline-flex align-items-center border-0 drac-text-purple--hover">
|
|
📪 Contact
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
<!-- endblock -->
|
|
</div>
|
|
</nav>
|
|
<!-- endblock -->
|
|
|
|
<nav class="divider drac-bg-purple-cyan"></nav>
|
|
|
|
<div class="content">
|
|
<!-- block header -->
|
|
<header>
|
|
<nav class="navbar navbar-expand-xl drac-bg-purple">
|
|
<div class="container-fluid">
|
|
|
|
<button class="navbar-toggler w-100 text-center" type="button" data-bs-toggle="collapse" data-bs-target="#navbarsMenu"
|
|
aria-controls="navbarsMenu" aria-expanded="false" aria-label="Toggle navigation">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
|
|
<div class="collapse navbar-collapse flex-column ml-auto" id="navbarsMenu">
|
|
<ul class="navbar-nav text-md-center">
|
|
|
|
<!-- block preview -->
|
|
<li class="nav-item">
|
|
|
|
<div class="container">
|
|
<div class="row row-preview">
|
|
<div class="col">
|
|
<a href="../11.%20Gitsigns%20drobn%C3%A9%20vylep%C5%A1en%C3%AD%20git%20v%20Neovim/"
|
|
class="btn-preview drac-btn drac-btn-outline drac-text-white drac-text-cyan-green--hover">
|
|
<i class="fa fa-arrow-left"></i> Previous
|
|
</a>
|
|
</div>
|
|
<div class="col">
|
|
<a href="../13.%20Pou%C5%BE%C3%ADv%C3%A1n%C3%AD%20relativn%C3%ADch%20%C4%8D%C3%ADsel%20%C5%99%C3%A1dk%C5%AF/"
|
|
class="btn-preview drac-btn drac-btn-outline drac-text-white drac-text-cyan-green--hover" style="padding-left: 3%;">
|
|
Next <i class="fa fa-arrow-right"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<!-- endblock -->
|
|
|
|
<!-- block search -->
|
|
<li class="nav-item"><div role="search" class="search-box">
|
|
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
|
|
<input type="text" name="q" class="drac-input drac-input-search drac-input-white drac-text-white drac-bg-black-secondary"
|
|
placeholder="Search docs" title="Type search term here" />
|
|
</form>
|
|
</div>
|
|
</li>
|
|
<!-- endblock -->
|
|
|
|
<!-- block source -->
|
|
<li class="nav-item">
|
|
|
|
</li>
|
|
<!-- endblock -->
|
|
|
|
</ul>
|
|
</div>
|
|
|
|
</div>
|
|
</nav>
|
|
</header>
|
|
<!-- endblock -->
|
|
|
|
<!-- block content -->
|
|
<section class="p-md-5 section-content">
|
|
<article>
|
|
<p><h1 id="12-even-better-neovim-with-zellij-terminal-multiplexer">12. Even better Neovim with Zellij terminal multiplexer</h1>
|
|
<p>What I miss about Neovim is a way to call a terminal from it and open the terminal (the second terminal window below the Neovim window, see picture) the same way I'm working on.</p>
|
|
<p>To achieve this, I use <a href="https://zellij.dev/" target="_blank">Zellij</a> , which is a terminal multiplexer.</p>
|
|
<p>The ## Zellij</p>
|
|
<p><a href="https://zellij.dev/" target="_blank">Zellij</a> configuration</p>
|
|
<p>allows you to create custom layouts that can be invoked at startup to better tailor them to the work you'll be doing.</p>
|
|
<p>The following is the configuration for working with the Neovi text editor. I saved this configuration under this path <code>~/.config/zellij/layouts/nvim.kdl</code>: </p>
|
|
<div class="codehilite"><pre><span></span><code>layout {
|
|
panel size=1 borderless=true {
|
|
plugin location="zellij:tab-bar
|
|
" }
|
|
panel {
|
|
command "nvim
|
|
" args ".
|
|
" }
|
|
panel split_direction="vertical" size="10%" {
|
|
|
|
}
|
|
panel size=2 borderless=true {
|
|
plugin location="zellij:status-bar
|
|
" }
|
|
}
|
|
</code></pre></div>
|
|
|
|
<p>The result is the following layout:
|
|
<img alt="" src="https://lukan.cz/wp-content/uploads/2024/03/HelixAndZellij-700x382.png" /></p>
|
|
<p>Nvim running in the top pane with the terminal console in another pane at the bottom, in the same path as the project I'm working with!!! and this is exactly the goal I wanted to achieve.</p>
|
|
<h2 id="system-configuration">System Configuration</h2>
|
|
<p>Now to run zellij with a custom layout and Nvim instance you need to run: </p>
|
|
<div class="codehilite"><pre><span></span><code>zellij --layout ~/.config/zellij/layouts/nvim.kdl
|
|
</code></pre></div>
|
|
|
|
<p>In the location (folder) in the terminal where you want to run Neovim.</p>
|
|
<p>Now to simplify this command, I created an alias <code>znv</code> and saved it in my <code>~/.bashrc</code> file. </p>
|
|
<p><code>alias znv='zellij --layout $HOME/.config/zellij/layouts/nvim.kdl'</code></p>
|
|
<p>With this configuration, every time I need to create a new instance of Neovim, I just type <em>znv</em> in the directory I want to work with, and <a href="https://zellij.dev/" target="_blank">Zellij</a> will call Neovim and automatically open the project.</p>
|
|
<div style="text-align: center;">
|
|
Copyright © 2024 - 2025 🚀 ApolloNvim / Lukáš Kaňka
|
|
</div></p>
|
|
</article>
|
|
</section>
|
|
<!-- endblock -->
|
|
|
|
<!-- block footer -->
|
|
<footer>
|
|
<div class="d-flex flex-sm-row justify-content-between py-2 border-top drac-text-black drac-bg-cyan-green">
|
|
<a href="https://github.com/dracula/mkdocs" target="_blank" style="padding-left: 1%;"
|
|
class="footer-text drac-anchor drac-text-black drac-text-purple--hover">
|
|
Made with Dracula Theme for MkDocs
|
|
</a>
|
|
</div>
|
|
</footer>
|
|
<!-- endblock -->
|
|
</div>
|
|
|
|
</main>
|
|
|
|
<script>var base_url = '../../..';</script>
|
|
<script src="../../../assets/js/jquery-3.3.1.slim.min.js"></script>
|
|
<script src="../../../assets/js/bootstrap.bundle.min.js"></script>
|
|
<script src="../../../assets/js/mkdocs.js"></script>
|
|
<script src="../../../javascripts/extra.js" defer></script>
|
|
<script src="../../../search/main.js" defer></script>
|
|
|
|
</body>
|
|
|
|
</html> |