All Projects → dahu → Bisectly

dahu / Bisectly

Binary search tool

Labels

Projects that are alternatives of or similar to Bisectly

Ctrlp Extensions.vim
Plugins for ctrlp.vim
Stars: ✭ 51 (-13.56%)
Mutual labels:  viml
Vim Togglemouse
Toggles the mouse focus between Vim and your terminal emulator, allowing terminal emulator mouse commands, like copy/paste.
Stars: ✭ 53 (-10.17%)
Mutual labels:  viml
Vim Better Javascript Completion
An expansion of Vim's current JavaScript syntax file.
Stars: ✭ 55 (-6.78%)
Mutual labels:  viml
Buffet.vim
A vimplugin for switching and managing buffer lists
Stars: ✭ 52 (-11.86%)
Mutual labels:  viml
Ansible Splunk Simple
Simple deployment of Splunk using Ansible, static host lists.
Stars: ✭ 53 (-10.17%)
Mutual labels:  viml
Vim Giphy
Giphy in your vim
Stars: ✭ 54 (-8.47%)
Mutual labels:  viml
Vim Qargs
A Vim plugin that adds a :Qargs utility command, for populating the argument list from the files in the quickfix list.
Stars: ✭ 50 (-15.25%)
Mutual labels:  viml
Vim Holylight
A Vim plugin for MacBook users that automatically sets the background to light or dark depending on the ambient light
Stars: ✭ 57 (-3.39%)
Mutual labels:  viml
Javacomplete
Omni Completion for JAVA
Stars: ✭ 53 (-10.17%)
Mutual labels:  viml
Rubyblue
A collection of themes for different text editors that mimic the colors used in the code samples on ruby-lang.org
Stars: ✭ 54 (-8.47%)
Mutual labels:  viml
Pep8
Check your python source files with PEP8
Stars: ✭ 52 (-11.86%)
Mutual labels:  viml
Bookmark
[DEPRECATED] 웹 즐겨찾기
Stars: ✭ 53 (-10.17%)
Mutual labels:  viml
Vimdown
A dirty tool to convert .vimrc and .vim script files to markdown
Stars: ✭ 54 (-8.47%)
Mutual labels:  viml
Fmacvim
MacVim + essential plugins + my custom (and awesome) .vimrc
Stars: ✭ 52 (-11.86%)
Mutual labels:  viml
Vim Sauce
Multiple source file management for Vim
Stars: ✭ 55 (-6.78%)
Mutual labels:  viml
Vim Lookup
Jump to the definition of variables or functions in VimL code.
Stars: ✭ 51 (-13.56%)
Mutual labels:  viml
Yaml Vim
YAML Highlight script for VIM editor
Stars: ✭ 53 (-10.17%)
Mutual labels:  viml
Vim Partial
Makes creating partials in your code a breeze!
Stars: ✭ 58 (-1.69%)
Mutual labels:  viml
Grep.vim
Grep search tools integration with Vim
Stars: ✭ 56 (-5.08%)
Mutual labels:  viml
Vim Alignta
Align Them All!
Stars: ✭ 54 (-8.47%)
Mutual labels:  viml

Bisectly

Quickly Locate Faulty Plugins

Bisectly is a plugin-manager-agnostic fault-localisation tool for finding which Vim plugin is causing you nose-bleeds.

Usage


.Manual Operation

Use this if you want to manually test every activated Vim instance by
hand. See the Automated Operation for using a fixed command or script
to automate the hunt.

Start Vim normally and then type `:Bisectly`.

You will be presented with a fresh instance of Vim. Test if your
problem still exists. If it does, type `:Zombies` to signify your
disgust and frustration with this hellish affliction. If the problem
has magically vanished then type `:Unicorns` and watch them dance gaily
in the fields with wild abandon. Of course, for the morbidly lazy or
chronically serious, these two commands can be more simply entered as
`:Z` and `:U` respectively.

This process will repeat several times over as your plugin set is
whittled down in pursuit of the culprit behind your woes. Hopefully
the fault exists in a single plugin. If so, Bisectly should be able to
tell you which one that is. If you answer `:Unicorns` all the way
through, then Bisectly will complain that there was no fault found.
You might want to reconsider your tests or the consistency with which
you applied them if you get this message.

Note that this will not work in gVim. You must use Vim in a terminal.
If you use gVim, it will appear to hang when you run `:Bisectly`,
because you can’t see the fresh instance of Vim that was launched.

.Automated Operation

1. Using an inline expression:

  :Bisectly if exists(':Tabularize') | Zombies | else | Unicorns | endif

2. Using a test script:

  :Bisectly so f-jumps-over-lines.vim
+
This will execute the script `f-jumps-over-lines.vim` in every test
instance, reporting that the ``faulty'' plugin is vim-fanfingtastic
(if you have it installed). The test script should call `:Unicorns`
and `:Zombies` as appropriate. Here, _appropriate_ means `:Zombies`
when the behaviour is present, `:Unicorns` without -- despite your
aesthetic take on the issue. See the `f-jumps-over-lines.vim` and
`View_command.vim` scripts in the Bisectly release for examples.

Binary Search Fault Location (BSFL)

By default, :Bisectly uses binary search (space partitioning) to quickly reduce the number of test cases it has to perform to locate the fault. This usually works well, but the algorithm can result in occasional spurious misses or hits. A slower but more thorough linear search is available with the :LSFL command. It has the same interface as its :Bisectly counterpart. For completeness, :BSFL is a synonym for :Bisectly.

Weird Things


Because Bisectly disables clumps of your `'runtimepath'` at each turn,
you might occasionally get some spurious error messages or warnings as
the Vim instance starts. These messages can be caused by complaining
plugins that are missing part of their own architecture (their
mainline code is loaded, say, but their `/after/` code was excised from
this run) or a plugin they depend on.

One thing to keep an eye out for in your tests is a change in the
negative-test behaviour. For instance, you know your tests behave a
certain way when the bug you're hunting is not present. You know
when it is present, clearly. After a few iterations like this, be
conscious of new and different messages or failures or responses that
superficially look like a negative-hit, but might indicate that your
bug is _trying_ to activate but can't because a dependent plugin is
missing. In that case, incorrectly responding with `:Unicorns` here will
result in Bisectly ultimately telling you that it couldn't locate a
fault, or worse, misrepresenting the origin of the fault.

Happy hunting.
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].