---
title: "imenu§outline§heading 헤딩 레벨 키바인딩의 핵심 - Alt 통일"
url: "https://notes.junghanacs.com/notes/20250227T195539"
author: "Junghan Kim"
date: "2025-02-27T19:55:00+09:00"
lastmod: "2025-02-27T19:55:00+09:00"
tags: ["emacs","keybindings","outline"]
description: "헤딩 이동과 레벨 조작 키를 Alt 계열로 통일하려는 키바인딩 정리 노트이다."
---

> [!abstract] 이 노트에 대하여
> 
> outli-mode와 outline 이동 키를 Alt 계열로 통일해 손가락 부담을 줄이려는 실제 설정을 담는다. imenu와 heading 이동 감각을 하나의 리듬으로 맞추는 노트다.

## BIBLIOGRAPHY

## 히스토리

-   [2025-02-27 Thu 19:55] 손가락 박살 나기 전에 통일하라

## 키바인딩 설정 방법 - 메타로 통일한다

-   [#둠이맥스: #이맥스리스프 #키바인딩 #설정](https://notes.junghanacs.com/notes/20240704T170413)
-   [새끼손가락 보호 - 키보드 레이아웃 - 한영키 컨트롤](https://notes.junghanacs.com/notes/20250119T000448)



```elisp
;;;; outli-mode-map

;; (evil-define-key '(normal visual) outli-mode-map (kbd "M-n") 'outline-next-heading)
;; (evil-define-key '(normal visual) outli-mode-map (kbd "M-p") 'outline-previous-heading)
(map! :map outli-mode-map
      :nv "M-j" #'outline-forward-same-level
      :nv "M-k" #'outline-backward-same-level
      :nv "M-n" #'outline-next-heading
      :nv "M-p" #'outline-previous-heading
      :nv "C-S-p" #'outline-up-heading
      ;; default-indent-new-lie
      )

;;;; org-mode-map

(map! :map evil-org-mode-map
      :n "x" 'delete-forward-char
      :n "X" 'delete-backward-char
      ;; :niv "M-j" #'org-meta-down ; M-<up>
      ;; :niv "M-k" #'org-meta-up ; M-<down>

      :nv "M-j" #'org-forward-heading-same-level
      :nv "M-k" #'org-backward-heading-same-level

      :nv "M-n" #'org-next-visible-heading
      :nv "M-p" #'org-previous-visible-heading

      ;; :ni [C-return]   #'org-insert-heading-respect-content
      ;; :ni [C-S-return] #'org-insert-todo-heading-respect-content
      :ni "C-c C-RET"      #'my/org-open-at-point-other-window
      :ni "C-c C-<return>" #'my/org-open-at-point-other-window)

;;;; markdown-mode-map

;; (evil-define-key '(normal visual) evil-markdown-mode-map (kbd "M-j") 'markdown-outline-next-same-level)
;; (evil-define-key '(normal visual) evil-markdown-mode-map (kbd "M-k") 'markdown-outline-previous-same-level)
;; (evil-define-key '(normal visual) markdown-mode-map (kbd "M-n") 'markdown-outline-next) ;; markdown-mode-down
;; (evil-define-key '(normal visual) markdown-mode-map (kbd "M-p") 'markdown-outline-previous)
(map! :map evil-markdown-mode-map
      :nv "M-j" #'markdown-outline-next-same-level
      :nv "M-k" #'markdown-outline-previous-same-level
      :nv "M-n" #'markdown-outline-next
      :nv "M-p" #'markdown-outline-previous)

;;;; imenu-list-mode-map

(after! imenu-list
  (map! :map imenu-list-major-mode-map
        :n "f"      #'hs-toggle-hiding
        :n "g"      #'imenu-list-refresh
        :n "r"      #'imenu-list-refresh
        :n "d"      #'imenu-list-display-dwim
        :n "RET"    #'imenu-list-ret-dwim
        :n "u"      #'imenu-list-up-level
        :n "z u"    #'imenu-list-up-level  ; outline-up-heading
        :n "^"      #'imenu-list-up-level  ; dired style
        :n "C-S-p"  #'imenu-list-up-level  ; sync org-mode markdown-mode
        :n "M-j"    #'imenu-list-next-entry-same-level
        :n "M-k"    #'imenu-list-previous-entry-same-level
        :n "M-n"    #'evil-next-line
        :n "M-p"    #'evil-previous-line
        )
  )
```
