CMDer Details
CMDer is a Windows frontend for the standard Windows Command Shell (aka cmd.exe). It supports ^C and ^V for Copy and Paste. It works by piping its input to a slave cmd.exe's stdin and it reads a pipe connected to stdout and writes that to the screen.
Bypass-cmd commands should always be Windows executables. CMDer spawns these Bypass-cmd commands using the Window API which searches for the executable file in the following sequence:
- The directory from which the CMDer.exe loaded - e.g. C:\bin
- The current directory for CMDer - e.g. C:\My Documents
- The 32-bit Windows system directory - usually C:\Windows\system32
- The 16-bit Windows system directory - usually C:\Windows\system
- The Windows directory - usually C:\Windows
- The directories that are listed in the PATH environment variable.
This order is probably different from your PATH environment variable, especially #1.
Also a command with a period in its name won't work unless the .exe is also given.
-
Double Clicking now works correctly on Windows 10 / Fast Processors.
-
Selecting a directory name in the main window and using File > Open (Ctrl+O) will immeditately post a cd [dirname] command to the hidden DOS box thereby implementing a change to that directory from the currently logged directory. A record of this does appear in the output; otherwise this is similiar to double clicking a file in Windows Explorer.
-
View > Toggle Right/Left (Shift+Ctrl+Y) will now move Cmder's window to either
the extreme right or left of the screen.
- F8 no longer inserts a new saved command line that is exactly the same as the current command line.
-
View > Toggle Monitor (Shift+Ctrl+X) will now correctly move Cmder's
window up or down if the multiple monitor setup has the monitors arranged
vertically. It also moves its window right or left if the 2nd monitor is to
the left of the main one.
-
The useless Shift+F12 function (which has not worked since Win/2000) has been removed.
-
The bug where CMDer would hang if a line of output was longer than 1020 characters has now been fixed.
-
Directory completion (^D) now works with cd and rd even if quotes are not used and the partial directory typed contains spaces.
-
F9 = Move the focus to the command line window.
-
File > Open (Ctrl+O) will immediately execute the main window selected text using the currently logged directory. This functionality is also available from the right-click context menu - in fact you can left-doubleclick, then right-doubleclick. No record of this is added to the output - this is similiar to double clicking a file in Windows Explorer.
-
New funtion key featuures have been added:
Shift+F5 = Insert second word of previous command
Shift+F6 = Insert the command line arguments (i.e. all except the first word) of the previous command
F11 = Full Screen toggle
-
In order to accommodate the above, 2 funtion key actions were moved to new keys:
F12 = Start piping output thru '| more'
Shift+F12 = Post chars to slave CMD process
-
A bug has been fixed so that CMDer no longer gets confused if there is a filename.exe file and a filename subfolder in the same folder.
-
The CDCP command is always run to set cmd.exe to the corresponding value you choose for the code page (e.g. 0 for ANSI default, 1 for OEM default, 1253 for Greek, etc.).
-
A bug has been fixed in File > Errors > Auto Truncate where the option would get mistakenly turned off.
-
A bug has been fixed in the View > Window Size dialog so that the window size no longer creeps larger when simply pressing Enter.
-
Program Completion is now available using ^R - the PATH is searched for executables that begin with what has been typed.
-
Edit > Convert / to \ (Ctrl+\) will replace all forward slashes in the command line with backslashes.
-
The ESC key now not only clears the command line but also moves the focus to it from the output window if necessary.
-
Output from "ping" is now correctly line wrapped (as is any other output containing the 0x0D,0x0D,0x0A sequence).
- If you are logging stderr output, it is now automatically truncated, showing (usually) only the errors for yesterday and today. You can turn this off by unchecking File > Errors > Auto Truncate. The truncation occurs at the first startup each day by moving the cmder*.err file to a cmder*.ero file. Both are shown by File > Errors > View and both are cleared by File > Errors > Clear.
- You can now create up to 16 macros to run as tho they were commands. This can be useful for feeding tabwidth and number of columns to commands. Click Edit > Macros, then click the Help button for more info.
- When you run a Bypass-cmd command (see Edit > Edit Bypass-cmd Commands), it will now be displayed in the main window in green. The color can be changed via View > Bypass-cmd Color.
- You can use View > Window Size to resize the CMDer window to a specified number of columns and lines. Or you can click one of the 4 buttons at the bottom of this dialog to
- Resize and move the CMDer window to fill the left half of the screen
- Resize and move the CMDer window to fill the right half of the screen
- Move the CMDer window flush with the left side of the screen
- Move the CMDer window flush with the right side of the screen
- You can use File > Logging > ... to start and stop logging all output (both stdout & stderr) to a file of your choice.
- You can use File > Errors > ... to log, view and clear the output from stderr. View > Show Errors in Color must be checked in order to log stderr output.
- ^F no longer initially fails to find the first file when the command line is blank.
- The window for the output screen has been changed from a simple multiline window to a multiline rich text window. This has led to less flashing and much improved performance.
- Since rich edit fields support color, you can have the stderr output text printed in a different color, e.g. red. However, this means that there are 2 pipes feeding the output window and error messages may be displaced from where they actually occur. Efforts have been made to ameliorate this problem, but it is not totally fixable. Just decide do you want color or better accuracy. Use View > Show Errors in Color to toggle this feature on and off. You can change the error text color using View > Error Color.
- Double-clicking in the output window works much as before; however, the standard much-more-restrictive rich text double-clicking behavior is available by holding down the Alt key while double-clicking. This can be useful for example if you want to select a single element out of a long file path.
- Triple-clicking now works to select a "line" of output, a line being defined as everything between 2 line-feeds. The trailing line-feed will be copied to the clipboard, but this is not a problem for pasting into the CMDer input line since it discards pasted line-feeds.
- When output is being run thru more (e.g. "| more"), if you press 'q' to quit and discard the rest of the output, now the discarding happens much faster.
- If you have a lot of output coming to the screen, you can press F11 at any time and begin piping that output thru more. You can then of course type 'q' and discard the remaining output. This can be useful if you run a program and it begins writing more output than you expected.
- Function key F5 inserts the first word of the previous command into the input line at the current caret location.
- Function key F6 inserts the last word of the previous command into the input line at the current caret location.
- Function key F7 displays a menu of previous commands, one of which can be inserted into the input line at the current caret location.
- Help > Function Keys will show you what all the function keys do.
- CMDer now can now more or less keep its environment is sync with the slave cmd.exe's environment. But this is an expensive operation (takes about a second) so it is not run automatically - you must sync manually using Edit > Sync Environments (^E). See the below for more info.
-
The CMDer environment is passed to the slave CMD every time CMD is started. This means that if you use ^C to interrupt, the new CMD will not have any changes to the environment made via SET or PATH. You can avoid this by clicking Edit > Sync Environments (^E) before using ^C - i.e. immediately after you run the SET or PATH commands or run a batch file that calls them. However, if you run set [environment-variable]= to unset an environment variable, CMDer will still have it set even after running ^E - use /u [environment-variable] to clear the environment variable in both CMDer and cmd.
-
Like the environment, the system's drives' current directory information is what CMDer knows from when each drive was last the logged drive. You can refresh what CMDer knows by clicking Edit > Sync Environments (^E).
-
Cmder checks each command to determine if it is a Windows executable. If so, it is spawned with the string "[SPACE]sTaRT[TAB]" inserted before the command because Win/XP and earlier have problems spawning a Windows executable from a redirected, hidden CMD window - "sTaRTing" them however fixes the problems. The "[SPACE]sTaRT[TAB]" is removed from the output window (that's why the string looks so weird - so it can be easily identified) so what you see is what you typed. However, since the Windows API SearchPath() does not work like CMD's PATH search (see above), it is possible that CMDer might identify a command as a Windows executable when it actually is not. This will result in the correct command being run - but in a separate CMD window, which can then be closed.
-
When you use ^C to interrupt a command, the slave CMD is terminated - hopefully. In case there is a problem, the slave CMD window is shown, if it was hidden, just before the attempt to terminate it. That way you can close it manually if it sticks around.
-
Some operations convert all the text in the output window to normal text color, losing any colors for stderr output, etc. These operations include changing the font and changing the background or text colors.
Back to Cmder Help
If you find any bugs or wish any new features, send me an email.
Leigh Brasington