Code Monkey home page Code Monkey logo

hop.nvim's Introduction

                                          __
                                         / /_  ____  ____
                                        / __ \/ __ \/ __ \
                                       / / / / /_/ / /_/ /
                                      /_/ /_/\____/ .___/
                                                 /_/
                                  · Neovim motions on speed! ·

Install · Wiki · Screenshots · Discuss

Hop is an EasyMotion-like plugin allowing you to jump anywhere in a document with as few keystrokes as possible. It does so by annotating text in your buffer with hints, short string sequences for which each character represents a key to type to jump to the annotated text. Most of the time, those sequences’ lengths will be between 1 to 3 characters, making every jump target in your document reachable in a few keystrokes.

Deprecation notice

The project is unmaintained for probably forever. No more commits will be made, and since Neovim continues to be updated, it is very likely that this plugin will break / have bugs.

If you enjoyed phaazon/hop.nvim, you should really head over to the fork of @smoka7, smoka7/hop.nvim. Many bugs were fixed and new features added.

Thank you for being such a supportive and passionate community! ❤️

Motivation

Hop is a complete from-scratch rewrite of EasyMotion, a famous plugin to enhance the native motions of Vim. Even though EasyMotion is usable in Neovim, it suffers from a few drawbacks making it not comfortable to use with Neovim version >0.5 – at least at the time of writing these lines:

  • EasyMotion uses an old trick to annotate jump targets by saving the contents of the buffer, replacing it with the highlighted annotations and then restoring the initial buffer after jump. This trick is dangerous as it will change the contents of your buffer. A UI plugin should never do anything to existing buffers’ contents.
  • Because the contents of buffers will temporarily change, other parts of the editor and/or plugins relying on buffer change events will react and will go mad. An example is the internal LSP client implementation of Neovim >0.5 or its treesitter native implementation. For LSP, it means that the connected LSP server will receive a buffer with the jump target annotations… not ideal.

Hop is a modern take implementing this concept for the latest versions of Neovim.

Features

  • Go to any word in the current buffer (:HopWord).
  • Go to any character in the current buffer (:HopChar1).
  • Go to any bigrams in the current buffer (:HopChar2).
  • Make an arbitrary search akin to / and go to any occurrences (:HopPattern).
  • Go to any line and any line start (:HopLine, :HopLineStart).
  • Go to anywhere (:HopAnywhere).
  • Use Hop cross windows with multi-windows support (:Hop*MW).
  • Use it with commands like v, d, c, y to visually select/delete/change/yank up to your new cursor position.
  • Support a wide variety of user configuration options, among the possibility to alter the behavior of commands to hint only before or after the cursor (:Hop*BC, :Hop*AC), for the current line (:Hop*CurrentLine), change the dictionary keys to use for the labels, jump on sole occurrence, etc.
  • Extensible: provide your own jump targets and create Hop extensions!

Getting started

This section will guide you through the list of steps you must take to be able to get started with Hop.

This plugin was written against Neovim 0.5, which is currently a nightly version. This plugin will not work:

  • With a version of Neovim before 0.5.
  • On Vim. No support for Vim is planned.

Installation

Whatever solution / package manager you are using, you need to ensure that the setup Lua function is called at some point, otherwise the plugin will not work. If your package manager doesn’t support automatic calling of this function, you can call it manually after your plugin is installed:

require'hop'.setup()

To get a default experience. Feel free to customize later the setup invocation (:h hop.setup). If you do, then you will probably want to ensure the configuration is okay by running :checkhealth. Various checks will be performed by Hop to ensure everything is all good.

Important note about versioning

This plugin implements SemVer via git branches and tags. Versions are prefixed with a v, and only patch versions are git tags. Major and minor versions are git branches. You are very strongly advised to use a major version dependency to be sure your config will not break when Hop gets updated.

Using vim-plug

Plug 'phaazon/hop.nvim'

Using packer

use {
  'phaazon/hop.nvim',
  branch = 'v2', -- optional but strongly recommended
  config = function()
    -- you can configure Hop the way you like here; see :h hop-config
    require'hop'.setup { keys = 'etovxqpdygfblzhckisuran' }
  end
}

