디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[정보글] 이맥스 개종 가이드 - 3

커헠갤로그로 이동합니다. 2017.06.25 20:14:45
조회 2715 추천 6 댓글 3
														

viewimage.php?id=3dafdf21f7d335ab67b1d1&no=29bcc427b28b77a16fb3dab004c86b6fdc843afe757eec57bd7102ec3efadaa9e434adee09548247f638ccde35296147d4c28624d80424516517ddc338




viewimage.php?id=3dafdf21f7d335ab67b1d1&no=29bcc427b28b77a16fb3dab004c86b6fdc843afe757eec57bd7102ec3efadaa9e434adee09548247f638ccde35296147d4c0de2e8b0722573917c7dd38




"이맥스는 사용자와 함께 진화하는 에디터다"

- 야이미친



<이맥스 개종 가이드>


1편

2편



저번시간까지 패키지를 매니저를 이용해서 다운로드 받는걸 했는데,


이번에는 built-in 패키지들이랑 이맥스의 창 개념, 깃허브로 받는 패키지들에 관해서 설명해보도록 하겠습니다


Emacs is awesome!


같은 리스트의 패키지들을 검색하다보면,



viewimage.php?id=3dafdf21f7d335ab67b1d1&no=29bcc427b28b77a16fb3dab004c86b6fdc843afe757eec57bd7102ec3efadaa9e434adee0954c41aa157cede362b63452ee7879eb57ad6f0c9ee1c7c9ddbb79f9a



'buil in' 이라고 돼있는걸 볼 수 있게 됩니다


이 얘기는 뭐냐하면 emacs 와 함께 배포되는 내장된 패키지라는거


이런 경우에는 M-x install 이고 뭐고 없이, 간단한 설정을 통해 사용할 수 있게 됩니다.


내장 패키지들도 깃허브 페이지가 있는 경우가 많은데


Emacs wiki 던 깃허브던 설정 방법을 찾아서 실천하면 됩니다.


windmove의 경우 저기에 나와있는 것 처럼



