Comments (4)
Bumping again.
from openvi.
Confirmed the behavior you noted, comparing OpenBSD 7.2-beta with OpenVi master.
I'll look into it and see what is happening. I'm totally not surprised that I broke this (the completion code is a bit hairy -- as you can see, almost all open issues are related to completion), but I'm not sure just how I broke it yet - sorry!
Traditional vi completion worked by calling the shell to do the expansion. This is probably the smartest thing to do - the expansion in vi will always follow the same rules as the users shell - a zsh user can use zsh globs like **/*(.)
, csh users can use whatever they use, etc. Because calling a new shell is an expensive operation, especially on a old VAX, nvi accelerated the most common completion case of '*
' by handling it internally, avoiding the need to fork a shell.
I see if you disable the shell-based completion by setting shell="" in Nvi or OpenBSD's vi, the "default" internal tab completion still works as you expect it to, but not on OpenVi.
This seems to point towards having broken the internal completion in some way, as that is the one that's called in the default case.
It will be a bit before I'm able to investigate this further, but it's a bug for sure and I'll make a new release once it's fixed because it creates an annoying and unnecessary incompatibility between OpenVi and OpenBSD vi/nvi.
from openvi.
Thanks for investigating and the explanation :)
I can build from git if you get to the point you want anything tested.
PS.
my shell from OpenVi: shell="/opt/local/bin/oksh"
That's OpenBSD ksh from macports, which so far seems just like on ksh on OpenBSD.
It must get that from $SHELL (which is the same), because I didn't set it.
from openvi.
Just checking in.
Yes, it will use your SHELL from the environment by default for the shell to call for completions. You can override this if you desire. (In the days of slow VAXen, it was somewhat more common to use a faster minimalist shell for providing completions and/or shelling out to execute commands from buffers, and using a more featured shell for interactive logins.)
I've not had a moment to look at this issue yet, but I'm hoping to do so before the OpenBSD 7.2 release, which will bump OpenVi to 7.2.x.
from openvi.
Related Issues (20)
- NetBSD support
- Add illumos OpenIndiana support
- Add Solaris support
- Move to using xinstall to install compiled binaries
- make strip fails on AIX HOT 1
- Avoid using `#include_next` GNU extension ...
- Debian / Ubuntu build guide HOT 1
- PRs from Alpine packaging activity HOT 3
- NixOS packaging HOT 1
- Add Nvi2's new alternate ex notation
- Screen does not seem to "automatically redraw" after edits on macOS 13/14 (Homebrew-built binary) HOT 12
- alt notation mode crashes on OS X ARM64
- Expandtab/shell command related issue HOT 2
- :pre not working on macOS, missing /var/tmp/vi.recover HOT 3
- CMD via -c Flag is not executed if the file doesn't already exist HOT 5
- Unexpected behavior with ':version' via `oex -s` HOT 4
- Unable to build on Linux without libbsd HOT 1
- filter read lines bypass `expandtab` HOT 2
- Filenames with spaces are incorrectly displayed in completion
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 openvi.