|Summary:||[PATCH] Restore default tab file completion behavior for nvi|
|Product:||Base System||Reporter:||Craig Leres <leres>|
|Component:||bin||Assignee:||freebsd-bugs mailing list <bugs>|
|Severity:||Affects Only Me||Keywords:||patch|
Description Craig Leres 2016-12-16 22:14:46 UTC
Created attachment 178017 [details] patch Prior to FreeBSD 10 and nvi version 2.0.3 the filec option was undefined by default. For example you could change blanks to tabs from vi mode with: :%s/ /^I/g This is the behavior for vi in System V, all versions of BSD vi, nvi up to and including 1.79 and the vi/nvi that shipped with all versions of FreeBSD prior to 10. Head r254225 upgraded nvi from 1.79 to 2.1.1-4334a8297f which added: filec=\t to opts_init() changing the default. This means to use a tab in a substitution while in vi mode you must escape it with ^V. In most cases typing a bare ^I results in the terminal bell sound. Note that tab works the old way when editing in ex mode. This means doing substitutions is currently different between vi mode and ex mode. The upstream repo for nvi is here: https://github.com/lichray/nvi2 r322 is the version that added the filec default to opts_init(). Here is the github issue about this problem: https://github.com/lichray/nvi2/issues/15 I believe the plan is to either remove this default or apply it contextually. The attached patch against head/308461 restores the old filec default of undefined.