Nightly users

Hop supports nightly releases of Neovim. However, keep in mind that if you are on a nightly version, you must be on the last one. If you are not, then you are exposed to compatibility issues / breakage.

Usage

See the wiki.

Keybindings

Hop doesn’t set any keybindings; you will have to define them by yourself.

If you want to create a key binding from within Lua:

-- place this in one of your configuration file(s)
local hop = require('hop')
local directions = require('hop.hint').HintDirection
vim.keymap.set('', 'f', function()
  hop.hint_char1({ direction = directions.AFTER_CURSOR, current_line_only = true })
end, {remap=true})
vim.keymap.set('', 'F', function()
  hop.hint_char1({ direction = directions.BEFORE_CURSOR, current_line_only = true })
end, {remap=true})
vim.keymap.set('', 't', function()
  hop.hint_char1({ direction = directions.AFTER_CURSOR, current_line_only = true, hint_offset = -1 })
end, {remap=true})
vim.keymap.set('', 'T', function()
  hop.hint_char1({ direction = directions.BEFORE_CURSOR, current_line_only = true, hint_offset = 1 })
end, {remap=true})

Chat

Join the discussion on the official Matrix room!

hop.nvim's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hop.nvim's Issues

Hopping leaves behind apostrophe character (Possibly related to remap)

Hey, love this plugin!

I've noticed that when hopping (using single letter or word mode) it leaves an apostrophe at the location where the cursor was. The apostrophe is actually in the text, not just a virtualtext rendering bug.

I tried running :HopWord just to make sure it wasn't anything funky with my keybinds but it still happens. I uninstalled every other plugin except hop.nvim to rule out any strange conflicts but no change.

What I suspect is happening is when hopping, it's calling a vim command without the noremap flag set, which is then using my own keymap. And since I'm a savage animal who remapped m to a it ends up inserting an apostrophe rather than creating a mark as intended.

Neovim version: v0.5.0-dev+1165-ge5bef5974

consider move setup to lua and make user setup commands

Reasons to do:

  1. A pure lua profile would decrease startup time.
  2. The lua startup profiler would be more correct or simpler to get correct with this change. Otherwise one gets more wrong results.
  3. Try to be consistent as to use functionality of lua, if possible.
  4. Having a function to initialize makes separating things for user-specific settings while getting updates much easier (user may implement a different function or commands to customize plugin).

Another related reason (bad practice/historical reasons): nvim-treesitter/module-template#1

Relevant content for change (ideally as users should configure this):
https://github.com/nanotee/nvim-lua-guide#caveats-5
https://github.com/nanotee/nvim-lua-guide#vimapinvim_command

if vim.fn.has('nvim') == 1 then
    -- not exactly sure about those commands
end
vim.api.nvim_exec([[
command! HopWord lua require'hop'.hint_words() -- The jump-to-word command.
command! HopPattern lua require'hop'.hint_patterns() -- The jump-to-pattern command.
command! HopChar1 lua require'hop'.hint_char1() -- The jump-to-char-1 command.
command! HopChar2 lua require'hop'.hint_char2() -- The jump-to-char-2 command.
command! HopLine lua require'hop'.hint_lines() -- The jump-to-line command.
]], false)

Consider using extmark overlay

Recently with neovim/neovim#13952 merged you can now actually "overlay" text on top of the contents of the buffer using extmarks. One of the stated use cases for this is this exact type of plugin.

The primary use cases of this display modes would be indent guides as well as EasyMotion style hints. Abusing the indent area for "sign" like display is also possible.

example:

vim.api.nvim_buf_set_extmark(0, ns, 2, 3, { virt_text={{'--', 'ErrorMsg'}, {'gg', 'String'}}, virt_text_style='overlay'})

I think this might potentially simplify your implementation since you won't have to maintain a window on top of the current buffer, although that's just a guesstimation.

Unable to use other keys like h,j,k,l to cancel hints

