diff options
author | omentic | 2023-11-01 04:44:44 +0000 |
---|---|---|
committer | omentic | 2023-11-01 04:44:44 +0000 |
commit | 827c9ac50694240b91fa43ae3457732c526b1bb4 (patch) | |
tree | 33748cac5e724849a647ea0783d9d5191aedd784 /23.10.1/remapping.html | |
parent | 2fc85c6c68ff25df35cf4a9979a97a902ec34313 (diff) |
deploy: 9663740245e2c18e160f6563d2f114f59d27b7c9
Diffstat (limited to '23.10.1/remapping.html')
-rw-r--r-- | 23.10.1/remapping.html | 315 |
1 files changed, 0 insertions, 315 deletions
diff --git a/23.10.1/remapping.html b/23.10.1/remapping.html deleted file mode 100644 index e49afd36..00000000 --- a/23.10.1/remapping.html +++ /dev/null @@ -1,315 +0,0 @@ -<!DOCTYPE HTML> -<html lang="en" class="colibri" dir="ltr"> - <head> - <!-- Book generated using mdBook --> - <meta charset="UTF-8"> - <title>Key remapping</title> - - - <!-- Custom HTML head --> - - <meta name="description" content=""> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <meta name="theme-color" content="#ffffff"> - - <link rel="icon" href="favicon.svg"> - <link rel="shortcut icon" href="favicon.png"> - <link rel="stylesheet" href="css/variables.css"> - <link rel="stylesheet" href="css/general.css"> - <link rel="stylesheet" href="css/chrome.css"> - <link rel="stylesheet" href="css/print.css" media="print"> - - <!-- Fonts --> - <link rel="stylesheet" href="FontAwesome/css/font-awesome.css"> - <link rel="stylesheet" href="fonts/fonts.css"> - - <!-- Highlight.js Stylesheets --> - <link rel="stylesheet" href="highlight.css"> - <link rel="stylesheet" href="tomorrow-night.css"> - <link rel="stylesheet" href="ayu-highlight.css"> - - <!-- Custom theme stylesheets --> - <link rel="stylesheet" href="custom.css"> - - </head> - <body class="sidebar-visible no-js"> - <div id="body-container"> - <!-- Provide site root to javascript --> - <script> - var path_to_root = ""; - var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "colibri" : "colibri"; - </script> - - <!-- Work around some values being stored in localStorage wrapped in quotes --> - <script> - try { - var theme = localStorage.getItem('mdbook-theme'); - var sidebar = localStorage.getItem('mdbook-sidebar'); - - if (theme.startsWith('"') && theme.endsWith('"')) { - localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1)); - } - - if (sidebar.startsWith('"') && sidebar.endsWith('"')) { - localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1)); - } - } catch (e) { } - </script> - - <!-- Set the theme before any content is loaded, prevents flash --> - <script> - var theme; - try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { } - if (theme === null || theme === undefined) { theme = default_theme; } - var html = document.querySelector('html'); - html.classList.remove('colibri') - html.classList.add(theme); - var body = document.querySelector('body'); - body.classList.remove('no-js') - body.classList.add('js'); - </script> - - <input type="checkbox" id="sidebar-toggle-anchor" class="hidden"> - - <!-- Hide / unhide sidebar before it is displayed --> - <script> - var body = document.querySelector('body'); - var sidebar = null; - var sidebar_toggle = document.getElementById("sidebar-toggle-anchor"); - if (document.body.clientWidth >= 1080) { - try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { } - sidebar = sidebar || 'visible'; - } else { - sidebar = 'hidden'; - } - sidebar_toggle.checked = sidebar === 'visible'; - body.classList.remove('sidebar-visible'); - body.classList.add("sidebar-" + sidebar); - </script> - - <nav id="sidebar" class="sidebar" aria-label="Table of contents"> - <div class="sidebar-scrollbox"> - <ol class="chapter"><li class="chapter-item expanded affix "><a href="title-page.html">Helix</a></li><li class="chapter-item expanded "><a href="install.html"><strong aria-hidden="true">1.</strong> Installation</a></li><li class="chapter-item expanded "><a href="usage.html"><strong aria-hidden="true">2.</strong> Usage</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="keymap.html"><strong aria-hidden="true">2.1.</strong> Keymap</a></li><li class="chapter-item expanded "><a href="commands.html"><strong aria-hidden="true">2.2.</strong> Commands</a></li><li class="chapter-item expanded "><a href="lang-support.html"><strong aria-hidden="true">2.3.</strong> Language support</a></li></ol></li><li class="chapter-item expanded "><a href="from-vim.html"><strong aria-hidden="true">3.</strong> Migrating from Vim</a></li><li class="chapter-item expanded "><a href="configuration.html"><strong aria-hidden="true">4.</strong> Configuration</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="themes.html"><strong aria-hidden="true">4.1.</strong> Themes</a></li><li class="chapter-item expanded "><a href="remapping.html" class="active"><strong aria-hidden="true">4.2.</strong> Key remapping</a></li><li class="chapter-item expanded "><a href="languages.html"><strong aria-hidden="true">4.3.</strong> Languages</a></li></ol></li><li class="chapter-item expanded "><a href="guides/index.html"><strong aria-hidden="true">5.</strong> Guides</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="guides/adding_languages.html"><strong aria-hidden="true">5.1.</strong> Adding languages</a></li><li class="chapter-item expanded "><a href="guides/textobject.html"><strong aria-hidden="true">5.2.</strong> Adding textobject queries</a></li><li class="chapter-item expanded "><a href="guides/indent.html"><strong aria-hidden="true">5.3.</strong> Adding indent queries</a></li><li class="chapter-item expanded "><a href="guides/injection.html"><strong aria-hidden="true">5.4.</strong> Adding injection queries</a></li><li class="chapter-item expanded "><a href="guides/rainbow_bracket_queries.html"><strong aria-hidden="true">5.5.</strong> Adding rainbow bracket queries</a></li></ol></li></ol> - </div> - <div id="sidebar-resize-handle" class="sidebar-resize-handle"></div> - </nav> - - <!-- Track and set sidebar scroll position --> - <script> - var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox'); - sidebarScrollbox.addEventListener('click', function(e) { - if (e.target.tagName === 'A') { - sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop); - } - }, { passive: true }); - var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll'); - sessionStorage.removeItem('sidebar-scroll'); - if (sidebarScrollTop) { - // preserve sidebar scroll position when navigating via links within sidebar - sidebarScrollbox.scrollTop = sidebarScrollTop; - } else { - // scroll sidebar to current active section when navigating via "next/previous chapter" buttons - var activeSection = document.querySelector('#sidebar .active'); - if (activeSection) { - activeSection.scrollIntoView({ block: 'center' }); - } - } - </script> - - <div id="page-wrapper" class="page-wrapper"> - - <div class="page"> - <div id="menu-bar-hover-placeholder"></div> - <div id="menu-bar" class="menu-bar sticky"> - <div class="left-buttons"> - <label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar"> - <i class="fa fa-bars"></i> - </label> - <button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list"> - <i class="fa fa-paint-brush"></i> - </button> - <ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu"> - <li role="none"><button role="menuitem" class="theme" id="light">Light</button></li> - <li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li> - <li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li> - <li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li> - <li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li> - <li role="none"><button role="menuitem" class="theme" id="colibri">Colibri</button></li> - </ul> - <button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar"> - <i class="fa fa-search"></i> - </button> - </div> - - <h1 class="menu-title"></h1> - - <div class="right-buttons"> - <a href="print.html" title="Print this book" aria-label="Print this book"> - <i id="print-button" class="fa fa-print"></i> - </a> - <a href="https://github.com/helix-editor/helix" title="Git repository" aria-label="Git repository"> - <i id="git-repository-button" class="fa fa-github"></i> - </a> - <a href="https://github.com/helix-editor/helix/edit/master/book/src/remapping.md" title="Suggest an edit" aria-label="Suggest an edit"> - <i id="git-edit-button" class="fa fa-edit"></i> - </a> - - </div> - </div> - - <div id="search-wrapper" class="hidden"> - <form id="searchbar-outer" class="searchbar-outer"> - <input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header"> - </form> - <div id="searchresults-outer" class="searchresults-outer hidden"> - <div id="searchresults-header" class="searchresults-header"></div> - <ul id="searchresults"> - </ul> - </div> - </div> - - <!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM --> - <script> - document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible'); - document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible'); - Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) { - link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1); - }); - </script> - - <div id="content" class="content"> - <main> - <h1 id="key-remapping"><a class="header" href="#key-remapping">Key remapping</a></h1> -<p>Helix currently supports one-way key remapping through a simple TOML configuration -file. (More powerful solutions such as rebinding via commands will be -available in the future).</p> -<p>To remap keys, create a <code>config.toml</code> file in your <code>helix</code> configuration -directory (default <code>~/.config/helix</code> on Linux systems) with a structure like -this:</p> -<pre><code class="language-toml"># At most one section each of 'keys.normal', 'keys.insert' and 'keys.select' -[keys.normal] -C-s = ":w" # Maps Ctrl-s to the typable command :w which is an alias for :write (save file) -C-o = ":open ~/.config/helix/config.toml" # Maps Ctrl-o to opening of the helix config file -a = "move_char_left" # Maps the 'a' key to the move_char_left command -w = "move_line_up" # Maps the 'w' key move_line_up -"C-S-esc" = "extend_line" # Maps Ctrl-Shift-Escape to extend_line -g = { a = "code_action" } # Maps `ga` to show possible code actions -"ret" = ["open_below", "normal_mode"] # Maps the enter key to open_below then re-enter normal mode - -[keys.insert] -"A-x" = "normal_mode" # Maps Alt-X to enter normal mode -j = { k = "normal_mode" } # Maps `jk` to exit insert mode -</code></pre> -<h2 id="minor-modes"><a class="header" href="#minor-modes">Minor modes</a></h2> -<p>Minor modes are accessed by pressing a key (usually from normal mode), giving access to dedicated bindings. Bindings -can be modified or added by nesting definitions.</p> -<pre><code class="language-toml">[keys.insert.j] -k = "normal_mode" # Maps `jk` to exit insert mode - -[keys.normal.g] -a = "code_action" # Maps `ga` to show possible code actions - -# invert `j` and `k` in view mode -[keys.normal.z] -j = "scroll_up" -k = "scroll_down" - -# create a new minor mode bound to `+` -[keys.normal."+"] -m = ":run-shell-command make" -c = ":run-shell-command cargo build" -t = ":run-shell-command cargo test" -</code></pre> -<h2 id="special-keys-and-modifiers"><a class="header" href="#special-keys-and-modifiers">Special keys and modifiers</a></h2> -<p>Ctrl, Shift and Alt modifiers are encoded respectively with the prefixes -<code>C-</code>, <code>S-</code> and <code>A-</code>. Special keys are encoded as follows:</p> -<div class="table-wrapper"><table><thead><tr><th>Key name</th><th>Representation</th></tr></thead><tbody> -<tr><td>Backspace</td><td><code>"backspace"</code></td></tr> -<tr><td>Space</td><td><code>"space"</code></td></tr> -<tr><td>Return/Enter</td><td><code>"ret"</code></td></tr> -<tr><td>-</td><td><code>"minus"</code></td></tr> -<tr><td>Left</td><td><code>"left"</code></td></tr> -<tr><td>Right</td><td><code>"right"</code></td></tr> -<tr><td>Up</td><td><code>"up"</code></td></tr> -<tr><td>Down</td><td><code>"down"</code></td></tr> -<tr><td>Home</td><td><code>"home"</code></td></tr> -<tr><td>End</td><td><code>"end"</code></td></tr> -<tr><td>Page Up</td><td><code>"pageup"</code></td></tr> -<tr><td>Page Down</td><td><code>"pagedown"</code></td></tr> -<tr><td>Tab</td><td><code>"tab"</code></td></tr> -<tr><td>Delete</td><td><code>"del"</code></td></tr> -<tr><td>Insert</td><td><code>"ins"</code></td></tr> -<tr><td>Null</td><td><code>"null"</code></td></tr> -<tr><td>Escape</td><td><code>"esc"</code></td></tr> -</tbody></table> -</div> -<p>Keys can be disabled by binding them to the <code>no_op</code> command.</p> -<p>To remove all default bindings, <code>unbind-default-keys = true</code> can be added to the top level configuration.</p> -<pre><code class="language-toml">unbind-default-keys = true - -# Only these normal mode bindings will be used -[keys.normal] -n = "normal_mode" -t = "goto_definition" - -# remember to add bindings to return to normal mode -[keys.select] -esc = "normal_mode" - -[keys.insert] -esc = "normal_mode" -</code></pre> -<p>A list of commands is available in the <a href="https://docs.helix-editor.com/keymap.html">Keymap</a> documentation -and in the source code at <a href="https://github.com/helix-editor/helix/blob/master/helix-term/src/commands.rs"><code>helix-term/src/commands.rs</code></a> at the invocation of <code>static_commands!</code> macro and the <code>TypableCommandList</code>.</p> - - </main> - - <nav class="nav-wrapper" aria-label="Page navigation"> - <!-- Mobile navigation buttons --> - <a rel="prev" href="themes.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left"> - <i class="fa fa-angle-left"></i> - </a> - - <a rel="next prefetch" href="languages.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right"> - <i class="fa fa-angle-right"></i> - </a> - - <div style="clear: both"></div> - </nav> - </div> - </div> - - <nav class="nav-wide-wrapper" aria-label="Page navigation"> - <a rel="prev" href="themes.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left"> - <i class="fa fa-angle-left"></i> - </a> - - <a rel="next prefetch" href="languages.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right"> - <i class="fa fa-angle-right"></i> - </a> - </nav> - - </div> - - - - - <script> - window.playground_copyable = true; - </script> - - - <script src="elasticlunr.min.js"></script> - <script src="mark.min.js"></script> - <script src="searcher.js"></script> - - <script src="clipboard.min.js"></script> - <script src="highlight.js"></script> - <script src="book.js"></script> - - <!-- Custom JS scripts --> - - - </div> - </body> -</html> |