Better windows command line shells [closed] - windows

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Is there a better windows command line shell other than cmd which has better copy paste between Windows' windows and console windows?

Enable QuickEdit mode, under the Options tab of your shortcut to the command shell. Mark with the mouse, right-click to copy, right-click again to paste.
While you're there, enable a hotkey (like CTRL + ALT + C) for lightning fast access to the shell.
And no, you can't have CTRL + C for COPY, because CTRL + C means BREAK.
On a related note, the Microsoftee who changed the default setting of QuickEdit mode between Windows Server 2000 and 2003 is an idiot and I heap curses upon him each workday.

Windows PowerShell is the obvious choice when it comes to "better windows command line shell other than cmd". Its clipboard handling isn't that much of an improvement - mark with the mouse, Enter to copy, or right mouse click to paste.

This probably is not exactly what you want, but you can take a look at Console2
I have it configured so that shift+select auto copies and middle click pastes, really handy, internally it uses same old cmd.exe so you are not really getting a different shell.
By the way, I guess Ctrl+C = copy is not the best idea in a command line context because it usually means interrupt running process.

Take Command does support Copy/Cut/Paste from the keyboard and the mouse. It's pretty handy if you do a lot of work from a command prompt. It also supports:
Command and folder history, with popup windows to select prior commands or folders.
Screen scroll back buffer
Enhanced batch commands
Built in FTP/HTTP file access
A toolbar with programmable buttons
Note: It's a paid tool, with price of $99.95.

Depending on what you're trying to do with the shell, rxvt in cygwin is good.
You'll get the nicety of auto copy on selection and middle click paste. The biggest downside is that some windows console apps don't play nice with cygwin.

PowerCmd is cheaper than TakeCommand and has a lot of powerful features - not the least of which is better handling of Cut/Copy/Paste. I've only been using it a short time but I'm really impressed so far:
Summary from the site:
PowerCmd enhances your command prompt
with an easy-to-use Windows GUI-style
interface and allows you to run
multiple consoles within a single
tabbed window. You can easily organize
multiple consoles in vertical,
horizontal, and grid forms. Auto-log,
auto-completion, keywords highlight,
configurable font and colors,
customizable toolbar for frequently
used commands or tools and minimizing
to tray are easy solutions to daily
needs. With PowerCmd, you can save and
restore your sessions from last time.
Site:
http://www.powercmd.com/
Features:
http://www.powercmd.com/features.php

Not sure what specifically you mean by better copy/paste but try Take Command.
Take Command supports Shift+Ins for paste and Shift+Del for cut, but apparently nothing for copy, will dig some more.

There are two portion to cmd.exe. First there is the window that pops up for dealing with the text console. I would replace that with ConEmu. That program is actually meant as a wrapper for the Far File manager but works just fine without it. It is very similar to Console2 but also is much more stable and has better features.
Second there is the command line interpreter. I would replace that with Powershell if you actually need any of its features.
I currently run using ConEmu with a batch file to setup my preferred environment. This is kept in my Dropbox folder so it remains synchronized between my computers.

Have you thought through what behavior you want to replace the current Ctrl+C functionality?

Console 2
http://sourceforge.net/projects/console/
http://www.hanselman.com/blog/Console2ABetterWindowsCommandPrompt.aspx

#Chirs
I think you need to clarify shell vs host(emulator). To me it sounds like you need another interface to your existing shell that better supports copy and paste, not another shell that supports more/different features.
I second Pat's suggestion of Console2, it is a very good application and OSS to boot.

The Windows cmd shell, Cygwin Bash, and msysgit Bash shells can be run within Emacs. EmacsW32 provides all three separately. You just have to set the bin directory to use either of the Bash shells. EmacsW32 also provides limited interactions between the Windows clipboard and the top item of the kill ring.

MinGW Shell properly set up with:
right click menu entry
~/.profile file
is well above anything else I have tried.

MinTTY on MinGW/MSYS is nice—nicer than on Cygwin because MinGW/MSYS is faster. Also, if you need cmd.exe behaviour, you can run cmd.exe inside of mintty easily.
See http://code.google.com/p/mintty/.

I use the standard CMD.EXE shell but with a twist: an AutoHotKey script to support clipboard copy-paste as posted in: Keyboard shortcut to paste clipboard content into command prompt window (Win XP)

Related

Update powershell keyboard bindings to be emacs style like bash shell

