Comments (4)
You can see why in the bash script: https://github.com/tweekmonster/fzf-filemru/blob/master/bin/filemru.sh
The project files are filtered from the start, so you will see a startup delay. I doubt that rg
would matter since this isn't used for searching file contents. The pre-filtering is needed because the files must be sorted before they get to FZF. The MRU file list also needs to be validated so missing files aren't displayed. Additionally, git repos are handled a bit differently: git-ignored files are ignored (unless they're actually a MRU file), and submodules are completely ignored because they tend to add noise and add near-duplicate file matches that are not useful. All of this happens before we even get to the part where FZF presents the choices to you, so it's naturally going to be slower than simply enumerating files on the disk.
If you're on macOS and use /usr/bin/git
(built in), chances are that it's a lot slower than the one provided by Homebrew. So, this could be another contributing factor.
This plugin's only performance-related goal was to be faster than a pure VimScript implementation of the above features.
from fzf-filemru.
Im on arch linux, thx for your very detailed answer, i added more filetypes and folders to ignore and the performance is now quiet aceptable. So i guess only a rewrite in go, rust, c ... could speed up the perf.
from fzf-filemru.
So i guess only a rewrite in go, rust, c ... could speed up the perf.
Vim plugins that require a binary component require more maintenance and documentation, so I avoided it. I thought about using Go because it would've made it easy to have Windows support, though. But, this is a small plugin and there isn't exactly demand for that.
I think having a binary would speed up the string operations and the sorting, but I think the bottleneck is still going to be the git
commands being ran in a subshell. Parsing .gitignore
and .gitmodules
could avoid calling git
. This all requires effort just to find out if it's even beneficial and I'm not bothered enough by the performance to mess with it.
from fzf-filemru.
alright i think max. 3-5x times slower is fair enough under this conditions atm : )
from fzf-filemru.
Related Issues (12)
- [feature request] Add option to omit current file from MRU list HOT 4
- Ability to update mru list when entering a buffer HOT 3
- Q: Is there a way to always have the `mru` entries ordered to the bottom? HOT 1
- How to pass arguments to underlying fzf? HOT 3
- Only show MRU files
- Only current directory files shown HOT 1
- :FilesMru shows only mru files HOT 1
- Looks like the fzf.vim refactor that just happened breaks this. HOT 3
- How to display a cleaner file list HOT 3
- Ctrl-v and Ctrl-x does not work on Fzf-filemru HOT 2
- Breaking on MacOS HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fzf-filemru.