#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ̂ǂ - emacsedit.nodoka
# Copyright (C) 1999-2005, TAGA Nayuta <nayuta@users.sourceforge.net>
#
# Modify by applet on Jul. 26, 2008


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Emacs ړR}h
#

keymap	EmacsMove : Global
 key Home		= C-Home		# 
 key End		= C-End			# 
 key C-Space		= &Undefined		# Mark
 key C-A		= Home			# s
 key C-B		= Left			# 
 key M-B		= C-Left		# (P)
 key C-E		= End			# s
 key C-F		= Right			# 
 key M-F		= C-Right		# (P)
 key C-G		= Escape		# CANCEL
 key C-L		= &WindowRedraw &Recenter # ĕ`
 key C-N		= Down			# 
 key C-P		= Up			# 
 key C-Q		= &Prefix(KeymapDefault) # mayu ɍEȂL[
 key C-S		= C-F			# 
 if ( !ZXCV ) key C-V	= Next			# 
 key M-V		= Prior			# O
 key S-Home		= S-C-Home		# (I)
 key S-End		= S-C-End		# (I)
 key S-M-Comma		= C-Home		# 
 key S-M-Period		= C-End			# 

 if ( EmacsMove/ShiftSelection )
   key S-C-A		= S-Home		# s(I)
   key S-C-B		= S-Left		# (I)
   key S-C-E		= S-End			# s(I)
   key S-C-F		= S-Right		# (I)
   key S-C-N		= S-Down		# (I)
   key S-C-P		= S-Up			# (I)
   key S-C-V		= S-Next		# (I)
   key S-M-V		= S-Prior		# O(I)
 endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Emacs ҏWR}h
#

 keyseq	$EmacsEdit/kill-word		= S-C-Right C-X
 keyseq	$EmacsEdit/backward-kill-word	= S-C-Left C-X
 keyseq	$EmacsEdit/transpose-chars	= S-Right C-X Left C-V Right
 keyseq	$EmacsEdit/upcase-word		= S-C-Right C-C *&Sync \
					  &ClipboardUpcaseWord C-V
 keyseq	$EmacsEdit/downcase-word	= S-C-Right C-C *&Sync \
					  &ClipboardDowncaseWord C-V
 keyseq	$EmacsEdit/kill-line		= &EmacsEditKillLineFunc S-End C-X \
			&Sync &EmacsEditKillLinePred((Delete), (Return Left))
 keyseq	$EmacsMark/cancel		= Left Right


keymap	EmacsEdit : EmacsMove
keymap2	EmacsMark : EmacsEdit = $EmacsMark/cancel &KeymapWindow
keymap2 EmacsMarkEscape : EmacsMark = &KeymapParent

keymap2	EmacsC-X : EmacsEdit
 event prefixed		= &HelpMessage("EmacsEdit C-x-", "C-x u\tundo")
 event before-key-down	= &HelpMessage
 key *U			= C-Z					# UNDO

keymap2 EmacsC-U0_9C-U : Global \
		= &Repeat((&KeymapWindow), 100) &HelpMessage &Variable(0, 0)
 key C-G	= &HelpMessage &Variable(0, 0) &Ignore
 
keymap2 EmacsC-U0_9 : EmacsC-U0_9C-U
 event prefixed		= &HelpVariable("JԂ")
 key _0 Num0		= &Variable(10, 0) &Prefix(EmacsC-U0_9)
 key _1 Num1		= &Variable(10, 1) &Prefix(EmacsC-U0_9)
 key _2 Num2		= &Variable(10, 2) &Prefix(EmacsC-U0_9)
 key _3 Num3		= &Variable(10, 3) &Prefix(EmacsC-U0_9)
 key _4 Num4		= &Variable(10, 4) &Prefix(EmacsC-U0_9)
 key _5 Num5		= &Variable(10, 5) &Prefix(EmacsC-U0_9)
 key _6 Num6		= &Variable(10, 6) &Prefix(EmacsC-U0_9)
 key _7 Num7		= &Variable(10, 7) &Prefix(EmacsC-U0_9)
 key _8 Num8		= &Variable(10, 8) &Prefix(EmacsC-U0_9)
 key _9 Num9		= &Variable(10, 9) &Prefix(EmacsC-U0_9)
 key C-U		= &Prefix(EmacsC-U0_9C-U)

