From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11515 invoked by alias); 18 Aug 2017 17:13:44 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 22840 Received: (qmail 23141 invoked by uid 1010); 18 Aug 2017 17:13:44 -0000 X-Qmail-Scanner-Diagnostics: from tncsrv06.tnetconsulting.net by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(45.33.28.24):SA:0(-4.2/5.0):. Processed in 1.213559 secs); 18 Aug 2017 17:13:44 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD,SPF_PASS,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: gtaylor@tnetconsulting.net X-Qmail-Scanner-Mime-Attachments: |smime.p7s| X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=tnetconsulting.net; s=2015; t=1503076421; bh=2SmhbnsneckUNuUEVY4LGFqo1bTOwAp4TBU6LgS1mRg=; h=Subject:To:References:From:Date:In-Reply-To:From; b=qnAtPh1VQEnxGoWiijezVh4SNHdYVMexvdz1nAHOlXLOLMmAfCcsWfQ0+aFRssMzI BtKoL6ZKJQV7X53hIIw3ZLBD5SKLMtL2Ko120y3tTDYc5oOT3xCo2wLEZ4wXHxDLCj GwNdIWNIUA5pzjM7SaeZE+VLl+HZRyERqQ9YWq/o= Subject: Re: Conditionally complete on space. To: zsh-users@zsh.org References: <1503018440.3774801.1077066976.3967894E@webmail.messagingengine.com> <6311d6fb-4de6-00b0-2e43-1ebbc65402fb@tnetconsulting.net> <1503032825.3842363.1077203224.3C85AD9F@webmail.messagingengine.com> From: Grant Taylor Message-ID: Date: Fri, 18 Aug 2017 11:13:34 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <1503032825.3842363.1077203224.3C85AD9F@webmail.messagingengine.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms010007000802070903080807" --------------ms010007000802070903080807 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 08/17/2017 11:07 PM, Daniel Shahaf wrote: > That doesn't seem to have anything to do with the widget: >=20 > $ zsh -f > % autoload compinit > % compinit > % sipcalc(){} > % sipc >=20 > results in BUFFER=3D"sipcalc " with just one space. Well I'll be.... I never noticed it before, but it sure is there. - I guess that means=20 that I won't mind it henceforth either. :-) > You can always to enter a literal space. Ya, I was doing that during my diagnostics. My goal is to overload space so that I don't need to hit special keys. ;= -) > The REC_EXACT option works if you change expand-or-complete > to complete-word. (In this case you may want to add _expand > to your 'completer' zstyle.) You've gotten me a LOT closer. And some brute force hacking (less than=20 gracefully) got me to what I think I want. maybe-expand-or-complete() { if [[ $LBUFFER[-1] !=3D ' ' && -z "$JUSTCOMPLETED" ]]; then zle expand-or-complete if [[ $LBUFFER[-1] !=3D ' ' ]]; then JUSTCOMPLETED=3Dtrue fi else unset JUSTCOMPLETED zle self-insert fi } zle -N maybe-expand-or-complete bindkey ' ' maybe-expand-or-complete setopt recexact The key was to retain state between maybe-expand-or-complete()=20 executions via JUSTCOMPLETED so as to not call expand-or-complete=20 successively when there were multiple matches. Thanks to your help Daniel, I believe I have something that I can start=20 using and deal with any annoyances as they come up. :-) --=20 Grant. . . . unix || die --------------ms010007000802070903080807 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCC CgIwggSvMIIDl6ADAgECAhEA4CPLFRKDU4mtYW56VGdrITANBgkqhkiG9w0BAQsFADBvMQsw CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4 dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290 MB4XDTE0MTIyMjAwMDAwMFoXDTIwMDUzMDEwNDgzOFowgZsxCzAJBgNVBAYTAkdCMRswGQYD VQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNP TU9ETyBDQSBMaW1pdGVkMUEwPwYDVQQDEzhDT01PRE8gU0hBLTI1NiBDbGllbnQgQXV0aGVu dGljYXRpb24gYW5kIFNlY3VyZSBFbWFpbCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC AQoCggEBAImxDdp6UxlOcFIdvFamBia3uEngludRq/HwWhNJFaO0jBtgvHpRQqd5jKQi3xdh TpHVdiMKFNNKAn+2HQmAbqUEPdm6uxb+oYepLkNSQxZ8rzJQyKZPWukI2M+TJZx7iOgwZOak +FaA/SokFDMXmaxE5WmLo0YGS8Iz1OlAnwawsayTQLm1CJM6nCpToxDbPSBhPFUDjtlOdiUC ISn6o3xxdk/u4V+B6ftUgNvDezVSt4TeIj0sMC0xf1m9UjewM2ktQ+v61qXxl3dnUYzZ7ifr vKUHOHaMpKk4/9+M9QOsSb7K93OZOg8yq5yVOhM9DkY6V3RhUL7GQD/L5OKfoiECAwEAAaOC ARcwggETMB8GA1UdIwQYMBaAFK29mHo0tCb3+sQmVO8DveAky1QaMB0GA1UdDgQWBBSSYWuC 4aKgqk/sZ/HCo/e0gADB7DAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwEQYDVR0gBAowCDAGBgRVHSAAMEQGA1Ud HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVybmFs Q0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVz ZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQELBQADggEBABsqbqxVwTqriMXY7c1V86prYSvACRAj mQ/FZmpvsfW0tXdeDwJhAN99Bf4Ss6SAgAD8+x1banICCkG8BbrBWNUmwurVTYT7/oKYz1gb 4yJjnFL4uwU2q31Ypd6rO2Pl2tVz7+zg+3vio//wQiOcyraNTT7kSxgDsqgt1Ni7QkuQaYUQ 26Y3NOh74AEQpZzKOsefT4g0bopl0BqKu6ncyso20fT8wmQpNa/WsadxEdIDQ7GPPprsnjJT 9HaSyoY0B7ksyuYcStiZDcGG4pCS+1pCaiMhEOllx/XVu37qjIUgAmLq0ToHLFnFmTPyOInl tukWeh95FPZKEBom+nyK+5swggVLMIIEM6ADAgECAhBWFNl+TpTaXY4YBuKunuW7MA0GCSqG SIb3DQEBCwUAMIGbMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy MRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDFBMD8GA1UE AxM4Q09NT0RPIFNIQS0yNTYgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1h aWwgQ0EwHhcNMTYxMTIyMDAwMDAwWhcNMTcxMTIyMjM1OTU5WjArMSkwJwYJKoZIhvcNAQkB FhpndGF5bG9yQHRuZXRjb25zdWx0aW5nLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC AQoCggEBALQOeB9QxYwFjGM8smbnZihDiEsKsBBX0H1M9WC/HjeHf+AO26QH4mdiN+XpFMVy yVyZqEbgheL49o7qcRPf2PPVck+E67zn8b/kef1LbWde++QDMg56zZvAU4CbF7/v98WnHpzY LP+3AWK0z/7IfBwujQE8xW6E0vTZznq8GGP5z6pGSap4gKh/a8erEVcoYdK2IuWYa4sNxOvo FICiOoCMJhvU1F92yuuXCRZcZwFyav7P3+M36jHdViH2fuZuOhZBWb419mmhtUWS8r6aVdfk Vq+Pz3NdvLdo6AsUZpf7dZr/LeLW6gr2VoDQ5+j1JtI24wzl42RAVTsANoH/OusCAwEAAaOC AfgwggH0MB8GA1UdIwQYMBaAFJJha4LhoqCqT+xn8cKj97SAAMHsMB0GA1UdDgQWBBSxNT5f 50Ax2YRcuiCuDfxHUlkuGjAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAgBgNVHSUE GTAXBggrBgEFBQcDBAYLKwYBBAGyMQEDBQIwEQYJYIZIAYb4QgEBBAQDAgUgMEYGA1UdIAQ/ MD0wOwYMKwYBBAGyMQECAQEBMCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9k by5uZXQvQ1BTMF0GA1UdHwRWMFQwUqBQoE6GTGh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0NP TU9ET1NIQTI1NkNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5jcmwwgZAG CCsGAQUFBwEBBIGDMIGAMFgGCCsGAQUFBzAChkxodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9D T01PRE9TSEEyNTZDbGllbnRBdXRoZW50aWNhdGlvbmFuZFNlY3VyZUVtYWlsQ0EuY3J0MCQG CCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wJQYDVR0RBB4wHIEaZ3RheWxv ckB0bmV0Y29uc3VsdGluZy5uZXQwDQYJKoZIhvcNAQELBQADggEBACCtfMI0hVAiQKvOx9Br ffT4YUPJRlXcs6yoDHfg0bnVw/ucEJ1neOi/aIUdA6EypUMNrshmgJTNaj6CsRH8c0yXOeGd nO5tNrPMYAhVvCQo/gpliYhIs2RAKXgFNtkUufwTqOQOLZva4LLVxSuSYncAgxdaj6TcORsd 9NEKPUC03F8yW0hk2M6WqvOpyIG4CWAP8Tmrxs0OKZuQeAoI3bs103EuMiMBTFIeEm8Obvx+ svg+UhK0CaMjEH92AwZ4blouFxqGTlgE/wclDCe+tZr/FvBP4Vflm/o82IkvyiNff8Qwz/BS z1hTRwSc7JexXVTms1cS7rMBRFwcvU2Le6kxggRBMIIEPQIBATCBsDCBmzELMAkGA1UEBhMC R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxQTA/BgNVBAMTOENPTU9ETyBTSEEtMjU2IENsaWVu dCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhBWFNl+TpTaXY4YBuKunuW7 MA0GCWCGSAFlAwQCAQUAoIICYTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3 DQEJBTEPFw0xNzA4MTgxNzEzMzRaMC8GCSqGSIb3DQEJBDEiBCDF3VnjZiOJn8Y+tdZTkD1l dwOf4OiebkpZZYiVUA10rzBsBgkqhkiG9w0BCQ8xXzBdMAsGCWCGSAFlAwQBKjALBglghkgB ZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsO AwIHMA0GCCqGSIb3DQMCAgEoMIHBBgkrBgEEAYI3EAQxgbMwgbAwgZsxCzAJBgNVBAYTAkdC MRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNV BAoTEUNPTU9ETyBDQSBMaW1pdGVkMUEwPwYDVQQDEzhDT01PRE8gU0hBLTI1NiBDbGllbnQg QXV0aGVudGljYXRpb24gYW5kIFNlY3VyZSBFbWFpbCBDQQIQVhTZfk6U2l2OGAbirp7luzCB wwYLKoZIhvcNAQkQAgsxgbOggbAwgZsxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVy IE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1p dGVkMUEwPwYDVQQDEzhDT01PRE8gU0hBLTI1NiBDbGllbnQgQXV0aGVudGljYXRpb24gYW5k IFNlY3VyZSBFbWFpbCBDQQIQVhTZfk6U2l2OGAbirp7luzANBgkqhkiG9w0BAQEFAASCAQBV P0ashUz5rq2SFOe29vvjM8O5v+e2quCBEpou+wXStqqr9qWXzRnOplbTGXZ40nmqWGfF2qDn sn0A8UR04s9bA//je256rxrvaTebrtc8slTIhCB4W/nucA+acyCRHftcgPcYDU7wOfRCL0kH yIQKEuFoTd/TNGHpuP+Lwvg41WW0BB7zL1ik6wd+QDVAb3OuuUL4p7gCAUcH1We3H1k9LAp1 vxIadXgaz0MaUqccSS8iWkm+M08CJEsOS1OCFNhwYgm6NG+ieEztg4MkxW9/0p7S0kFluFZo Xj1EQqjaX4kVL/fEpJLMC/hBjuagc6inC1fY3LBgVBCME/WGNHl3AAAAAAAA --------------ms010007000802070903080807--