Hi thanks for this great plugin 👍🏿 really enjoying it so far.

I was wondering if there is a way to cancel a jump while inputting characters with keys other than <esc>. Atm if I use the following steps I get unpredictable behaviour.

  1. trigger hint_char1 via lua require('hop').hint_char1{winblend = 100, keys = 'asdgqwertyuiopzxcvbnmf'}. NOTE: h,j,k,l have been removed from the keys
  2. press h,j,k,l neither of these keys will put you on the line that the command would usually take you to, they don't just deactivate hop either like <esc> does. Instead they jump you somewhere seemingly random.

My use case for this functionality is that I often start trying to jump somewhere, historically with vim-sneak and I change my mind before entering the character and instead want to just go somewhere else or stay where I am more or less so I just move out of the sneak hint thing

Pressing <Esc> causes vim exit

To reproduce:

  • start nvim
  • :help
  • :wincmd o making help window the only window in nvim
  • :HopWord
  • Press to cancel jumping
  • The nvim exits, which is not expected

hop3

How to combine motion with yanking & deleting?

Movement with hop works excellent and I use ie. this key binding:
map <Space>w :HopWord<CR>

Now lets say I want to yank (likewise for delete) until a certain word, fot that I would like to use:
y<Space>w + target character, but that result just in a movement with my register unchanged.

How to combine then motion with yanking (deleting), is it possible? Is there a better then above way to do the key binding?

Thanks a lot for the effort you put into this plugin.

Any Example of using hop for word operators?

How do I use / map hop to be used as word operator (delte, replace tec)? Its mentioned in HOP docs but I'm not sure how to use it.

Can hop be used to extend selection eg we go into visual mode, then hop to given line or word while extending selection?

Visual Mode

Hey, really enjoying flying around the buffer with hop.

It would be great to be able to hop in visual mode to make faster selections.
Currently it just exits the visual mode upon execution.

Incorrect hint labels when hint keys include non-ASCII characters

In Neovim v0.5.0-dev+1291-gb227cedf8, hop doesn't show the corrent hint label for a key if that key is a non-ASCII character.

For example, this is what I've added to my init.vim:

lua require'hop'.setup { keys = 'asdfhjkqweruiopyxcvbnmlé' }

Notice the final character, é. This is on a Hungarian keyboard, at the same position as ; is on US layouts.

With this in place, when I run :HopChar1 and press a, <c3> and <a9> are shown at several places, like in the screenshot:

neovim-hop-key1

If I change é to something else, such as g, all hints are displayed normally.

neovim-hop-key2

Incorrect hints position for lines that has tabs in help buffer

There seems a lot problems with help buffer...

See the gif below

hop4

The hints for the 3rd line (also other lines in gif) is wrong. These lines have a \t whose length equals &tabstop value.

I've fixed this by substitube all \t with string.rep(' ', tabstop). Don't know whether it's a proper fix...

diff --git a/lua/hop/hint.lua b/lua/hop/hint.lua
index a35d95e..855cb81 100644
--- a/lua/hop/hint.lua
+++ b/lua/hop/hint.lua
@@ -79,6 +79,9 @@ function M.mark_hints_line(hint_mode, line_nr, line, col_offset, buf_width)
     end_index = vim.fn.strdisplaywidth(line)
   end
 
+  -- local tabstop = vim.api.nvim_buf_get_option(0, 'tabstop')
+  -- line = line:gsub("\t", string.rep(' ', tabstop))
+
   local shifted_line = line:sub(1 + col_offset, end_index)
 
   -- prevent empty lines from being really empty; useful for some modes

Highlight is cleared by some colorschemes

Thank you for this great plugin!

I would like to use hop.nvim with some colorschemes, but some colorschemes use hi clear before setting colors, and also clear HopNextKey* highlights like below.

before

スクリーンショット 2021-03-07 0 21 07

after

スクリーンショット 2021-03-07 0 21 29

If it is ok, could you please use autocmd with ColorScheme event, to set HopNextKey* after the hi clear?

Thank you.

