Tab completion differences with cmd.exe

Aug 21, 2014
10
1
#1
I noticed two differences with the way TCC handles tab completion versus cmd.exe.

(1) "Backspace" works differently. Imagine you are completing a filename, you type:
C:\>C:\Progra<tab>​
The directory would be complete:
C:\>"C:\Program Files"​

You then start tabbing through the program files list, only to realize that you actually wanted "C:\Program Files (x86)".

Under cmd.exe, I can simply backspace to the end of the "Program Files" and press <tab> to complete the next entry ("Program Files (x86)"). Under TCC, I would have to remove the entire "Program Files" before it will let me complete again. If I simply go back to "Program Files" and press <tab>, it beeps.

The cmd.exe behavior is much easier to use since it's easier to make corrections.

(2) Shift+Tab/Tab are circular in cmd.exe.

Let's say I have three directories:
C:\Program Files
C:\Program Files (x86)
C:\Python​

I type "C:\P<shift+tab>"

Under cmd.exe, it would auto-complete to C:\Python. Pressing shift+tab again would complete to "Program Files (x86)"

Under tcc.exe, it would auto-complete to C:\Program Files and pressing shift+tab again does not work.

In addition, under cmd.exe, I can press tab to cycle through the list (so pressing <Tab> after C:\Python would autocomplete to "C:\Program Files".

This is useful when I have a series of similarly named files and I want to complete to the last (or second to last one).

This TCC behavior is as of TCC 18.00.31.

Is there any way of making TCC use the cmd.exe behavior? Or is this something that could be added in a future version?
 

Charles Dye

Super Moderator
Staff member
May 20, 2008
3,553
46
Albuquerque, NM
prospero.unm.edu
#2
I noticed two differences with the way TCC handles tab completion versus cmd.exe.

(1) "Backspace" works differently. Imagine you are completing a filename, you type:
C:\>C:\Progra<tab>​
The directory would be complete:
C:\>"C:\Program Files"​

You then start tabbing through the program files list, only to realize that you actually wanted "C:\Program Files (x86)".

Under cmd.exe, I can simply backspace to the end of the "Program Files" and press <tab> to complete the next entry ("Program Files (x86)"). Under TCC, I would have to remove the entire "Program Files" before it will let me complete again. If I simply go back to "Program Files" and press <tab>, it beeps.
That works fine for me, provided I do have "Program Files" with the closing quote. Filename completion doesn't like unbalanced quotes. If you remove the close quote and Tab doesn't work, e.g. "Progra ... then just add a quote to make it "Progra", and Tab will be happy again.

(No, I'm not aware of any directive to make the file-completion buffer act circular.)
 

rconn

Administrator
Staff member
May 14, 2008
10,415
95
#3
(2) Shift+Tab/Tab are circular in cmd.exe.

Let's say I have three directories:
C:\Program Files
C:\Program Files (x86)
C:\Python​

I type "C:\P<shift+tab>"

Under cmd.exe, it would auto-complete to C:\Python. Pressing shift+tab again would complete to "Program Files (x86)"

Under tcc.exe, it would auto-complete to C:\Program Files and pressing shift+tab again does not work.

In addition, under cmd.exe, I can press tab to cycle through the list (so pressing <Tab> after C:\Python would autocomplete to "C:\Program Files".

This is useful when I have a series of similarly named files and I want to complete to the last (or second to last one).

This TCC behavior is as of TCC 18.00.31.

Is there any way of making TCC use the cmd.exe behavior? Or is this something that could be added in a future version?
The shift+tab key in TCC (the same as pressing F8) recalls the previous match. Tab matches forward, shift-tab / F8 returns the previous match.

But if that's what you want to do, you're doing it the hard way. Try "C:\P<F7>" instead.
 
Aug 21, 2014
10
1
#4
I have verified that the unbalanced quotes were causing the problem. If I add the missing quote in, the tab completion works as expected.

I just tried the F7 mode and it does make it easier, although in some cases, a circular completion would come in handy ;)