I'm fairly familiar with the default bash shell shortcuts (emacs style). For example, if I want to move my cursor forward by a word I would press Alt+F (same as you would in emacs). I can get to the previous command with Ctrl+P.
Is it even possible in windows powershell to override these shortcuts? If so, does anyone know of a good way to map the default bash shell shortcut configurations to powershell (in a bash shell you can say set -o emacs, for example)?
If it helps, I don't really care about powershell per say, I care about posh-git shell. However, git-shell inherits its properties from powershell from what I can tell.
You can do that with the PSReadLine module which ships with PowerShell 5.0 (Windows 10).
Simply set the EditMode option to Emacs:
Set-PSReadLineOption -EditMode Emacs
In addition to the default Windows mode, it also has a Vi mode.
The project README file mentions that neither are fully implemented so don't expect full feature parity, but I can confirm that it switches tab completion to bash-style and supports the Alt+F and Ctrl+P key bindings for moving forward and jumping to the previous command respectively
(I'm not an experienced emacs user so I'm unable to tell whether this comes "close enough" to what you expect)

Using windows shortcuts in vim

I was wondering if there was a way to use windows shortcuts in vim (in particular those used to select lines (with shift, alt, ctrl) ?
Maybe an option to set in the .vimrc ?
Thanks.
You can enable this via the following command in your ~/.vimrc:
source $VIMRUNTIME/mswin.vim
See :help mswin.vim for a detailed explanation.
Alternatively, copy that script into ~/.vim/plugin/mswin.vim. This allows you to gradually comment out or tweak certain mappings. The downside of this plugin is that many Windows shortcuts conflict with Vim commands, so you're losing some features, and the completely different structure may prevent you from learning and using Vim effectively. Having started with a Windows background myself, this is how I proceeded. Now, I only use a few of those Windows mappings in Vim, and have customized several remaining ones so that they provide a true added value.

Opening files into an existing vim session (Cygwin/mintty)

I am looking for ideas to open files into an existing vim session.
I am working on Windows + Cygwin + Mintty. I usually have 3 to 4 opened terminals (2-3 vim sessions + 1 shell, build environment). I don't use tmux/screen because it's easier to use the native Windows's window manager to switch in between my terminal windows. Because I have 2 wide-screen monitors I can use the 2 half of both screens for my terminals which gives me an awesome working environment. With the help of an AHK script, I can use shortcuts to switch/rotate or even to reposition my terminals in the desired position.
I rather prefer vim over gvim for many reasons. I can achieve almost all the gvim features (scroll, mouse selection, copy, paste, etc. I am one of those who think that using the respectable y/P commands is a bit crippling when you need to use plenty of other softwares that use /. I always get confused to use different shortcuts for each software I am using.
Now the core issue. I would like to open a file from the Windows explorer into an existing vim session. I found a horrible solution using a Perl script with the Win32::API in order to look for an existing mintty terminal with Vim in the title. Then I activate the window and send <esc>:e path/file<cr> to it.
It works pretty well but I am looking for a better solution like gvim --remote that works with my console vim. Unfortunately I don't have such options with my vim even though if I built it with the -with-x configure option.
So, I am looking for some suggestions to achieve a more honorable solution (socket/adding the feature directly to vim/using a smarter ahk script/etc.)
gvim --remote should work with console vim if you start vim with vim --servername GVIM. Alternatively, choose another servername and use vim --servername foo --remote.

How do I disable/hide command box in batch file prompt?

How do I disable/hide the command box in the command prompt window brought up by a batch file?
Also how to force window to stay on top?
The short answer is: you can't with regular command prompt.
The long answer is: you can with 3rd party applications or with the help of scripting as described in this answer https://superuser.com/questions/62525/run-a-completly-hidden-batch-file on Superuser (which by the way is the correct place for this type of questions)
Edit:
After further comments, the OP clarified that he wants to disable the close/minimize buttons on command prompt window, not the actual window. This was answered here, and unfortunately you cannot:
disabling the cmd close button by batch command
There is no way to disable the minimize/maximize/close buttons on the command prompt window.
Also, you will not be able to make the window stay on top using only batch commands. You can find a third party utility that will do that.

As a developer, what changes do you make to a vanilla Windows install?

When I get a vanilla Windows system, there's a bunch of stuff I change to make it more developer-friendly.
Some of it I remember every time, other stuff I only do as and when.
Examples:
Show extensions of all file types
Make hidden and system file visible
Turn off Windows Defender
I seem to remember a blog post from Jeff on this topic, but can't locate it!
What else do you do, and do you have any tools that automate this process?
Indeed I do the above, plus deactivating Zip support (regsvr32 /u zipfldr.dll), activating the underscore on Alt shortcuts (Advanced Appearance), replacing Courier New by Andale Mono (replace with your favorite font) in all program settings (after installing it, of course), installing my favorite utilities (UnxUtils, Sysinternals', SciTE, FileMenu Tools which has Command line here and lot of other goodies, etc.) and so on.
Oh, and indeed also deactivate dual keyboard support (French/English), deactivate task grouping, install VirtuaWin (4 desktops), CLCL (clipboard manager), AutoHotkey and my favorite macros, and lot of other freewares, more or less must have.
No automation, alas.
I install Cygwin to have *nix command line tools and Xemacs to have a useful editor.
I install:
The usual suspects: Visual Studio, Sql Management Studio, Firefox, Chrome, etc...
Paint.Net
Notepad++
Launchy
The first thing I do is open a command prompt and then open the properties for it:
Switch on Quick Edit. Why is this off by default?
Increase the window size. Why limit it to the size of a postage stamp?
Increase the vertical buffer to the maximum possible. Why limit it to a few hundred lines?
Change the foreground colour to white instead of grey. Why make it less readable than it could be?
In summary: WHY?
Using the Add\Remove Windows Components in Control Panel, I always remove...
Games
Document Templates
MSN Explorer
Outlook Express
For the look and feel I...
Revert to the classic start menu; however, if it's Vista, I leave it as is because I like the indexed search feature.
Revert to a classic desktop with large icons and make sure that My Computer is the first icon (versus My Documents)
I also perform the things you mentioned above
Before installing any software I...
Install any outstanding Windows updates
Run a Disk Clean Up
Run Disk Defrag
Setup scheduled tasks for Clean Up, Defrag, and other personal tools
For tools (outside of my IDEs and other necessary development tools), I install..
TweakUI
IE6, IE7, Safari, Chrome, Opera, and Firefox
Install the set of Firefox plug-ins I always use for development
'Open Command Prompt Here' shell extension
Install Consolas and set it as the default font for my editors (IDEs, Notepad++, etc)
I wipe it and install Linux. Everyone is always amazed by how productive I can be. It's because I don't spend half my time fighting with the machine.
Install Consolas font and turn on (and tune) ClearType.
Install ZoomIt to magnify display during presentations.
Install FireFox/Firebug
Install XYplorer Win Explorer alternative (can't live without it!)
Install DeskPins to be able to make any Window temporarily topmost.
Make sure OneNote got installed with Office.
Install Visio.
Install favorite editor (whatever it is at the time, currently SCiTE).
Install 7Zip.
Fix Windows colors to suit me and put picture of RatPack (Dean's my hero) as wallpaper.
Disable shortcuts to FilterKeys, StickyKeys, and ToggleKeys - nothing frustrates me more than having to deal with that cruddy feature because I push the shift key down several times while I'm thinking or hold it down for eight seconds (again, while thinking) before I start typing!
Change the default action for Folder to explore instead of open.
over the years i have arrived to the decision that i do as little customization as possible since workplaces change and computers change (both at home and at work).
i used to do all kinds of crazy tweaks with litestep, setting up partitions, etc. these days i pare it down to the basics, and it does not take me long to setup a machine and have a familiar environment.
in addition to the usual "win32dev" setup (classic scheme, optimized for performance, no special effects, show all files, details in explorer views, blue background, etc) i have the following stack:
cygwin (gcc, vim, curl, wget, perl/ruby/python, svn, git, ssh, netcat, etc; rxvt for terminal)
ffox + adblock + dev plugins
clipx for simple stack-like clipboard with previews
textpad + a few basics syntax highlighters
virtuawin - the only minimal window manager that does all i need and nothing more
autoHotKey for basic app shortcuts
procexp to replace task manager
all other sysinternals tools
tortoise svn
putty + agent + keys
7zip
keepass
wireshark
everything i install by hand goes into c:\programs (for easy no-space, lowercase paths).
Regarding:
Show extensions of all file types
Make hidden and system file visible
I don't like making hidden files visible all the time (it makes two desktop.ini visible on my windows Vista desktop for starters) so I use an explorer extension to make it easy to toggle this on and off. There's also a corresponding one for file extensions:
HiddenFilesToggle Context-Menu Shell Extension
FileExtensionToggle Context-Menu Shell Extension
Command line scripts
For storing scripts that I use from the command line I create a Command Line Scripts directory under Program Files and add it to the PATH environment variable. I use the following batch file for listing and editing those scripts:
#echo off
setlocal
set UTILPATH=C:\Program Files\System Tools\Command Line Utilities
if not "x%1"=="x" (
start "" "notepad" "%UTILPATH%\%1.bat"
) else (
dir /b "%UTILPATH%" | grep -v com.bat | grep -P "(exe|bat|cmd)" | sed "s/\.\(exe\|bat\|cmd\)//"
echo.
)
(note that the filtering of the directory listing depends on some unix commands I have installed via Cygwin)
I give it the name com.bat, (short for command) then I can:
list the scripts in that directory by typing com at the command prompt
edit any script in the list by typing com script-name at the command prompt*, similarly:
create new scripts in that directory by typeing com new-script-name at the command prompt*
and if I ever need to edit com.bat I just type com com
* As I'm running Vista I have to use an elevated command prompt as directories under Program Files are protected.
For a quick way to launch an elevated command prompt, simply press the Win key; type cmd; press Ctrl+Shift+Enter; and then hit Alt+C to confirm the elevation prompt. Six keystrokes to an elevated command prompt! ([via][4])
Startup Script
One of the scripts I store in my Command Line Scripts directory is a script that is run when I log in to windows (via the Task Scheduler, type Task in the Vista start menu). I use that script to set up several virtual drives using the subst command to directories I access frequently or want a quick way to access on the command prompt or for shortening path names in compiler warnings, logs or debug output.
My Startup script looks something like this:
#setlocal
#set _MYDOCS_=%USERPROFILE%\Documents
#REM Note: first delete the drives so I can run script again
#REM to fix drives that failed to get mapped
subst /d W:
subst /d T:
subst /d S:
subst /d R:
subst /d N:
subst /d L:
subst /d H:
subst W: "%_MYDOCS_%\Work\SVN Working Copy\Website\trunk\www"
subst T: "%_MYDOCS_%\Work\SVN Working Copy\project 1\trunk"
subst S: "%_MYDOCS_%\Work\SVN Working Copy"
subst R: "%_MYDOCS_%\Work\SVN Working Copy\project 2\branches\12.50"
subst N: "%_MYDOCS_%\Work\SVN Working Copy\project 2\trunk"
subst L: "%_MYDOCS_%\Work\"
subst H: "%_MYDOCS_%\My Projects\Haslers.info\Working Copy"
Note that subst can be a little temperamental and occasionally the drives don't get created and I have to run the startup script again manually.
I'm surprised nobody has mentioned ClipX. I find that I can't develop without this clipboard history tool.
Step 1: Fix windows
Turn off System Restore
Turn off Windows Defender
Uninstall any OEM-supplied antivirus or other crapware if it's an OEM box
Get SysInternals AutoRuns and lay the smackdown to all the 8000 useless startup items and services vista inflicts upon you, including the slow and useless vista search indexing service.
Step 2: Install stuff.
Now that my shiny new Core 2 Duo PC isn't bogged down with useless crap running like a 386, I can build it up again
Install Firefox
Install FlashPlayer firefox plugin (why oh why isn't this bundled with FF?)
Run windows update and let it do it's download/reboot cycle 50 times until it's happy
While this is happening I can use firefox to browse stackoverflow and read reddit :-)
Get UnixUtils and either unzip them to system32, or otherwise make sure they are in the path.
This is neccessary because I can't stand cygwin, yet my muscle memory keeps typing ls when I try to type dir, and windows still hasn't heard of grep yet
Install Droid Sans Mono and Monaco fonts for programming
Install E-TextEditor
If I'm installing visual studio, do that. If not install the .NET framework runtime instead
Install Firefox addons (firebug, fission, web developer, adblock)
I add Wordpad to the Send To context menu. Instructions for XP here. Works in Vista, as well.
Someone gave me a 'Delete all SVN folders' registry script - that is a must have for me, now (it's somewhere on this thread).
I leave UAC on - last thing I want is to write code that works with UAC off, but fails miserably with it on. Before I started to use Virtual PC to set up test environments for my code, I tried to leave my desktop as 'vanilla' as possible - I wanted to test under conditions reasonably similar to an everyday non-developer user.
All of the above is for my home development system. I try to do the same at work, within reason. Except for the SVN stuff, because we use TFS at my office.
I always install the following to make it easier to manage and interact with windows
Taskix - Reorder buttons in your Windows taskbar
KatMouse - scroll the window directly beneath the mouse cursor
WinSplit Revolution - organize your windows by tiling, resizing and positioning them
allSnap - windows automatically snap to window edges and (optionally) the edges of other windows
I like to:
Make the taskbar larger so that it can hold two rows of applications
Disable personalized menus in the start menu
Disable grouping of similar taskbar items
I also randomly open a lot of PuTTY sessions to various machines, so I like to create a "bin" directory in my home folder, add it to the PATH, and then create a shortcut to PuTTY in it named "p" (among other shortcuts). I can then easily Windows-R (run) and type p [putty-session-name] to open the session. This has saved me tons of time / mouse clicks.
I follow the extensive recipe for making a Windows system useful built and maintained by Simon Peyton Jones.
Turn off Autorun so that I'm not accidentally installing malware or crapware.
Here's a couple of links, out of many:
http://antivirus.about.com/od/securitytips/ht/autorun.htm
http://news.cnet.com/8301-13554_3-9894970-33.html?tag=mncol;txt
Couple of things no-one else mentioned
Install Console2 for tabbed cmd windows
Install Powershell
Completely replace Notepad with Notepad2
Install the full IIS.
Set the resolution high enough.
Set the background to Grey.
Show hidden and system files.
Toolbar 2 or 3 high (I run one monitor sideways).
Always show file extentions.
I install some set of *nix command utilities and process explorer at a bare minimum.
Also, on XP systems I disable any theming and use the windows classic coloration. Vista just doesn't look or work right without the Aero theme so I can't do that on Vista without going almost completely nuts.
Also forgot, I install Chrome. (Used to be Firefox but Chrome is nicer out of the box)
I use nLite to prepare the windows installation disk in order to have some typical settings already set right after the installation.
For example:
Explorer-Associate additional file types with Notepad
Explorer-Classic Control Panel
Explorer-Disable Beep on errors
Explorer-Disable Prefix: Shortcut to
Explorer-Show extensions of known file-types
Explorer-Show hidden files and folders
Explorer-Show the full path in the Title Bar
Performance-Disable Info Tips on Files and Folders
Performance-Disable Last accessed Timestamp on files
Taskbar-Disable Group similar Taskbar buttons
Taskbar-Disable Language-Bar
Taskbar-Lock the Taskbar-Yes
You can also remove useless parts of the system:
Accessibility Options
Briefcase
ClipBook Viewer
I install all of the shell extensions I normally use (TortoiseSVN and CommandHere for example).
Also, one of the first things I do after I reimage a machine is make sure it's hooked to all of my network shares properly. Few things derail my work as quickly as having to fight with the network to get a file at an inopportune time.
Install emacs + a selection of gnuwin32 packages.
Also proexp to replace task manager.
Edi Weitz has a nice writeup of his customizations: Making Windows usable for old Linux farts
Switch to classic menu
Increase the taskbar hight to have more shortcuts & lock the taskbar
Performance options -> Adjust for best performance
Copy all the backed up shortcuts files to Favorites folder
Install necessary software (JDK, DBMS stuff, Editplus, MS Office etc.)
Driver for soundcard
New network connection for Broadband ...
I generally leave Windows Defender online but I don't use an antivirus so....
I set my start menu to display small icons and to have no "most recently used programs" active. Instead I pin everything to my start menu:
My start menu http://www.robpaveza.net/pub/startmenu.png
I also make sure that all the extension menus are actual menus, not just links, and that my computer and user files icons are shown on the desktop.
I download and install Cygwin and Xming.
Wow, this is a really good thread... I'm going to have to go through all the suggestions and see what I'm mission out on :)
Off the bat, I install:
Google Chrome
Visual Studio 2008
aShampoo CD Burning suite (or whatever my current favorite burning suite is)
IZArc (or whatever my current favorite is)
RocketDock - I use it to replace Quick Launch.
Songbird
When I used XP (I'm on Vista now) I'd always install Tweak UI and tweak everything to my liking. Like listing My Computer before My Documents.
I remove the Help icon from the start menu.
I make it so Network Neighborhood was displayed in the start menu.
I have it show file extensions and show hidden files/folders.

Resources