BufEnter event is triggered when jumping

I want to enter INSERT mode as soon as entering a terminal buffer so I defined the following auto command for myself.

autocmd BufEnter term://* startinsert

However, this autocmd prevents me from jumping around in the terminal window because when I type some keys, the hop window will be closed and BufEnter event will be triggered, which takes me into the TERMINAL mode and ... no jump...

In general, a lot of users would have some BufEnter autocmds predefined. Thus, in order to avoid possible side effects, I think it would be better if we use noautocmd when closing hop window. How do you think about this?

hop

[Suggestion] Move two gifs out of the plugin repo for the download speed

Hi @phaazon it may surprise you to hear that 2M gifs can even slow down the speed of plugin installation. However, it did make the user experience worse sometimes for some people.

Due to some fxxking unspeakable reasons, the speed of git clone in some places of China is terrible. Therefore, note that the size of two gifs accounts for 70% of that of the whole repository, it's better to move those gifs to another places (issue region for example) and fill their links in the README.md. A feasible approach for example, is opening an issue named "screenshot" or "demo" etc for storing gifs.

Jump to the line

EasyMotion have the ability to jump to specific line. It would be great to have a similar feature in this plugin :)

behavior on quit

Problem:
First I perform the search :HopChar1
Then I quite though <esc>
The highlight of the last line will be faint (just like the highlight for non-target characters in hop)

Hide cursor whilst overlay is active

So this is entirely a visual improvement than a must have, but I've noticed that whilst the overlay is visible it shows the cursor position at the top of the window which is a little distracting, I think it'd be a nice configurable option to hide it. Personally I think it would be a good default but I'm sure there will be differing opinions (/ it wont work if the user isn't using termguicolors).

Anyway I looked a little into how this is done coc.nvim which hides the cursor in coc-list and it pointed towards neovim/neovim#11519 change in neovim. I believe you can capture the initial value of the &guicursor change it and just before closing the window return it to it's previous state.

I appreciate this one is a little bit of work for a small visual improvement but figured I'd raise it to see what your thoughts were

Persisting hints even after Hop exits

This is a bug that I have been experiencing a lot — at least in the TUI. Some hints, after Hop quits and cleans everything, still persist. I have implemented a mitigation locally (that basically forces erasing everything, even portion of the buffer not visible), and it doesn’t change anything. See screenshots.

Screenshot_20210328_000222

Screenshot_20210327_235433

This bug is not easily reproducible as I have no idea what’s happening, but I highly suspect a Neovim bug for the virtual text on extmarks.

Support for dot repeat

Hi,

I have a feature request which I actually yes pretty often because I'm addicted to repeating motions via dot. Is it possible to add dot repeat support?

For example, if I have mapped :HopChar2 to f key and I press motion like: dfvi (delete find vi) it shows me the first occurrence in line as s. I click "s" and everything to "vi" is deleted as expected. Then I would like to go to next line where there is some word starting on "vi" and just delete find vi again via simply clicking dot.

Thanks!

Hop buffer is drawn when number of hints is 0

If you try to search for a non-existent character, hop still draws itself over the active buffer. The only way to close it is by pressing <esc>. It feels like the fix is best suited for #22 rewrite.

Allow to set configuration with a setup function

Hey, thanks for this great plugin. After EasyMotion is just not usable with language servers in combo, I was desperately searching an alternative, but nothing has fit until now. Thanks. 🙏

In the docs you have a section for some configurations. Unfortunately it seems like you can only provide those values only to the low level API calls. I rather use the Vim commands which I also use to lazy load this plugin. It would be cool if there is a setup like function (as many Lua plugins use) to provide your own default for these configuration values.

Would it be possible to highlight words or line which are before or after cursor ?

First thank you for this great plugin !

I was using easymotion until now and unfortunately it became unusable after enabling diagnostics since the labels are shortly parsed as the buffer is modified.
Hop is a great replacement for my usage of easymotion except for one thing: the ability to highlight before or after the cursor position.

