내장을 사용하십시오 asm-mode
. 모든 어셈블리 언어에 대한 구문 강조를 제공합니다. gas-mode
이를 수행하지 않으며 AT & T 구문과 함께 사용할 수 없습니다.
에 들여 쓰기를 설정 asm-mode
하려면 사용할 수 tab-width
없지만 tab-stop-list
1 탭, 2 탭, 3 탭 ...이 표시 할 수있는 공백을 지정합니다.
(setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
64 68 72 76 80 84 88 92 96 100 104 108 112
116 120))
위의 예는 첫 번째 탭에 4 개의 공백이 있고 두 번째 탭 (첫 번째 탭 옆에 있음)에는 8 개의 공백이 있고 3 번째 탭 (두 번째 탭 옆에 있음)에는 12 개의 공백이 있음 등을 의미합니다.
다음과 같이 목록을 생성 할 수도 있습니다.
(setq tab-stop-list (number-sequence 2 60 2))
number-sequence
시작 번호 2
(첫 번째 인수) 부터 60
두 번째 인수 까지 의 숫자 목록을 생성합니다 . 각 숫자는 2
옆의 숫자 와 다릅니다 . newline-and-indent
RET 에 바인딩 해야하므로 Emacs가 자동으로 들여 쓰기합니다.
뛰어 다니려면 다음과 같이 Ctags를 사용하십시오.
ctags -e -R
-e
Emacs가 사용할 태그 데이터베이스를 생성하는 것을 의미합니다.
-R
프로젝트 루트에서 하위 디렉토리의 파일에 대한 태그를 재귀 적으로 생성하는 것을 의미합니다.
그 후, Helm을 사용하지 않으면 Emacs에서 helm-etags-select
다른 etags
클라이언트 나 다른 클라이언트 로 이동할 수 있습니다 .
편집 : 다음은 샘플 설정입니다.
(require 'asm-mode)
(add-hook 'asm-mode-hook (lambda ()
(setq indent-tabs-mode nil) ; use spaces to indent
(electric-indent-mode -1) ; indentation in asm-mode is annoying
(setq tab-stop-list (number-sequence 2 60 2))))
(define-key asm-mode-map (kbd "<ret>") 'newline-and-indent)
(define-key asm-mode-map (kbd "M-.") 'helm-etags-select)
다음을 company-complete
누를 때 기본 완료를 수행 할 수도 있습니다 S-TAB
.
(define-key asm-mode-map (kbd "<backtab>") 'company-complete)
당신이 사용할 수있는 <tab>
양으로 인해 트리거 완성 <tab>
과 M-i
같은 명령을 실행 tab-to-tab-stop
삽입 공백이나 탭의 사용자의 설정에 따라 달라을 indent-tabs-mode
. 좋은 점 company-mode
은 가능한 경우 미니 버퍼에서 현재 강조 표시된 후보에 대한 간략한 설명을 얻는 것입니다 . 예를 들어 다음과 같은 정의가있는 경우 :
KeyStrokes word 0
커서를 KeyStrokes
후보 로 이동 word 0
하면 미니 버퍼에 인쇄 됩니다.
asm-mode
하나 그렇지 않습니까? (어떤 기능이 누락 되었습니까?)