File doc/emacscommandline.txt changed (mode: 100644) (index 63b2904..b5dd74c) |
1 |
|
*emacscommandline.txt* Emacs-style (and bash-style) mappings for command-line |
|
2 |
|
mode |
|
|
1 |
|
*emacscommandline.txt* Emacs- (or Bash-) style mappings for command-line mode |
3 |
2 |
|
|
4 |
|
Author: Houtsnip <nstraigohttreedsitcph-githuab@yahmoo.co.uk> |
|
|
3 |
|
Author: Houtsnip <NstraigOhttreedSitcPh-githuAb@yahMoo.co.uk> |
5 |
4 |
*emacscommandline-author* |
*emacscommandline-author* |
6 |
5 |
License: Same terms as Vim itself (see |license|) |
License: Same terms as Vim itself (see |license|) |
7 |
6 |
|
|
8 |
7 |
INTRODUCTION *emacscommandline* |
INTRODUCTION *emacscommandline* |
9 |
8 |
|
|
10 |
|
This plugin makes the command-line mode behave more like the bash command |
|
11 |
|
line, by adding Emacs-style mappings (like in the Bash shell). |
|
|
9 |
|
This plugin makes the command-line mode behave more like the Unix command |
|
10 |
|
line, by adding Emacs-style mappings (like in the Bash shell). Some of the |
|
11 |
|
mappings just map existing vim commands, but the rest implement functionality |
|
12 |
|
that is not available natively. |
12 |
13 |
|
|
13 |
14 |
MOVEMENT *emacscommandline-movement* |
MOVEMENT *emacscommandline-movement* |
14 |
15 |
|
|
15 |
16 |
*CTRl-A* move cursor to beginning of line |
*CTRl-A* move cursor to beginning of line |
16 |
|
*CTRl-E* move cursor to end of line |
|
|
17 |
|
*CTRl-E* move cursor to end of line (i.e the native vim behaviour: |
|
18 |
|
see |c_CTRL-E|). Not actually a re-mapping, but noted here |
|
19 |
|
anyway for completeness. |
17 |
20 |
*CTRl-B* move cursor one character backwards |
*CTRl-B* move cursor one character backwards |
18 |
|
*CTRl-F* move cursor one character forwards |
|
|
21 |
|
*CTRl-F* move cursor one character forwards (overwrites |c_CTRL-F|) |
19 |
22 |
*META-B* move cursor one word backwards |
*META-B* move cursor one word backwards |
20 |
23 |
*META-F* move cursor one word forwards |
*META-F* move cursor one word forwards |
21 |
24 |
|
|
|
... |
... |
DELETION *emacscommandline-deletion* |
23 |
26 |
|
|
24 |
27 |
*CTRl-D* delete character under cursor |
*CTRl-D* delete character under cursor |
25 |
28 |
*CTRl-K* kill line (delete from character under cursor to end of line) |
*CTRl-K* kill line (delete from character under cursor to end of line) |
|
29 |
|
(overwrites insert digraph: see |c_CTRL-K|. This is a shame, |
|
30 |
|
but personally I don't use this much in command-line mode.) |
26 |
31 |
*CTRl-U* backwards kill line (delete backwards to beginning of line) |
*CTRl-U* backwards kill line (delete backwards to beginning of line) |
|
32 |
|
(i.e. the same behaviour as in Bash: unix-line-discard) |
27 |
33 |
*META-D* delete word under cursor |
*META-D* delete word under cursor |
28 |
34 |
*META-Backspace* delete word backwards |
*META-Backspace* delete word backwards |
29 |
|
*CTRL-W* delete backwards to next white-space character |
|
|
35 |
|
*CTRL-W* delete backwards to previous white-space character |
|
36 |
|
(i.e. the same behaviour as in Bash: unix-word-rubout) |
30 |
37 |
|
|
31 |
38 |
HISTORY *emacscommandline-history* |
HISTORY *emacscommandline-history* |
32 |
39 |
|
|
33 |
|
*CTRl-P* previous line in history |
|
34 |
|
*CTRl-N* next line in history |
|
35 |
|
*META-CTRl-R* search history backwards |
|
|
40 |
|
*CTRl-P* previous line in history (same as <Up>) |
|
41 |
|
*CTRl-N* next line in history (same as <Down>) |
|
42 |
|
*META-R* search history backwards |
|
43 |
|
(It would be nice to use the mapping CTRL-R, but this is |
|
44 |
|
already used for insert register: see |c_CTRL-R|.) |
36 |
45 |
|
|
37 |
46 |
OTHER *emacscommandline-other* |
OTHER *emacscommandline-other* |
38 |
47 |
|
|
39 |
|
*CTRl-Y* paste (yank) last deleted text |
|
40 |
|
*CTRl-_* undo last change |
|
|
48 |
|
*CTRl-Y* paste (yank) last deleted text (overwrites |c_CTRL-Y|). |
|
49 |
|
Note that in Emacs, 'yank' means 'paste', whereas in vim it |
|
50 |
|
means 'copy'. The same text is also available in the |
|
51 |
|
registry 'c'. |
|
52 |
|
*CTRl-_* undo last change (overwrites |c_CTRL-_|) |
41 |
53 |
*CTRl-X_CTRL-U* " " " |
*CTRl-X_CTRL-U* " " " |
42 |
|
*CTRl-Z* toggle command-line as external command |
|
|
54 |
|
*CTRl-Z* toggle command-line as external command (overwrites suspend |
|
55 |
|
vim in the terminal) |
43 |
56 |
|
|
|
57 |
|
OLD KEYS *emacscommandline-old-keys* |
|
58 |
|
|
|
59 |
|
The old functions are all mapped to the same combination prefixed by CTRL-O. |
|
60 |
|
So for example, to open the command-line window (see |c_CTRL-F|), press |
|
61 |
|
instead CTRL-O_CTRL-F. |
44 |
62 |
|
|
45 |
63 |
*WARNING* |
*WARNING* |
46 |
64 |
|
|
File plugin/emacscommandline.vim changed (mode: 100644) (index 8464734..4b5aec9) |
1 |
1 |
" Make more like emacs |
" Make more like emacs |
2 |
2 |
cnoremap <C-A> <Home> |
cnoremap <C-A> <Home> |
3 |
|
cnoremap <C-E> <End> |
|
4 |
3 |
cnoremap <C-B> <Left> |
cnoremap <C-B> <Left> |
5 |
4 |
cnoremap <C-F> <Right> |
cnoremap <C-F> <Right> |
6 |
5 |
cnoremap <C-P> <Up> |
cnoremap <C-P> <Up> |
7 |
6 |
cnoremap <C-N> <Down> |
cnoremap <C-N> <Down> |
8 |
|
cnoremap <Esc><C-R> <C-F>? |
|
9 |
|
cmap <M-C-R> <Esc><C-R> |
|
|
7 |
|
cnoremap <Esc>r <C-F>? |
|
8 |
|
cmap <M-R> <Esc>r |
10 |
9 |
|
|
11 |
10 |
" Maps to old shortcuts using Ctrl-O as a prefix |
" Maps to old shortcuts using Ctrl-O as a prefix |
12 |
11 |
cnoremap <C-O><C-A> <C-A> |
cnoremap <C-O><C-A> <C-A> |
|
... |
... |
let s:oldcmdline = [ ] |
210 |
209 |
function! <SID>saveUndoHistory(cmdline, cmdpos) |
function! <SID>saveUndoHistory(cmdline, cmdpos) |
211 |
210 |
if len(s:oldcmdline) == 0 || a:cmdline != s:oldcmdline[0][0] |
if len(s:oldcmdline) == 0 || a:cmdline != s:oldcmdline[0][0] |
212 |
211 |
call insert(s:oldcmdline, [ a:cmdline, a:cmdpos ], 0) |
call insert(s:oldcmdline, [ a:cmdline, a:cmdpos ], 0) |
|
212 |
|
else |
|
213 |
|
let s:oldcmdline[0][1] = a:cmdpos |
213 |
214 |
endif |
endif |
214 |
215 |
if len(s:oldcmdline) > 100 |
if len(s:oldcmdline) > 100 |
215 |
216 |
call remove(s:oldcmdline, 100) |
call remove(s:oldcmdline, 100) |