All Projects → danth → Pathfinder.vim

danth / Pathfinder.vim

Licence: mit
Vim plugin to suggest better movements

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pathfinder.vim

unity-dijkstras-pathfinding
Dijkstra's Pathfinding Algorithm Unity Implementation. (Not being maintained by me, it is just an experiment.)
Stars: ✭ 80 (-64.91%)
Mutual labels:  pathfinding, dijkstra
pathfinding-visualizer
Website built using React Framework for visualizing Pathfinding and Maze Generation Algorithms.
Stars: ✭ 33 (-85.53%)
Mutual labels:  pathfinding, dijkstra
Dijkstra
Fastest golang Dijkstra path finder
Stars: ✭ 107 (-53.07%)
Mutual labels:  pathfinding, dijkstra
Pathfinder
A pathfinder visualizer in Flutter. Create mazes, generate random walls, or draw your own walls and see the pathfinding algorithms in action
Stars: ✭ 14 (-93.86%)
Mutual labels:  pathfinding, dijkstra
Graphhopper
Open source routing engine for OpenStreetMap. Use it as Java library or standalone web server.
Stars: ✭ 3,457 (+1416.23%)
Mutual labels:  pathfinding, dijkstra
Pathfinding
Pathfinding library for rust
Stars: ✭ 324 (+42.11%)
Mutual labels:  pathfinding, dijkstra
Pathfinding
Visual explanation of pathfinding algorithms and how a*, Dijkstra and BFS can be seen as the same algorithm with different parameter/data structures used under the hood
Stars: ✭ 165 (-27.63%)
Mutual labels:  pathfinding, dijkstra
Vinux
Swiss Army Knife,Dark power vim config
Stars: ✭ 198 (-13.16%)
Mutual labels:  vim-plugin
Nova Vim
Nova color scheme plugin for Vim
Stars: ✭ 211 (-7.46%)
Mutual labels:  vim-plugin
Jupyter Vim
Make Vim talk to Jupyter kernels
Stars: ✭ 194 (-14.91%)
Mutual labels:  vim-plugin
Visual Split.vim
Vim plugin to control splits with visual selections or text objects
Stars: ✭ 190 (-16.67%)
Mutual labels:  vim-plugin
Vifm.vim
Vim plugin that allows use of vifm as a file picker
Stars: ✭ 197 (-13.6%)
Mutual labels:  vim-plugin
Astar
A fast 2D path finding library based on the A* algorithm. Works with both grids and graphs. Supports any .NET variant that supports .NETStandard 2.0 or higher. This library has no external dependencies. The library is licensed under the MIT license.
Stars: ✭ 215 (-5.7%)
Mutual labels:  pathfinding
Vim Dispatch
dispatch.vim: Asynchronous build and test dispatcher
Stars: ✭ 2,341 (+926.75%)
Mutual labels:  vim-plugin
Linqit
Extend python lists with .NET's LINQ syntax for clean and fast coding. Also known as PINQ.
Stars: ✭ 222 (-2.63%)
Mutual labels:  efficiency
Vim Signify
➕ Show a diff using Vim its sign column.
Stars: ✭ 2,390 (+948.25%)
Mutual labels:  vim-plugin
Vim Color Spring Night
Low-contrast calm color scheme for Vim
Stars: ✭ 227 (-0.44%)
Mutual labels:  vim-plugin
Neomake
Asynchronous linting and make framework for Neovim/Vim
Stars: ✭ 2,512 (+1001.75%)
Mutual labels:  vim-plugin
Ybmodelfile
根据 JSON 自动生成 Model 文件(数据模型)
Stars: ✭ 209 (-8.33%)
Mutual labels:  efficiency
Pathfinding Visualizer Threejs
A visualizer for pathfinding algorithms in 3D with maze generation, first-person view and device camera input.
Stars: ✭ 209 (-8.33%)
Mutual labels:  pathfinding

pathfinder.vim

A Vim plugin to give suggestions to improve your movements. It's a bit like Clippy.

Demo

Features

  • Find the shortest motion sequence or search query to move the cursor
  • Help summaries to explain a suggestion
  • Asynchronous - pathfinding runs in a separate process

Installation

Use your favorite plugin manager. I recommend vim-plug.

if has('python3') && has('timers')
  Plug 'danth/pathfinder.vim'
else
  echoerr 'pathfinder.vim is not supported on this Vim installation'
endif

You may also need to run git submodule update --init from inside the plugin directory. Most popular plugin managers will do that automatically.

Usage

  1. Move the cursor in normal, visual or visual-line mode.
  2. That's it.

Suggestions pop up above the cursor if you have:

  • Vim 8.2 or above, with +popupwin
  • Neovim 0.4 or above

Otherwise, they will appear as a plain echo at the bottom of the screen.

Explanations

If you don't understand how a suggestion works, you should use the :PathfinderExplain command, which will show a short description of each motion used.

If you find yourself using this a lot, make a mapping for it!

noremap <leader>pe :PathfinderExplain<CR>

Manual Commands

If you set g:pf_autorun_delay to a negative value, you get two commands instead:

  • :PathfinderBegin: Set the start position. This still happens automatically when switching windows/tabs, or loading a new file.
  • :PathfinderRun: Set the target position and get a suggestion.

Related Plugins

  • vim-be-good - Various training games to practice certain actions
  • vim-hardtime - Prevent yourself from repeating keys like h,j,k,l

Configuration

pathfinder.vim works out-of-the box with the default configuration. You don't need to read this section if you don't want to.

highlight PathfinderPopup

Change the appearance of suggestion popups. Default: same as cursor

g:pf_popup_time

Milliseconds to display the popup for. Default: 3000

g:pf_autorun_delay

When this number of seconds have elapsed with no motions being made, the pathfinder will run. It also runs for other events such as changing modes. A negative value will disable automatic suggestions. Default: 2

g:pf_explore_scale

Multiplier which determines the range of lines to be explored around the start and target positions. This is calculated as (lines between start and target × multiplier) and added to both sides. Default: 0.5

This limitation improves performance by disallowing movements outside the area of interest. It also prevents suggestions which rely on knowing about the exact text hundreds of lines away. Settings below 1 cause movements within a line to only use motions inside that line.

If you have a powerful computer, you can increase this option to a high value to allow exploring more of the file. You can also disable it completely by setting a negative value.

g:pf_max_explore

Cap the number of surrounding lines explored (see above) to a maximum value. As usual, this can be disabled by making it negative. Default: 10

g:pf_descriptions

Dictionary of descriptions, used for :PathfinderExplain.

let g:pf_descriptions['k'] = 'Up {count} lines'
let g:pf_descriptions['f'] = 'To occurence {count} of "{argument}", to the right'

Ensure the plugin is loaded before trying to override keys. Otherwise, the default dictionary will not exist and you'll get an error.

Re-defining the entire dictionary is not recommended since it could cause problems if support for a new motion is added and you don't have a description for it.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].