DigitalMars / med

Micro Emacs in D
Other
87 stars 16 forks source link

med, Micro Emacs in D

This is my version of MicroEmacs, based on the public domain version by Dave Conroy. I like it because it is small, fast, easilly customizable, and it ports readilly to whatever machine I need to use it on. It's written in the D programming language.

It currently works on Windows and Linux.

To edit myfile.d:

med myfile.d

Cheat Sheet

Command Name         Description                        Keybinding

Movement

basic_nextline       Move to next line          F5
gotobol              Move to start of line      ^A
forwchar             Move forward by characters     ^F, rightarrow
gotoeol              Move to end of line        ^E
backchar             Move backward by characters    ^B, leftarrow
forwline             Move forward by lines      ^N, downarrow
backline             Move backward by lines     ^P, uparrow
forwpage             Move forward by pages      ^V, PgDn
backpage             Move backward by pages     Esc B, PgUp
gotobob              Move to start of buffer        Esc <, ^Home
gotoeob              Move to end of buffer      Esc >, ^End
gotoline             Move to line number        ^X L
word_back            Backup by words            Esc B, ^leftarrow
word_forw            Advance by words           Esc F, ^rightarrow

Windows

window_next          Move to the next window        ^X N, F6
window_prev          Move to the previous window    ^X P
window_only          Make current window only one   ^X 1
window_split         Split current window       ^X 2
window_mvdn          Move window down           Esc N, End
window_mvup          Move window up         Esc P, Home
window_enlarge       Enlarge display window     ^X Z
window_shrink        Shrink window          Esc Z
window_reposition    Reposition window          ^X T
window_refresh       Refresh the screen         ^L
delwind              Delete a window            ^X D

Deleting

random_deblank       Delete blank lines         ^X O
random_forwdel       Forward delete         ^D, Del
random_backdel       Backward delete            ^H, 0x7F
random_undelchar     Undelete a character       AltF Del
Ddelline             Delete a line          ^J
Dundelline           Undelete a line            Esc J, AltF F2
Ddelword             Delete a word
Ddelbword            Delete a word (backwards)
Dundelword           Undelete a word            AltF ^rightarrow, AltF ^leftarrow
delfword             Delete forward word        Esc D
delbword             Delete backward word       Esc H

Cutting/Pasting

random_kill          Kill forward           ^K
random_yank          Paste from kill buffer     ^Y, ^X K, F10
region_kill          Cut region to kill buffer      Esc 9, F9
region_copy          Copy region to kill buffer     Esc 8, F8
basic_setmark        Set mark               F7, Esc .
removemark           Remove mark            ^X .
swapmark             Swap dot and mark          Esc X
word_select          Select word            Esc W

Files

filenext             Edit next file         AltF N
fileread             Get a file, read only      AltF R
filevisit            Get a file, read write     AltF V
filewrite            Write a file           AltF W
fileunmodify         Turn off buffer changed bits   AltF U
filesave             Save current file          AltF S
filename             Adjust file name           AltF F
filemodify           Write modified files       AltF M
Dinsertfile          Insert a file at dot       AltF I

Exit

ctrlg                Abort out of things        ^@, ^G
quit                 Quit               ^C, AltF Q
quickexit            low keystroke style exit
normexit             Write modified files and exit  AltF X, AltX

Macros

ctlxlp               Begin macro            ^X (
ctlxrp               End macro              ^X )
macrotoggle          Start/End macro            F12
ctlxe                Execute macro          ^X E, F11

Search

forwsearch           Search forward         ^S
                     Search forward regexp              ^S^T
                     Search forward word                ^S^W
backsearch           Search backwards           ^R
replacestring        Search and replace         Esc R
queryreplacestring   Query search and replace       Esc Q
Dsearch              Search             F4, AltF F4
Dsearchagain         Search for the same string     F2

D, C and C++

search_paren         Toggle over parentheses        ^W, F3
random_indent        Insert CR-LF, then indent
random_incindent     increase indentation level     ^X ], AltF10
random_decindent     decrease indentation level     ^X [, AltF9
random_opttab        optimize tabbing in line       Esc I
Dcppcomment          convert /* */ to //        ^X /

<b>Configuration</b>

display_norm_fg                     AltF2
display_norm_bg                     AltF1
display_mode_fg                     AltF4
display_mode_bg                     AltF3
display_mark_fg                     AltF5
display_mark_bg                     AltF6
display_eol_bg                      AltF7
main_saveconfig      Save configuration         AltC

Process

spawncli             Run CLI in a subjob        ^Z
spawn                Run a command in a subjob      ^X !
spawn_filter         Filter buffer through program  ^X #
spawn_pipe           Run program and gather output  ^X @, AltZ
Dpause               Pause the program (UNIX only)

Buffers

listbuffers          Display list of buffers        AltF B
usebuffer            Switch a window to a buffer    ^X B
buffer_next          Switch to next buffer      ^X W, AltB
killbuffer           Make a buffer go away

Other

random_setfillcol    Set fill column            ^X F
word_wrap_line       Word wrap line                     ^X A
random_showcpos      Show the cursor position       ^X =
random_twiddle       Twiddle characters         ^T
random_tab           Insert tab             ^I, Tab
random_hardtab       Set hardware tabs          AltF T
random_newline       Insert CR-LF           ^M
random_openline      Open up a blank line       ^O, AltF Ins
random_quote         Insert literal         ^Q, ^X Q
region_togglemode    Toggle column region mode      Esc T
toggleinsert         Toggle insert/overwrite mode   Ins
line_overwrite       Write char in overwrite mode
getcol               Get current column
misc_upper           Upper case word/region     Esc U
misc_lower           Lower case word/region     Esc L
capword              Initial capitalize word        Esc C
win32toggle43        Toggle hires mode          AltE
ibmpctoggle43        Toggle hires mode          AltE
Dignore              do nothing
Dadvance             Set into advance mode      Esc downarrow
Dbackup              Set into backup mode       Esc uparrow
Dinsertdate          File and date stamp        AltF D
scrollUnicode        Scroll through Unicode variations  ^X U

Glossary

Notes

Bugs