(when (fboundp 'windmove-default-keybindings)

       (windmove-default-keybindings))


를 init.el 파일에다가 추가해봅시다.


그러고서 M-x load-file RET init.el 을 하면 이제 windmove 를 사용할 수 있습니다.





windmove 의 경우도 제가 없이는 못 사는 패키지인데,


창 여러개를 켰을 때 shift + 방향키로 이동할 수 있게 해주는 패키지임


이맥스의 경우 메세지 창이 갑자기 뜨는 경우가 많은데 그냥 shift-방향키로 메세지 창을 선택하고 C-x 0 로 끄면 끝


 


Vim 을 쓰다온 사람들은 buffer 라는 개념에 익숙하겠지만,


이맥스에서 창의 개념은 보통 window랑 buffer 가 있습니다.


이맥스의 모든 텍스트들은 buffer 위에 올라가게 돼있고,


경고 메세지, 소스 파일 등등 전부 buffer 에 올라가게 됩니다.


M-x 할 때 명령을 입력하는 것도 사실은 mini-buffer 라고 부름


창은 이 버퍼를 보여주는 부분을 말하는건데,


1편에서 소개했던 것처럼 C-x 2, C-x 3 를 이용하면 창 분할을 할 수 있고 곧 한번에 여러개의 버퍼를 띄울 수가 있습니다.


emacs에 대한 이미지 검색결과




이런 식으로


C-x 0 를 하면 창이 닫히게 되는데,


창이 닫히기만 하는거지 buffer가 닫히는게 아니기 때문에 작성하던 내용은 사라지지 않고 남아있게 됨


C-x s 를 하게 되면 C-x C-s 는 현재 버퍼만 저장해주는 반면에 모든 버퍼의 내용들을 저장할 수 있음


버퍼를 닫기 위해서는 M-x kill-buffer 를 한 다음에 버퍼 목록에서 죽여야 됨


다른 에디터들이 보통 Tab 기능이 있다면 이맥스는 Tab 기능이 따로 없는데,


저의 경우 Tab 기능 대신에 그냥 버퍼 전환을 쓰고 있음



C-x b 를 하게 되면 버퍼의 목록이 아래와 같이 뜨고,



viewimage.php?id=3dafdf21f7d335ab67b1d1&no=29bcc427b28b77a16fb3dab004c86b6fdc843afe757eec57bd7102ec3efadaa9e434adee09548146f638cad4322e6440e87a16212efa9578a76a60d5a9


여기서 마우스로 원하는 버퍼를 클릭하거나


이름을 입력한 다음에 RET을 하거나,


방향키로 이동해서 선택을 하면 됨





자 그리고 저번 편에서 ivy-smex는 패키지 매니저에 안 올라가있다고 했는데,


지금도 그런지는 모르겠지만 일단 그걸 기준으로 얘기를 하겠음


예전까지는 패키지 매니저에 안 올라가있는 패키지가 많아서 깃허브로 클론해서 썼었음


깃허브에 있는 패키지를 .emacs.d 폴더에 어딘가로 클론 하고 (나는 github 라는 폴더를 만들어서 그 안으로 클론 함)


(add-to-list 'load-path "~/.emacs.d/path/ivy-smex")


를 init.el 에 추가 하면 됩니다.


add-to-list 함수는 이맥스에서 어떤 리스트가 있을 때 그 리스트에 append를 하는 함수인데,


load-path 는 처음에 이맥스를 실행할 때 파일들을 인터프리터에 올리는 경로의 리스트임


처음 이맥스를 키면 이맥스는 이 경로에 있는 파일들을 무조건 로딩하게 됨



아 그리고 참고로 Lisp 계열 언어들은 빠른 실행을 위해 Byte Compile 이라는걸 할 수 있는데,


이맥스도 패키지 매니저로 다운로드를 받을 때 패키지 파일들을 다 컴파일함


.elc  파일들이 바이트 컴파일된 파일들이고,


이맥스가 로딩할 때 바이트 컴파일된 파일을 우선적으로 로딩을 합니다


init.el 파일은 바이트 컴파일을 해도 로딩을 안 하던가? 기억이 가물가물..


하여튼 그렇고,




또 이렇게 init.el 파일들이 하나 둘씩 쌓이다 보면 관리를 하기가 힘들어짐


그래서 스크립트를 분할하는게 좋은데


init.el 파일에다가 이렇게 입력하면 분할을 할 수 있음



viewimage.php?id=3dafdf21f7d335ab67b1d1&no=29bcc427b28b77a16fb3dab004c86b6fdc843afe757eec57bd7102ec3efadaa9e434adee09548146f638cad4322e6440e82a16737af8997cf76a60d5a9


간단하죠?


저 haskell-mode.el 이런 파일들은 그냥 스크립트를 그대로 분할해서 복붙한거고,


이름은 내 마음대로 지은거임





다음 편에 계속

추천 비추천

6

고정닉 3

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 현역으로 군대 안 간게 의아한 스타는? 운영자 25/06/30 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45142 65
2869529 비전공자, ㅈ문대, 복학생, 웹개발자 [1] 프갤러(93.152) 01:36 3 0
2869528 읽어도 읽어도 저 많은 천재들과 싸울 자신이 없다. ㅆㅇㅆ(124.216) 01:30 3 0
2869527 프로그래밍 근데 할수록 자신감이 안 생긴다 ㅆㅇㅆ(124.216) 01:27 8 0
2869525 면접볼때마다 [3] 무관갤로그로 이동합니다. 01:07 22 0
2869524 CPP 코드 90%는 C++11 안전 기준 미달 맞음(논문있음) [1] ㅆㅇㅆ(124.216) 01:05 19 0
2869523 도로상태 훌륭 넥도리아(223.38) 01:04 8 0
2869522 동네 도로 환경 순찰 중 어머니폰으로 넥도리아(223.38) 01:01 10 0
2869521 2달 존버하고 받은 금액이 고작 ㅇㅇ(118.235) 00:57 26 0
2869520 내 방 온도 29.3도 발명도둑잡기(118.216) 00:57 9 0
2869519 7월 4일 4시 7월 5일 4시 한국 넥도리아(223.38) 00:55 13 0
2869518 치아교정 때문에 군것질이 약간 줄었다 발명도둑잡기(118.216) 00:55 9 0
2869517 아니, 비야네가 정의한 레거시 코드 기준이랑 다 떠먹여줘도 ㅆㅇㅆ(124.216) 00:50 10 0
2869516 진보적인 외국 정부 부정선거 여론 언론공작은 CIA의 주특기다 발명도둑잡기(118.216) 00:47 12 0
2869515 그냥 차트맨아 내 글을 LLM 아무데나 복사붙여넣기하고 ㅆㅇㅆ(124.216) 00:42 15 0
2869514 가만 보니까 legacy라는 말을 병적으로 해석하는구만 [9] ㅇㅇ갤로그로 이동합니다. 00:40 44 0
2869513 나도 따당이처럼 잘하고 싶노 ㅆㅇㅆ(124.216) 00:39 10 0
2869512 [최우리의 비도 오고 그래서] 기후위기와 범죄의 상관관계 발명도둑잡기(118.216) 00:30 8 0
2869511 차트맨아 농담 아니고, 너 현역에 금융업계 종사 오래한건 알겠는데 ㅆㅇㅆ(124.216) 00:29 17 0
2869510 차트맨아 C++ 책좀 읽어라 왜곡하지말고 그냥 [10] ㅆㅇㅆ(124.216) 00:22 42 1
2869509 Ada, 러스트의 안전성 수준을 동일하게 제약할 때 루비갤로그로 이동합니다. 00:21 9 0
2869508 러스트 극성 지지자들의 '발작' 포인트 요약 루비갤로그로 이동합니다. 00:18 12 0
2869507 Ada vs. Rust: 동일 안전성 수준 코드 비교 루비갤로그로 이동합니다. 00:14 13 0
2869506 나님 흔들고 주무실게양..⭐+ ♥냥덩이♥갤로그로 이동합니다. 00:14 13 0
2869505 오픈소스 PR 날려 본 사람 있음? [1] 익명의따당이갤로그로 이동합니다. 00:13 20 0
2869504 Rust 코드 컴파일 논란: 명백한 허위 주장과 인신공격에 대한 반박 루비갤로그로 이동합니다. 00:10 13 0
2869502 러스트 설치도 못하는 저능아의 마지막 도피처. "llm 환각" 프갤러(110.8) 00:07 13 0
2869501 머리가 너무 복잡하다. 그냥 다 놓고 싶다. ㅇㅇ(223.38) 07.03 19 0
2869500 이력서 20개 찢고옴 [1] 프갤러(221.163) 07.03 23 0
2869499 의뢰인이 자기가 해본 자동 매매 프로그램중 내 것이 제일 [4] ㅆㅇㅆ(124.216) 07.03 40 0
2869498 러스트 중독 분석: 나르시시즘, 에코 챔버, 트라우마 본딩, 매몰 비용 [1] 루비갤로그로 이동합니다. 07.03 18 0
2869496 이런 사람들은 지금 나이 한 50 넘게 먹었으려나 [1] 루도그담당(58.239) 07.03 34 0
2869495 낼 술마셔야좌우징좌우지징 [1] ♥냥덩이♥갤로그로 이동합니다. 07.03 21 0
2869494 요즘 TDD 선구자 캔트백도 바이브 코딩 연구하더라 ㅆㅇㅆ(124.216) 07.03 18 0
2869493 헤일스버그의 파스칼이나 델파이에 관한 최근 생각 발명도둑잡기(118.216) 07.03 15 0
2869492 러까의 유일한 구원자 llm도 맛이 가버린 모양이군 ㅋㅋ 프갤러(110.8) 07.03 15 0
2869491 델파이, 파스칼 안쓰는 이유, 메모리 안전 발명도둑잡기(118.216) 07.03 22 0
2869490 FreePascal 아이디 보니 드는 생각 [1] 발명도둑잡기(118.216) 07.03 19 0
2869489 국산 냥덩❤+ ♥냥덩이♥갤로그로 이동합니다. 07.03 19 0
2869488 퍼프 대디 파티 참석했던 사회 저명인사 명단 [1] 발명도둑잡기(118.216) 07.03 18 0
2869487 러스트에 영혼을 팔은 자의 최후~~~ 루비갤로그로 이동합니다. 07.03 18 3
2869486 내가 몇 년 전 휴대폰 카메라로 동공 크기까지 감시할 거란 글 발명도둑잡기(118.216) 07.03 14 0
2869485 [단독] "이상민 자택서 깜짝 놀랄 거액 발견"…특검, 조사 착수 발명도둑잡기(118.216) 07.03 24 0
2869484 Rust 언어는 예수 믿어야 천국간다고 강요하는 언어입니다 [1] FreePascal갤로그로 이동합니다. 07.03 35 1
2869482 웹백엔드 vs 게임서버 닥전임? ㅇㅇ(211.176) 07.03 12 0
2869480 러빠가 무논리로 내 욕하는 이유~ 루비갤로그로 이동합니다. 07.03 13 0
2869479 땀 닦아주실분? [2] ♥냥덩이♥갤로그로 이동합니다. 07.03 27 0
2869477 동일한 안전성 기준을 볼 때 Ada가 Rust보다 쉽다는... ㅎㅎ 루비갤로그로 이동합니다. 07.03 18 0
2869476 루비와 류류 냥덩 [6] 개멍청한유라갤로그로 이동합니다. 07.03 38 0
2869475 러스트의 보로 체커(빌림 검사기) 규칙에 명백히 위배되기 때문에 루비갤로그로 이동합니다. 07.03 19 0
뉴스 ‘풋풋한 로맨스‘ 이채연X시온, 슬픈 이별로 안방극장 울렸다! 사랑∙꿈 이룰 수 있을까? 디시트렌드 07.03
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2