For example with easymotion if you press:

  • <easymotion-prefix>w it will highlight all words after the cursor
  • <easymotion-prefix>b it will highlight all words before the cursor
  • in the same way <easymotion-prefix> with j or k will highlight lines below or above the current line

This is quite practical because if you know where you want to jump, it can show less labels.

Is it already possible with hop ?
If not would it be possible to add some functions for example HopWordNext, HopWordPrev, HopLineAbove, HopLineBelow ?

Space and punctuation trigger case sensitive search

First of all, thanks a ton for this plugin! It's so much better/faster than easymotion and sneak.

The problem I came across is that given this text:

This test. A test.

Jumping to a (that is, space+a) gives no results, only jumping to A (that is, space+A) does. At least to me this is highly counterintuitive. Space shouldn't trigger smart case-sensitive search.

EDIT: The same seems to obtain for punctuation.

behavior on consecutive same characters

Problem description:
When I jump to consecutive same characters, like
ssss
the hint key will be, for example
ga, gb, gc, gd
but I can only see
ggggd
and I need to input g before I can get the second hint for the first three s.

This is frustrating because I need to press the key, read, and press another key.

Suggestion:
My suggestion is that, when you render the characters on a line, you can render it backward. Then we will see
gabcd
and one can just jump to the destination.

This can also be an option for users to make their choice.

Potential problem:
There is one potential problem. The plugin should ensure that the consecutive same characters must have same first hint. Otherwise, we cannot make effective jump.

Shifting between expected hints and words in buffer

NVIM v0.5.0-dev+1028-g702208daa
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3

Hopefully you can see the issue on the picture, when we call the :VroomWord method, the results are shifted and the shortcuts don't appear on the correct words.

vroom

Go to next/previous match using n and N

Is it possible to use n to go to next match (of the pattern search) and N to go to the match above in the document?

Here is an example of what I mean using EasyMotion.

vim

Thanks for your help!

Some hints are not shown when special characters are present

Non-ASCII characters, when present in a line, cause hints to disappear from the end of the line.

They seem to only affect hints shown after the Unicode character and it looks like every occurrence of the extended char shortens the line that is seen by 2 characters.

For example:
image

:HopChar1 with 'd' pressed
image

