-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME.txt
More file actions
115 lines (94 loc) · 4.26 KB
/
README.txt
File metadata and controls
115 lines (94 loc) · 4.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
###########################################################################################################
# A fork of the awesome PyCmd from https://sourceforge.net/projects/pycmd/ with some personal extensions. #
###########################################################################################################
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.)
2. What are some important features?
------------------------------------
a. Tab completion
- when several completions are possible, list them instead of cycling
through them
- 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
- one can search through the history (type a few filter characters/words,
then Up/Down)
- reordering 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
- customizable
- configuration file (init.py) for customizing colors, prompt etc.
- Shift-PgUp/PgDn to scroll the buffer
- expand ~ 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
- %ERRORLEVEL% is always 0 when executing commands interactively
- 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 the binary distribution (created with cx_freeze, see
http://cx-freeze.sourceforge.net/) from
https://sourceforge.net/projects/pycmd/files/
Then, unpack and start PyCmd.exe. No installation is necessary.
b. Fetch the Python sources from the repository at
git://pycmd.git.sourceforge.net/gitroot/pycmd
then start PyCmd.py in Python or run 'make' to build the binary
distribution.
You will need:
- Python 2.7 from
http://www.python.org/download/releases/2.7/
- Python for Windows extensions from
https://sourceforge.net/projects/pywin32/
- pefile from
http://code.google.com/p/pefile/
If you want to build (make), you'll also need:
- cx_freeze from
http://cx-freeze.sourceforge.net/
- MinGW from
http://www.mingw.org/
6. How do I report a crash/problem?
-----------------------------------
For any kind of bug, please use the bug tracker provided by SourceForge at
http://sourceforge.net/tracker/?group_id=261720&atid=1127597
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:
http://fishshell.org/index.php
- 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)