nasingfaund / pycmd Goto Github PK
View Code? Open in Web Editor NEWThis project forked from horeah/pycmd
Improved interactive experience for Windows' cmd.exe
License: GNU Lesser General Public License v3.0
This project forked from horeah/pycmd
Improved interactive experience for Windows' cmd.exe
License: GNU Lesser General Public License v3.0
1. What is PyCmd? ----------------- PyCmd is a smart command prompt extension for Windows' cmd.exe; its purpose is to emulate a few power features of UNIX shells (decent Tab-completion, persistent history, etc.) [Experimental] PyCmd now also runs on Linux, acting as a front-end for bash 2. What are some important features? ------------------------------------ a. Tab completion - when several completions are possible, list them (plain/bash- or interactive/zsh-style) - insert/remove quotes as needed - complete executables from the PATH and internal CMD.exe commands - complete names of environment variables, including pseudo-variables - complete wildcards - expand values of environment variables when completing - support both '/' and '\' as path separators b. Command history - the history is persistent across PyCmd sessions - direct history search (type a few filter characters/words, then Up/Down) - incremental history search (Ctrl-R) - history ordering is more intuitive than cmd's default strategy c. Command editing - support emacs key bindings - Copy-Paste using the keyboard (Ctrl-C/X/V or Emacs-style) - Undo/Redo with Ctrl-[Shift-]Z (regular style) or Ctrl-_ (Emacs-style) - dynamic, context-sensitive token expansion with Alt-/ (Emacs-style) - search string ([Shift-]F3) - smart word-by-word navigation - lexical selection (Shift-Up/Down) d. Navigation - history of recently visited directories (Alt-Left/Right/D on empty line) - cd to parent (Alt-Up) e. Other - smart prompt: - highlighted for readability - abbreviates path to save space - displays git and svn status - displays ERRORLEVEL (if > 0) - customizable - configuration file (init.py) for customizing colors, prompt etc. - Shift-PgUp/PgDn to scroll the buffer - expand/abbreviate ~ as %HOME% or %USERPROFILE% - Ctrl-D on an empty line closes PyCmd - show the current working directory in the window title 3. Known problems ----------------- - pushd/popd are not supported - when DelayedExpansion is disabled (PyCmd.exe /V:OFF), %ERRORLEVEL% is not properly processed - DOSKEY macros are not supported - can NOT be used to fully replace cmd.exe as default shell (e.g. via %COMSPEC%) 4. Future plans --------------- - custom TAB-completion for the arguments of common commands - clean-up the mechanism that dispatches commands to cmd.exe (currently kind of hacky) 5. How do I download/install/run it? ------------------------------------ a. Download a binary distribution (created with cx_freeze, see https://pypi.org/project/cx-Freeze/) from https://github.com/horeah/PyCmd/releases Then, unpack and start PyCmd.exe. No installation is necessary. b. Clone the repository, then: (1) `python run_tests.py` to run tests (2) `python PyCmd.py` to start the application You will need: - Python 3.10+ from http://www.python.org/download/ - The pywin32 package (pip install pywin32) - The pefile package (pip install pefile) (3) `make` to to build a binary distribution You will also need: - cx_freeze (pip install cx_freeze) - MinGW from http://www.mingw.org/ 6. How do I report a crash/problem? ----------------------------------- For bugs or feature requests, please use the bug tracker provided by GitHub at https://github.com/horeah/PyCmd/issues When reporting crashes, please try to locate and attach a crash log (look in %APPDATA%\PyCmd for files named crash-yyyymmdd_hhmmss.log). 7. Credits ---------- - The fish shell is an endless source of good ideas: https://fishshell.com/ - fsm.py is a nice package for implementing a Finite State Machine: http://code.activestate.com/recipes/146262 --------------------------------------------------- Horea Haitonic (h o r e a h _at_ g m a i l . c o m)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.