Line starting with an additional extended quote character (:ascii -> <’> 8217, Hex 2019, Oct 20031, Digr '9)
:HopChar1 with 'd' pressed
image
We can see the last hint for 'd' hasn't appeared.

:HopChar1 with 'c' pressed
image
Likewise, the hint for 'c' is not there.

:HopChar1 with 'b' pressed
image
Hints are shown correctly.

Line starting with two extended characters.
:HopChar1 with 'b' pressed
image
The last hint is not shown.

For every non-ASCII character added in the line, some hints are dropped from the end of the line. It seems that every special char accounts for additional two missed columns.

:HopChar1 with 'd' pressed
image
When lines are wrapped, the problem is non-existent.

Line ending with special characters / in the middle of the line.
:HopChar1 with 'd' pressed
image
image
The problem only seems to affect hints that should be placed after the special characters in the line.

Screens are from my usual config, but I've checked this on an empty config with only the plugin loaded – the bug is still there.

nvim version: NVIM v0.5.0-dev+1281-gecf075eb2

A lot of hints require 3 keystrokes

Hi, as the title says. a lot of hints require 3 keystrokes whereas easymotion mostly require max 2 keystrokes. is it something that can be configured ?

Doesn't work with foldtext

Hi, I'm not sure this is doable with your current architecture, but a feature I'd love to see is being able to hop to folded text.

Say I've a big class, with a lot of methods (yeah, it happens). Sometimes my approach is to set a low foldevel and jump and expand only the methods I wanna see. If I try to hop to text inside the foldtext (I mean the text that is displayed on screen, not the folded one, obviously) then I can't "land" on it.

Hope this is clear enough, if it isn't I'll try to provide an example.

Thanks!

ignorecase when matching HopChar2

Can I have case insensitive matching when do HopChar2 ?
It can save the shift key when matching upper case character,
so always just two key hits before hit the label key , reduce press error.

smart case feature

Is it any way to enable something like smart case in Hop2chars?
I mean when i print two characters in lowercase then hop should find all uppercase and lowercase results. But when I print one or both characters in uppercase it should find exact results.

Error on Neovim 0.4

Hi, you mentioned in the README to reach out if there are problems on nvim 0.4. Well, here's what I get with nvim 0.4.4 on manjaro (official repo) when I try to run any command:

E5105: Error while calling lua chunk: /home/elshize/.vim/plugged/hop.nvim/lua/hop/init.lua:48: attempt to index field 'b' (a nil value)

This happens on pre-extmarks as well.

Here's the version info:

$ nvim --version
NVIM v0.4.4
Build type: Release
LuaJIT 2.0.5
Compilation: /usr/bin/cc -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -DNDEBUG -DMIN_LOG_LEVEL=3 -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -I/build/neovim/src/build/config -I/build/neovim/src/neovim-0.4.4/src -I/usr/include -I/build/neovim/src/build/src/nvim/auto -I/build/neovim/src/build/include
Compiled by builduser

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/share/nvim"

Run :checkhealth for more info

And healthcheck (maybe I'm missing something important here?)

health#vimtex#check
========================================================================
## vimtex
  - OK: Vim version should have full support!
  - OK: General viewer should work properly!
  - WARNING: Compiler callbacks will not work!
    - ADVICE:
      - `neovim-remote` / `nvr` is required for callbacks to work with neovim
      - Please also set |g:vimtex_compiler_progname| = 'nvr'
      - For more info, see :help |vimtex-faq-neovim|

health#coc#check
========================================================================
  - OK: Environment check passed

  - OK: Javascript bundle build/index.js found
  - OK: Service started

health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: Release

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=^H
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $COLORTERM='truecolor'

health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: xclip

## Python 2 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          /usr/bin/python2 does not have the "neovim" module. :help |provider-python|
          /usr/bin/python2.7 does not have the "neovim" module. :help |provider-python|
          python2.6 not found in search path or not executable.
          /usr/bin/python is Python 3.9 and cannot provide Python 2.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/bin/python3
  - INFO: Python version: 3.9.2
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

## Ruby provider (optional)
  - INFO: Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
  - WARNING: `neovim-ruby-host` not found.
    - ADVICE:
      - Run `gem install neovim` to ensure the neovim RubyGem is installed.
      - Run `gem environment` to ensure the gem bin directory is in $PATH.
      - If you are using rvm/rbenv/chruby, try "rehashing".
      - See :help |g:ruby_host_prog| for non-standard gem installations.

## Node.js provider (optional)
  - INFO: Node.js: v15.12.0
  - INFO: Neovim node.js host: /usr/lib/node_modules/neovim/bin/cli.js
  - OK: Latest "neovim" npm/yarn package is installed: 4.9.0

HopPattern uses errormsg?

When calling :HopPattern I get Search: in the command line but it is highlighted red as if it was a warning. Is this intended?

change color of hints

I couldn't find this information is in the documentation but I just wanted to mention that as a colour blind person, I really struggle to see the hints, is it possible to customize their colours ?
the default easymotion colour works well for instance

image

Unexpected key error

Hi there! 👋

I am getting an error that I dind't find listed on the issues.
E5108: Error executing lua ...s/fladson/.config/nvim/plugged/hop.nvim/lua/hop/hint.lua:200: unexpected key: virt_text_pos

Any clue why?

nvim -v                   
NVIM v0.5.0-dev+b2b47e461
Build type: Release
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/clang -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNDEBUG -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/tmp/neovim-20210208-50649-t6cc85/build/config -I/tmp/neovim-20210208-50649-t6cc85/src -I/usr/local/include -I/tmp/neovim-20210208-50649-t6cc85/deps-build/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/usr/local/opt/gettext/include -I/tmp/neovim-20210208-50649-t6cc85/build/src/nvim/auto -I/tmp/neovim-20210208-50649-t6cc85/build/include

Features: +acl +iconv +tui

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.