/// <summary>
        ///
        /// </summary>
        private Dictionary <Keys, Action> BindKeys()
        {
            return(new Dictionary <Keys, Action>
            {
                // カーソル移動系
                [Keys.Up] = () => _presenter.Up(),
                [Keys.Down] = () => _presenter.Down(),
                [Keys.Left] = () => _presenter.Left(),
                [Keys.Right] = () => _presenter.Right(),
                [Keys.Home] = () => _presenter.MoveLineTop(),
                [Keys.Home | Keys.Control] = () => _presenter.MoveTop(),
                [Keys.End] = () => _presenter.MoveLineEnd(),
                [Keys.End | Keys.Control] = () => _presenter.MoveEnd(),
                [Keys.PageUp] = () => _presenter.PageUp(),
                [Keys.PageDown] = () => _presenter.PageDown(),
                [Keys.Right | Keys.Control] = () => _presenter.MoveNextWord(),
                [Keys.Left | Keys.Control] = () => _presenter.MovePrevWord(),

                // カーソル移動系(選択)
                [Keys.Up | Keys.Shift] = () => _presenter.UpSelect(),
                [Keys.Down | Keys.Shift] = () => _presenter.DownSelect(),
                [Keys.Left | Keys.Shift] = () => _presenter.LeftSelect(),
                [Keys.Right | Keys.Shift] = () => _presenter.RightSelect(),
                [Keys.Home | Keys.Shift] = () => _presenter.MoveLineTopSelect(),
                [Keys.Home | Keys.Control | Keys.Shift] = () => _presenter.MoveTopSelect(),
                [Keys.End | Keys.Shift] = () => _presenter.MoveLineEndSelect(),
                [Keys.End | Keys.Control | Keys.Shift] = () => _presenter.MoveEndSelect(),
                [Keys.PageUp | Keys.Shift] = () => _presenter.PageUpSelect(),
                [Keys.PageDown | Keys.Shift] = () => _presenter.PageDownSelect(),
                [Keys.Right | Keys.Control | Keys.Shift] = () => _presenter.MoveNextWordSelect(),
                [Keys.Left | Keys.Control | Keys.Shift] = () => _presenter.MovePrevWordSelect(),

                // 編集系
                [Keys.Z | Keys.Control] = () => _presenter.Undo(),
                [Keys.Y | Keys.Control] = () => _presenter.Redo(),
                [Keys.C | Keys.Control] = () => Copy(),
                [Keys.V | Keys.Control] = () => Paste(),
                [Keys.X | Keys.Control] = () => Cut(),
                [Keys.Enter] = () => _presenter.NewLine(),
                [Keys.Delete] = () => _presenter.Delete(),
                [Keys.Back] = () => _presenter.DeleteBack(),
                [Keys.Tab] = () => _presenter.Indent(),
                [Keys.Tab | Keys.Shift] = () => _presenter.Unindent(),

                // 選択系
                [Keys.A | Keys.Control] = () => _presenter.SelectAll(),
                [Keys.Escape] = () => _presenter.ClearSelect(),

                // スクロール系
                [Keys.Up | Keys.Control] = () => _presenter.ScrollUp(),
                [Keys.Down | Keys.Control] = () => _presenter.ScrollDown(),
                [Keys.ProcessKey] = () => _presenter.ScrollCaret(), // IME入力中
            });
        }