{"id":3068,"date":"2023-08-30T14:16:01","date_gmt":"2023-08-30T08:46:01","guid":{"rendered":"https:\/\/smarttech101.com\/?p=3068"},"modified":"2023-08-31T12:44:13","modified_gmt":"2023-08-31T07:14:13","slug":"how-to-popup-vim-neovim-keybindings-using-vim-which-key","status":"publish","type":"post","link":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/","title":{"rendered":"How to Popup Vim\/Neovim Keybindings using vim-which-key"},"content":{"rendered":"\n<p>Efficiency in using Vim comes from mastering its numerous keybindings, but remembering them all can be challenging. This is where vim-which-key proves invaluable. Acting as a guide, it presents a popup that lists available keybindings as you navigate through your tasks. Upon pressing a designated key, often <code>&lt;leader&gt;<\/code>, which is very often mapped to space, a clear and concise popup emerges, showcasing all relevant mappings. What&#8217;s more, this plugin allows you to go beyond just displaying bindings \u2013 you can intelligently organize them into categories and even assign custom names to these groups, tailoring your Vim experience to suit your workflow seamlessly. With vim-which-key, unlocking Vim&#8217;s potential becomes more intuitive and engaging.<\/p>\n\n\n\n<p><strong>\ud83d\udcd4 Note<\/strong>: The following guide has been tested on Neovim. For Vim, I used the same configuration a long time ago. So, it should work there too.<\/p>\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_69_1 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#Install_vim-which-key\" title=\"Install vim-which-key\">Install vim-which-key<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#The_Configuration_File_for_vim-which-key\" title=\"The Configuration File for vim-which-key\">The Configuration File for vim-which-key<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#Timeout_for_vim-which-keys_Popup_Menu\" title=\"Timeout for vim-which-key&#8217;s Popup Menu\">Timeout for vim-which-key&#8217;s Popup Menu<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#Map_the_Leader_Key_to_vim-which-key\" title=\"Map the Leader Key to vim-which-key\">Map the Leader Key to vim-which-key<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#vim-which-key_popup_as_a_Floating_Window_and_its_Size\" title=\"vim-which-key popup as a Floating Window and its Size\">vim-which-key popup as a Floating Window and its Size<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#Define_a_Separator_between_Keybindings_and_Commands\" title=\"Define a Separator between Keybindings and Commands\">Define a Separator between Keybindings and Commands<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#Hide_Multiple_Status_Lines_when_vim-which-key_Launches\" title=\"Hide Multiple Status Lines when vim-which-key Launches\">Hide Multiple Status Lines when vim-which-key Launches<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#Setting_vim-which-keys_Popup_Position\" title=\"Setting vim-which-key&#8217;s Popup Position\">Setting vim-which-key&#8217;s Popup Position<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#Defining_Keybindings_and_Their_Descriptions_to_be_Shown_in_the_Popup_Menu\" title=\"Defining Keybindings and Their Descriptions to be Shown in the Popup Menu\">Defining Keybindings and Their Descriptions to be Shown in the Popup Menu<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#Categorizing_the_Keybindings\" title=\"Categorizing the Keybindings\">Categorizing the Keybindings<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#My_vim-which-key_Configuration_File\" title=\"My vim-which-key Configuration File\">My vim-which-key Configuration File<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#Way_Ahead\" title=\"Way Ahead\">Way Ahead<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Install_vim-which-key\"><\/span>Install vim-which-key<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>First of all, install the vim-which-key plugin using your favorite plugin manager.<\/p>\n\n\n\n<p>For example, to install using <code>vim-plug<\/code>*, use the following command in your <code>init.vim<\/code>\/<code>.vimrc<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Plug 'liuchengxu\/vim-which-key'<\/code><\/pre>\n\n\n\n<p>*<a href=\"https:\/\/smarttech101.com\/how-to-manage-plugins-in-vim-neovim-ft-vim-plug\/\">Head on over to this article for a detailed and easy guide on managing plugins using vim-plug.<\/a><\/p>\n\n\n\n<p>For other plugin managers, follow their documentation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Configuration_File_for_vim-which-key\"><\/span>The Configuration File for vim-which-key<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>I like to split my configuration into various files and then source them into the <code>init.vim<\/code>:<\/p>\n\n\n\n<p><a href=\"https:\/\/smarttech101.com\/how-to-configure-neovim\/#configuration_file_in_neovim\" target=\"_blank\" rel=\"noreferrer noopener\">You can do the same by following the detailed instructions here.<\/a><\/p>\n\n\n\n<p>First, create the file <code>$HOME\/.config\/nvim\/keys\/which-key.vim<\/code> and then source it in your <code>init.vim<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>source $HOME\/.config\/nvim\/keys\/which-key.vim<\/code><\/pre>\n\n\n\n<p>Now, put all the configuration related to vim-which-key into this file.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Timeout_for_vim-which-keys_Popup_Menu\"><\/span>Timeout for vim-which-key&#8217;s Popup Menu<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Here we set the Vim variable <code>which_key_timeout<\/code>. The unit is milliseconds. This variable instructs vim-which-key to pop up when there are no further keystrokes within this time. Suppose you have remembered the keybindings and press them very quickly without needing the popup menu. In that case, there will be no need for the popup to appear. Set the time accordingly.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let g:which_key_timeout = 100<\/code><\/pre>\n\n\n\n<p>The <code>which_key_timeout<\/code> is almost the same as <code>timeoutlen<\/code>, and therefore, there&#8217;s no need to redefine it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Map_the_Leader_Key_to_vim-which-key\"><\/span>Map the Leader Key to vim-which-key<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>First, you need to map the leader key to space. If you have followed <a href=\"https:\/\/smarttech101.com\/how-to-configure-neovim\/#leader_key_in_neovim\" target=\"_blank\" rel=\"noreferrer noopener\">my guide on Neovim configuration<\/a>, you have already done that. If you have not done so, use the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let g:mapleader = \"\\&lt;Space&gt;\"<\/code><\/pre>\n\n\n\n<p>Next, register the leader key with which_key by adding the following line:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>call which_key#register('&lt;Space&gt;', \"g:which_key_map\")<\/code><\/pre>\n\n\n\n<p>For normal mode, use this mapping to activate the popup menu when pressing the leader key:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nnoremap &lt;silent&gt; &lt;leader&gt; :silent &lt;c-u&gt; :silent WhichKey '&lt;Space&gt;'&lt;CR&gt;<\/code><\/pre>\n\n\n\n<p>Likewise, for visual mode, use the following mapping to open the popup menu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vnoremap &lt;silent&gt; &lt;leader&gt; :silent &lt;c-u&gt; :silent WhichKeyVisual '&lt;Space&gt;'&lt;CR&gt;<\/code><\/pre>\n\n\n\n<p>These steps map the leader key to which_key. Now, when you press the leader key, you will see vim-which-key&#8217;s popup menu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"vim-which-key_popup_as_a_Floating_Window_and_its_Size\"><\/span>vim-which-key popup as a Floating Window and its Size<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Set the Vim variable <code>which_key_use_floating_win<\/code> to 1 if you want the popup menu to be a floating window. However, personally, I prefer the non-floating popup window. Therefore, I have set it to 0.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let g:which_key_use_floating_win = 0<\/code><\/pre>\n\n\n\n<p>The variable <code>which_key_max_size<\/code> is used to define the height\/width of the popup menu. I have set it to 0, which signifies an unlimited size.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let g:which_key_max_size = 0<\/code><\/pre>\n\n\n\n<p>These two variables can also be utilized to adjust the size of the floating window.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Define_a_Separator_between_Keybindings_and_Commands\"><\/span>Define a Separator between Keybindings and Commands<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The separator is employed to distinguish your key from its associated command. Set the variable <code>which_key_sep<\/code> to <code>\u2192<\/code> or another character of your preference.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let g:which_key_sep = '\u2192'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"776\" height=\"395\" src=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/Separator-between-Keybindings-and-Commands.png?resize=776%2C395&#038;ssl=1\" alt=\"vim-which-key Separator (\u2192) between Keybindings and Commands\" class=\"wp-image-3071\" srcset=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/Separator-between-Keybindings-and-Commands.png?w=776&amp;ssl=1 776w, https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/Separator-between-Keybindings-and-Commands.png?resize=768%2C391&amp;ssl=1 768w\" sizes=\"(max-width: 776px) 100vw, 776px\" \/><figcaption class=\"wp-element-caption\">Figure 1: vim-which-key Separator (\u2192) between Keybindings and Commands<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Hide_Multiple_Status_Lines_when_vim-which-key_Launches\"><\/span>Hide Multiple Status Lines when vim-which-key Launches<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>When you first launch vim-which-key&#8217;s popup menu by pressing the space button, you might notice the presence of more than one status line (horizontal bar) at the bottom of the screen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"776\" height=\"395\" src=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/multiple_status_line_in_vim_which_key.png?resize=776%2C395&#038;ssl=1\" alt=\"Multiple status lines in vim-which-key\" class=\"wp-image-3072\" srcset=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/multiple_status_line_in_vim_which_key.png?w=776&amp;ssl=1 776w, https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/multiple_status_line_in_vim_which_key.png?resize=768%2C391&amp;ssl=1 768w\" sizes=\"(max-width: 776px) 100vw, 776px\" \/><figcaption class=\"wp-element-caption\">Figure 2: Multiple status lines in vim-which-key<\/figcaption><\/figure>\n\n\n\n<p>This can be problematic on smaller screens. To address this issue, you can remove unnecessary status lines using the following code snippets:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>autocmd! FileType which_key\nautocmd FileType which_key set laststatus=0 noshowmode noruler\n  \\| autocmd BufLeave &lt;buffer&gt; set laststatus=2 noshowmode ruler<\/code><\/pre>\n\n\n\n<p>Notice in Figure 1, there is only one status line.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Setting_vim-which-keys_Popup_Position\"><\/span>Setting vim-which-key&#8217;s Popup Position<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>To achieve this, you should configure the Vim variable <code>which_key_position<\/code> with either <code>botright<\/code> or <code>topleft<\/code>. Similarly, if you set the variable <code>which_key_vertical<\/code> to 1, your popup menu will be displayed vertically.<\/p>\n\n\n\n<p>To explore all possible values and their meanings, refer to Vim&#8217;s built-in help system. For instance, to learn about <code>which_key_position<\/code>, execute the Vim command <code>:help g:which_key_max_size<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\" let g:which_key_position = 'botright'\nlet g:which_key_position = 'topleft'\n\" let g:which_key_vertical = 1<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"776\" height=\"395\" src=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/vim-which-key_popup_at_top.png?resize=776%2C395&#038;ssl=1\" alt=\"vim-which-key's popup located at top\" class=\"wp-image-3073\" srcset=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/vim-which-key_popup_at_top.png?w=776&amp;ssl=1 776w, https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/vim-which-key_popup_at_top.png?resize=768%2C391&amp;ssl=1 768w\" sizes=\"(max-width: 776px) 100vw, 776px\" \/><figcaption class=\"wp-element-caption\">Figure: vim-which-key&#8217;s popup located at top<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Defining_Keybindings_and_Their_Descriptions_to_be_Shown_in_the_Popup_Menu\"><\/span>Defining Keybindings and Their Descriptions to be Shown in the Popup Menu<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>This is the main configuration section where keybindings are defined within a dictionary. Begin by creating an empty dictionary:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let g:which_key_map = {}<\/code><\/pre>\n\n\n\n<p>Define a shortcut key and then create a corresponding Vim command along with its description to be displayed in the popup. Use the following format:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let g:which_key_map&#091;'keybinding'] = &#091; ':vim_command',  'description' ]\nlet g:which_key_map&#091;'keybinding'] = &#091; 'vim_key',       'description' ]<\/code><\/pre>\n\n\n\n<p>\ud83d\udcd4 Note: Vim commands start with a colon <code>:<\/code> (e.g., <code>:w<\/code>), but not Vim keys (e.g., <code>gx<\/code>, <code>v<\/code>, etc.). The spaces in the list elements (i.e., <code>[]<\/code>) are optional and are included to make the configuration look well-organized.<\/p>\n\n\n\n<p>Here are some sample keybindings that I&#8217;ve created for you to explore and experience how they appear:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let g:which_key_map&#091;'w'] = &#091; ':w', 'write the file' ]\nlet g:which_key_map&#091;'W'] = &#091; ':w !sudo tee %', 'write root files with sudo' ]\nlet g:which_key_map&#091;'q'] = &#091; ':q', 'quit Neovim' ]\nlet g:which_key_map&#091;'Q'] = &#091; ':q!', 'quit Neovim without saving' ]\nmap &lt;Leader&gt;x :x&lt;CR&gt;<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"938\" height=\"362\" src=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/example_vim-which-key.png?resize=938%2C362&#038;ssl=1\" alt=\"Example of vim-which-key\" class=\"wp-image-3074\" srcset=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/example_vim-which-key.png?w=938&amp;ssl=1 938w, https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/example_vim-which-key.png?resize=768%2C296&amp;ssl=1 768w\" sizes=\"(max-width: 938px) 100vw, 938px\" \/><figcaption class=\"wp-element-caption\">Figure: Example of vim-which-key<\/figcaption><\/figure>\n\n\n\n<p>\ud83d\udcd4 <strong>Note<\/strong>: The last keybinding will also be displayed in the vim-which-key&#8217;s popup menu. This is a distinctive feature of vim-which-key. It presents all keybindings initiated with the leader keys, even if they are not defined in the <code>which_key_map<\/code> dictionary. However, in this case, you will see the actual Vim command as there is no corresponding description provided. Consequently, any mappings created by you or other plugins will also be exhibited in the popup, given that they commence with the leader key. You can override them by redefining the mappings in this configuration file.<\/p>\n\n\n\n<p>\ud83d\udcd4 <strong>Note<\/strong>: <a href=\"https:\/\/smarttech101.com\/enter-sudo-password-in-gui-using-askpass-linux\/#Application_1_Editing_Root_Files_with_Neovim\" target=\"_blank\" rel=\"noreferrer noopener\">writing root files with Neovim requires you to setup askpass helper. Set it up using this guide<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Categorizing_the_Keybindings\"><\/span>Categorizing the Keybindings<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>As previously mentioned, you can group specific sets of keybindings under a category and assign a special name to that category. <\/p>\n\n\n\n<p><strong>Format:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let g:which_key_map.primary_key = {\n    \\ 'name': 'description for the primary_key',\n    \\ 'secondary_key1': &#091;'command1', 'description 1'],\n    \\ 'secondary_key2': &#091;'command2', 'description 2'],\n    \\}<\/code><\/pre>\n\n\n\n<p>Here&#8217;s how you can achieve this with an example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let g:which_key_map.a = {\n    \\ 'name': '+action',\n    \\ 'n': &#091;':set relativenumber!', 'toggle number column'],\n    \\ 'w': &#091;':set wrap!', 'toggle line wraps'],\n    \\}\nmap &lt;Leader&gt;aj :echo \"Just checking\"&lt;CR&gt;<\/code><\/pre>\n\n\n\n<p>\ud83d\udcd4<strong> Note 1<\/strong>: The dictionary <code>which_key_map.a<\/code> contains keys like <code>name<\/code>, <code>n<\/code>, and <code>w<\/code>, with corresponding values like <code>'+action'<\/code>, <code>[':set relativenumber!', 'toggle number column']<\/code>, and <code>[':set wrap!', 'toggle line wraps']<\/code>. The first element in the list is the command and the second element is its description. The backslash is used to indicate continuation onto new lines.<\/p>\n\n\n\n<p>\ud83d\udcd4 <strong>Note 2<\/strong>: The last mapping serves to demonstrate how vim-which-key categorizes sequential Vim keybindings following the leader key.<\/p>\n\n\n\n<p>Add the above snippet to your configuration file and observe its functionality. When you open vim-which-key&#8217;s popup by pressing the leader key and then press <code>a<\/code>, a secondary popup will appear, providing choices for the keys <code>n<\/code> and <code>w<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"938\" height=\"362\" src=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/categorization_of_keybinding_in_vim-which-key.png?resize=938%2C362&#038;ssl=1\" alt=\"categorisation of keybindings in vim-which-key\" class=\"wp-image-3075\" srcset=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/categorization_of_keybinding_in_vim-which-key.png?w=938&amp;ssl=1 938w, https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/categorization_of_keybinding_in_vim-which-key.png?resize=768%2C296&amp;ssl=1 768w\" sizes=\"(max-width: 938px) 100vw, 938px\" \/><figcaption class=\"wp-element-caption\">Figure: Categorisation of keybindings in vim-which-key<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"938\" height=\"362\" src=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/categorization_of_keybinding_in_vim-which-key_after_choosing_a.png?resize=938%2C362&#038;ssl=1\" alt=\"choosing a in vim-which-key creates another popup\" class=\"wp-image-3076\" srcset=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/categorization_of_keybinding_in_vim-which-key_after_choosing_a.png?w=938&amp;ssl=1 938w, https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/categorization_of_keybinding_in_vim-which-key_after_choosing_a.png?resize=768%2C296&amp;ssl=1 768w\" sizes=\"(max-width: 938px) 100vw, 938px\" \/><figcaption class=\"wp-element-caption\">Figure: choosing a in vim-which-key creates another popup<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"My_vim-which-key_Configuration_File\"><\/span>My vim-which-key Configuration File<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Here is my configuration file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\" Timeout\nlet g:which_key_timeout = 100\n\n\" map leader key\ncall which_key#register('&lt;Space&gt;', \"g:which_key_map\")\nnnoremap &lt;silent&gt; &lt;leader&gt; :silent &lt;c-u&gt; :silent WhichKey '&lt;Space&gt;'&lt;CR&gt;\nvnoremap &lt;silent&gt; &lt;leader&gt; :silent &lt;c-u&gt; :silent WhichKeyVisual '&lt;Space&gt;'&lt;CR&gt;\n\n\" vim-which-key look\nlet g:which_key_sep = '\u2192'\nlet g:which_key_use_floating_win = 0\nlet g:which_key_max_size = 0\nautocmd! FileType which_key\nautocmd FileType which_key set laststatus=0 noshowmode noruler\n  \\| autocmd BufLeave &lt;buffer&gt; set laststatus=2 noshowmode ruler\n\n\" defining keybindings\nlet g:which_key_map = {}\nlet g:which_key_map&#091;'\/'] = &#091; 'gc' , 'comment' ]\nlet g:which_key_map&#091;'.'] = &#091; ':e $MYVIMRC' , 'open init' ]\nlet g:which_key_map&#091;'='] = &#091; '&lt;C-W&gt;=' , 'balance windows' ]\nlet g:which_key_map&#091;'h'] = &#091; '&lt;C-W&gt;s' , 'split below']\nlet g:which_key_map&#091;'p'] = &#091; ':Files' , 'search files' ]\nlet g:which_key_map&#091;'v'] = &#091; '&lt;C-W&gt;v' , 'split right']\n\nlet g:which_key_map.a = {\n      \\ 'name' : '+actions' ,\n      \\ 'h' : &#091;':let @\/ = \"\"' , 'remove search highlight'],\n      \\ 'S' : &#091;':s\/\\%V\\(.*\\)\\%V\/\"\\1\"\/' , 'surround'],\n      \\ 'o' : &#091;':set spell!' , 'orthography'],\n      \\ }\n\nlet g:which_key_map.b = {\n      \\ 'name' : '+buffer' ,\n      \\ 'f' : &#091;'bfirst' , 'first-buffer'],\n      \\ 'l' : &#091;'blast' , 'last buffer'],\n      \\ 'n' : &#091;'bnext' , 'next-buffer'],\n      \\ 'p' : &#091;'bprevious' , 'previous-buffer'],\n      \\ '?' : &#091;'Buffers' , 'fzf-buffer'],\n      \\ }\n\nlet g:which_key_map.f = {\n      \\ 'name' : '+fuzzy-find' ,\n      \\ '\/' : &#091;':History\/' , 'history'],\n      \\ ';' : &#091;':Commands' , 'commands'],\n      \\ 'B' : &#091;':Buffers' , 'opened buffers'],\n      \\ 'f' : &#091;':Files' , 'files'],\n      \\ 'h' : &#091;':History' , 'file history'],\n      \\ 'H' : &#091;':History:' , 'command history'],\n      \\ 'l' : &#091;':Lines' , 'loaded buffers'] ,\n      \\ 'b' : &#091;':BLines' , 'current buffer'],\n      \\ 'M' : &#091;':Maps' , 'normal maps'] ,\n      \\ 'p' : &#091;':Helptags' , 'help tags'] ,\n      \\ 'c' : &#091;':Colors' , 'color schemes'],\n      \\ 'g' : &#091;':Rg' , 'text Rg'],\n      \\ 'w' : &#091;':Windows' , 'search windows'],\n      \\ 'z' : &#091;':FZF ~' , 'files in home'],\n      \\ 't' : &#091;':Telescope builtin' , 'telescope'],\n      \\ }\n\nlet g:which_key_map.t = {\n      \\ 'name' : '+terminal' ,\n      \\ ';' : &#091;':FloatermNew --wintype=normal --height=6' , 'terminal'],\n      \\ 'f' : &#091;':FloatermNew fzf' , 'fzf'],\n      \\ 'p' : &#091;':FloatermNew python' , 'python'],\n      \\ 'r' : &#091;':FloatermNew ranger' , 'ranger'],\n      \\ 't' : &#091;':FloatermToggle' , 'toggle'],\n      \\ }\n\nlet g:which_key_map.g = {\n    \\ 'name' : '+go_to' ,\n    \\ 'x' : &#091;'gx' , 'go to link under the cursor and use BROWSER'],\n    \\ 'e' : &#091;'ge' , 'go to link under the cursor and use vim'],\n    \\ }\n\nlet g:which_key_map.c = {\n    \\ 'name' : '+Columnize-Selected' ,\n    \\}\n\nlet g:which_key_map.d = {\n    \\ 'name' : '+diagnostic' ,\n    \\}\n\nlet g:which_key_map.u = {\n    \\ 'name' : '+ultisnips' ,\n    \\}\n\nlet g:which_key_map.l = {\n    \\ 'name' : '+lsp' ,\n    \\}\n\nlet g:which_key_map.l.w = {\n    \\ 'name' : '+workspace' ,\n    \\}<\/code><\/pre>\n\n\n\n<p>It is helpful in the following ways:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Copy the keybindings you like.<\/li>\n\n\n\n<li>Copy the whole script if you are following <a href=\"https:\/\/smarttech101.com\/category\/neovim\/\" rel=\"nofollow\">my Neovim guide. Look at all the articles over here<\/a>. This way you would have fewer problems since everything is tested.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Way_Ahead\"><\/span>Way Ahead<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>There is a Lua wrapper for this plugin. Using this wrapper, you can configure vim-which-key in the Lua language. Sometimes, there are some issues associated with using vim-which-key in Neovim. Using the wrapper fixes this. However, I never faced this issue. Look at <a href=\"https:\/\/github.com\/AckslD\/nvim-whichkey-setup.lua\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">AckslD\/nvim-whichkey-setup.lua<\/a> to learn more.<\/p>\n\n\n\n<p>You can also use <code>comma<\/code> along with <code>space<\/code> to create another popup. But personally, I don&#8217;t use that since that will make my configuration unnecessarily complicated. The space popup will be sufficient. Nonetheless, you can set that in a similar fashion. Also, look at the <a href=\"https:\/\/github.com\/liuchengxu\/vim-which-key#configuration\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">official vim-which-key configuration guide<\/a> on how to do so.<\/p>\n\n\n\n<p>That&#8217;s all, folks. Thanks. If you have any comments or suggestions, put them in the comment section below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unlock the full potential of Vim\/Neovim with vim-which-key. Simplify keybinding mastery by displaying them in intuitive popups. Organize into categories and tailor your workflow effortlessly. Experience efficient and engaging Vim usage.<\/p>\n","protected":false},"author":2,"featured_media":3077,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[37],"tags":[40,39],"class_list":["post-3068","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-neovim","tag-neovim","tag-nvim"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Popup Vim\/Neovim Keybindings using vim-which-key | SmartTech101<\/title>\n<meta name=\"description\" content=\"Enhance Vim\/Neovim efficiency with vim-which-key. Display keybindings in a popup, organize into categories. Tailor your workflow seamlessly.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Popup Vim\/Neovim Keybindings using vim-which-key | SmartTech101\" \/>\n<meta property=\"og:description\" content=\"Enhance Vim\/Neovim efficiency with vim-which-key. Display keybindings in a popup, organize into categories. Tailor your workflow seamlessly.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/\" \/>\n<meta property=\"og:site_name\" content=\"SmartTech101\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-30T08:46:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-31T07:14:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/smarttech101.com\/wp-content\/uploads\/2023\/08\/How-to-Popup-VimNeovim-Keybindings-using-vim-which-key.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Ajay\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ajay_yadav\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ajay\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/\"},\"author\":{\"name\":\"Ajay\",\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/2edfee738a82f9c963210f8cdb438334\"},\"headline\":\"How to Popup Vim\/Neovim Keybindings using vim-which-key\",\"datePublished\":\"2023-08-30T08:46:01+00:00\",\"dateModified\":\"2023-08-31T07:14:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/\"},\"wordCount\":1222,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/e8d5aebc510d698e11e9df6291381633\"},\"image\":{\"@id\":\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/How-to-Popup-VimNeovim-Keybindings-using-vim-which-key.gif?fit=1280%2C720&ssl=1\",\"keywords\":[\"neovim\",\"nvim\"],\"articleSection\":[\"Neovim\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/\",\"url\":\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/\",\"name\":\"How to Popup Vim\/Neovim Keybindings using vim-which-key | SmartTech101\",\"isPartOf\":{\"@id\":\"https:\/\/smarttech101.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/How-to-Popup-VimNeovim-Keybindings-using-vim-which-key.gif?fit=1280%2C720&ssl=1\",\"datePublished\":\"2023-08-30T08:46:01+00:00\",\"dateModified\":\"2023-08-31T07:14:13+00:00\",\"description\":\"Enhance Vim\/Neovim efficiency with vim-which-key. Display keybindings in a popup, organize into categories. Tailor your workflow seamlessly.\",\"breadcrumb\":{\"@id\":\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/How-to-Popup-VimNeovim-Keybindings-using-vim-which-key.gif?fit=1280%2C720&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/How-to-Popup-VimNeovim-Keybindings-using-vim-which-key.gif?fit=1280%2C720&ssl=1\",\"width\":1280,\"height\":720,\"caption\":\"How to Popup VimNeovim Keybindings using vim-which-key\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/smarttech101.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Popup Vim\/Neovim Keybindings using vim-which-key\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/smarttech101.com\/#website\",\"url\":\"https:\/\/smarttech101.com\/\",\"name\":\"SmartTech101\",\"description\":\"Do Everything in Linux\",\"publisher\":{\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/e8d5aebc510d698e11e9df6291381633\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/smarttech101.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/e8d5aebc510d698e11e9df6291381633\",\"name\":\"Ajay Yadav\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2022\/09\/cropped-ST101_logo.png?fit=180%2C60&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2022\/09\/cropped-ST101_logo.png?fit=180%2C60&ssl=1\",\"width\":180,\"height\":60,\"caption\":\"Ajay Yadav\"},\"logo\":{\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/2edfee738a82f9c963210f8cdb438334\",\"name\":\"Ajay\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6eea348caae2173954765a7cdf6cd107?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6eea348caae2173954765a7cdf6cd107?s=96&d=mm&r=g\",\"caption\":\"Ajay\"},\"sameAs\":[\"https:\/\/x.com\/ajay_yadav\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Popup Vim\/Neovim Keybindings using vim-which-key | SmartTech101","description":"Enhance Vim\/Neovim efficiency with vim-which-key. Display keybindings in a popup, organize into categories. Tailor your workflow seamlessly.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/","og_locale":"en_US","og_type":"article","og_title":"How to Popup Vim\/Neovim Keybindings using vim-which-key | SmartTech101","og_description":"Enhance Vim\/Neovim efficiency with vim-which-key. Display keybindings in a popup, organize into categories. Tailor your workflow seamlessly.","og_url":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/","og_site_name":"SmartTech101","article_published_time":"2023-08-30T08:46:01+00:00","article_modified_time":"2023-08-31T07:14:13+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/smarttech101.com\/wp-content\/uploads\/2023\/08\/How-to-Popup-VimNeovim-Keybindings-using-vim-which-key.gif","type":"image\/gif"}],"author":"Ajay","twitter_card":"summary_large_image","twitter_creator":"@ajay_yadav","twitter_misc":{"Written by":"Ajay","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#article","isPartOf":{"@id":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/"},"author":{"name":"Ajay","@id":"https:\/\/smarttech101.com\/#\/schema\/person\/2edfee738a82f9c963210f8cdb438334"},"headline":"How to Popup Vim\/Neovim Keybindings using vim-which-key","datePublished":"2023-08-30T08:46:01+00:00","dateModified":"2023-08-31T07:14:13+00:00","mainEntityOfPage":{"@id":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/"},"wordCount":1222,"commentCount":0,"publisher":{"@id":"https:\/\/smarttech101.com\/#\/schema\/person\/e8d5aebc510d698e11e9df6291381633"},"image":{"@id":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/How-to-Popup-VimNeovim-Keybindings-using-vim-which-key.gif?fit=1280%2C720&ssl=1","keywords":["neovim","nvim"],"articleSection":["Neovim"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/","url":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/","name":"How to Popup Vim\/Neovim Keybindings using vim-which-key | SmartTech101","isPartOf":{"@id":"https:\/\/smarttech101.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#primaryimage"},"image":{"@id":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/How-to-Popup-VimNeovim-Keybindings-using-vim-which-key.gif?fit=1280%2C720&ssl=1","datePublished":"2023-08-30T08:46:01+00:00","dateModified":"2023-08-31T07:14:13+00:00","description":"Enhance Vim\/Neovim efficiency with vim-which-key. Display keybindings in a popup, organize into categories. Tailor your workflow seamlessly.","breadcrumb":{"@id":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#primaryimage","url":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/How-to-Popup-VimNeovim-Keybindings-using-vim-which-key.gif?fit=1280%2C720&ssl=1","contentUrl":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/How-to-Popup-VimNeovim-Keybindings-using-vim-which-key.gif?fit=1280%2C720&ssl=1","width":1280,"height":720,"caption":"How to Popup VimNeovim Keybindings using vim-which-key"},{"@type":"BreadcrumbList","@id":"https:\/\/smarttech101.com\/how-to-popup-vim-neovim-keybindings-using-vim-which-key\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/smarttech101.com\/"},{"@type":"ListItem","position":2,"name":"How to Popup Vim\/Neovim Keybindings using vim-which-key"}]},{"@type":"WebSite","@id":"https:\/\/smarttech101.com\/#website","url":"https:\/\/smarttech101.com\/","name":"SmartTech101","description":"Do Everything in Linux","publisher":{"@id":"https:\/\/smarttech101.com\/#\/schema\/person\/e8d5aebc510d698e11e9df6291381633"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/smarttech101.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/smarttech101.com\/#\/schema\/person\/e8d5aebc510d698e11e9df6291381633","name":"Ajay Yadav","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/smarttech101.com\/#\/schema\/person\/image\/","url":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2022\/09\/cropped-ST101_logo.png?fit=180%2C60&ssl=1","contentUrl":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2022\/09\/cropped-ST101_logo.png?fit=180%2C60&ssl=1","width":180,"height":60,"caption":"Ajay Yadav"},"logo":{"@id":"https:\/\/smarttech101.com\/#\/schema\/person\/image\/"}},{"@type":"Person","@id":"https:\/\/smarttech101.com\/#\/schema\/person\/2edfee738a82f9c963210f8cdb438334","name":"Ajay","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/smarttech101.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6eea348caae2173954765a7cdf6cd107?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6eea348caae2173954765a7cdf6cd107?s=96&d=mm&r=g","caption":"Ajay"},"sameAs":["https:\/\/x.com\/ajay_yadav"]}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/08\/How-to-Popup-VimNeovim-Keybindings-using-vim-which-key.gif?fit=1280%2C720&ssl=1","_links":{"self":[{"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/posts\/3068"}],"collection":[{"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/comments?post=3068"}],"version-history":[{"count":5,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/posts\/3068\/revisions"}],"predecessor-version":[{"id":3095,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/posts\/3068\/revisions\/3095"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/media\/3077"}],"wp:attachment":[{"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/media?parent=3068"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/categories?post=3068"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/tags?post=3068"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}