keymap2 EmacsC-U : EmacsC-U0_9C-U
 event prefixed		= &HelpVariable("JԂ")
 key _0 Num0		= &Variable(0, 0) &Prefix(EmacsC-U0_9)
 key _1 Num1		= &Variable(0, 1) &Prefix(EmacsC-U0_9)
 key _2 Num2		= &Variable(0, 2) &Prefix(EmacsC-U0_9)
 key _3 Num3		= &Variable(0, 3) &Prefix(EmacsC-U0_9)
 key _4 Num4		= &Variable(0, 4) &Prefix(EmacsC-U0_9)
 key _5 Num5		= &Variable(0, 5) &Prefix(EmacsC-U0_9)
 key _6 Num6		= &Variable(0, 6) &Prefix(EmacsC-U0_9)
 key _7 Num7		= &Variable(0, 7) &Prefix(EmacsC-U0_9)
 key _8 Num8		= &Variable(0, 8) &Prefix(EmacsC-U0_9)
 key _9 Num9		= &Variable(0, 9) &Prefix(EmacsC-U0_9)
 key C-U		= &Variable(4, 0) &Prefix(EmacsC-U)

keymap	EmacsEdit
 key C-Space		= &Prefix(EmacsMark)			# Mark
 key M-BackSpace	= $EmacsEdit/backward-kill-word		# BS(P)
 key C-D		= Delete				# 폜
 key M-D		= $EmacsEdit/kill-word			# 폜(P)
 key C-H		= BackSpace				# BS
 key C-J		= Return				# RETURN
 key C-K		= $EmacsEdit/kill-line			# s܂ō폜
 key C-M		= Return				# RETURN
 key C-O		= Return Left				# s₷
 if ( !GANA ) key C-T	= $EmacsEdit/transpose-chars		# ւ
 key C-W		= C-X					# CUT
 key M-W		= C-C					# COPY
 key C-U		= &Variable(0, 4) &Prefix(EmacsC-U)
 if ( !ZXCV ) key C-X	= &Prefix(EmacsC-X)
 key C-Y		= C-V					# PASTE
 key C-Slash		= C-Z					# UNDO
 key M-U		= $EmacsEdit/upcase-word		# 啶
 key M-L		= $EmacsEdit/downcase-word		# 

keymap2	EmacsMark
 key Home		= S-C-Home	&Prefix(EmacsMark)	# 
 key End		= S-C-End	&Prefix(EmacsMark)	# 
 key C-A		= S-Home	&Prefix(EmacsMark)	# s
 key C-B		= S-Left	&Prefix(EmacsMark)	# 
 key M-B		= S-C-Left	&Prefix(EmacsMark)	# (P)
 key C-E		= S-End		&Prefix(EmacsMark)	# s
 key C-F		= S-Right	&Prefix(EmacsMark)	# 
 key M-F		= S-C-Right	&Prefix(EmacsMark)	# (P)
 key C-G		= $EmacsMark/cancel &Undefined		# LZ
 key C-N		= S-Down	&Prefix(EmacsMark)	# 
 key C-P		= S-Up		&Prefix(EmacsMark)	# 
 if ( !ZXCV ) key C-V	= S-Next	&Prefix(EmacsMark)	# 
 key M-V		= S-Prior	&Prefix(EmacsMark)	# O
 key C-W		= C-X Left Right			# CUT
 key M-W		= C-C Left Right			# COPY
 key S-M-Comma		= S-C-Home	&Prefix(EmacsMark)	# 
 key S-M-Period		= S-C-End	&Prefix(EmacsMark)	# 
 key Left		= S-Left	&Prefix(EmacsMark)	# 
 key Up			= S-Up		&Prefix(EmacsMark)	# 
 key Right		= S-Right	&Prefix(EmacsMark)	# 
 key Down		= S-Down	&Prefix(EmacsMark)	# 
 if ( MAP-ESCAPE-TO-META )
   key Escape		= &Prefix(EmacsMarkEscape) &EditNextModifier(M-)
   if ( KBD109 ) and ( ! KBD104on109 )
     key p/Sp	= &Prefix(EmacsMarkEscape) &EditNextModifier(M-)
   endif
 endif

keymap2 EmacsMarkEscape
 event prefixed		= &HelpMessage("EmacsMark ESC-", " ")
 event before-key-down	= &HelpMessage
 key M-C-G		= &Ignore
