GNU 이맥스

GNU Emacs
GNU 이맥스
Emacs-logo.svg
GNU Emacs 26.2 screenshot.png
GNU Emacs 26.2 GNOME 3에서 실행
원본 작성자리처드 스톨먼
개발자GNU 프로젝트
초기 릴리즈1985년 3월 20일; 37년(1985-03-20)
안정적 해제
27[1].2 / 2021년 3월 25일
릴리스 미리 보기
28.0.92[2] / 2022년 3월 13일
리포지토리
기록 위치이맥스[3] 리스프, C
운영 체제Unix 유사(GNU, Linux, MacOS, BSD, Solaris), Windows, MS-DOS[4]
플랫폼크로스 플랫폼
다음에서 사용 가능영어
유형텍스트 편집기
면허증GPL-3.0-or-Later
웹사이트www.gnu.org/software/emacs/

GNU Emacs무료 소프트웨어 텍스트 편집기다.그것은 GNU 프로젝트 설립자 리처드 스톨먼에 의해 만들어졌다.다른 종류의 Emacs와 마찬가지로 GNU Emacs는 튜링 완전한 프로그래밍 언어를 사용하여 확장할 수 있다.GNU Emacs는 "오늘날 이용 가능한 가장 강력한 텍스트 편집기"로 불렸다.[5]기본 시스템의 적절한 지원을 통해 GNU Emacs는 다중 문자 집합으로 파일을 표시할 수 있으며, 적어도 1999년부터는 대부분의 인간 언어를 동시에 표시할 수 있었다.[6]역사를 통틀어 GNU Emacs는 GNU 프로젝트의 중심 구성 요소였으며, 자유 소프트웨어 운동의 대표주체였다.[7][8]GNU Emacs는 GNUMACS로 약칭되기도 하는데, 특히 다른 EMACS 변종들과 차별화하기 위해서 더욱 그러하다.[9]GNU Emacs의 태그 라인은 "확장 가능한 자체 문서 텍스트 편집기"[10]이다.

역사

GNU 프로젝트 설립자 겸 GNU Emacs의 저자 리처드 스톨먼

1976년에 스톨만은 최초의 Emacs ("Editor MACroS")를 썼고, 1984년에 GNU Emacs에 대한 작업을 시작했으며, 독점적인 Gosling Emacs에 대한 무료 소프트웨어 대체물을 생산하기 시작했다.GNU Emacs는 처음에는 Gosling Emacs에 기반을 두었지만, Stallman이 Momlisp 통역사를 진정한 Lisp 통역사로 교체한 것은 그것의 거의 모든 코드를 다시 쓸 것을 요구하였다.이것은 초기 GNU 프로젝트에 의해 발표된 첫 번째 프로그램이 되었다.GNU Emacs는 C로 작성되며 Emacs Lisp도 C로 구현되어 확장 언어로 제공한다.최초의 공개 버전인 버전 13은 1985년 3월 20일에 만들어졌다.GNU Emacs의 첫 번째 널리 배포된 버전은 1985년 후반에 출시된 버전 15.34였다.GNU Emacs의 초기 버전은 "1.x.x"로 번호가 매겨졌고, 초기 숫자는 C core의 버전을 나타낸다.'1'은 주요 숫자가 절대 변하지 않을 것으로 생각되어 버전 1.12 이후 삭제되었고, 따라서 주요 버전은 '1'에서 '13'로 건너뛰었다.사용자 사이트에 의한 변경을 나타내기 위해 새로운 세 번째 버전 번호가 추가되었다.[11]현재 번호 지정 체계에서, 두 개의 구성요소를 가진 숫자는 릴리스 버전을 의미하며, 개발 버전은 세 개의 구성요소를 가지고 있다.[12]

GNU Emacs는 나중에 Unix 운영 체제에 포팅되었다.그것은 Gosling Emacs보다 더 많은 기능을 제공했고, 특히 확장 언어로 완전한 기능을 갖춘 Lisp를 제공했고, 곧 사실상의 Unix Emacs 편집자로 Gosling Emacs를 대체했다.마르쿠스 헤스는 1986년 유닉스 컴퓨터에 대한 슈퍼유저 접속을 얻은 그의 해킹으로 GNU Emacs의 이메일 서브시스템의 보안 결함을 이용했다.[13]

사용자들이 흔히 넷이맥스 뉴스그룹에 패치와 Elisp 코드를 제출했지만, GNU Emacs 개발 참여는 1999년까지 비교적 제한되었고, 성당과 바자르에서 "카메드랄" 개발 스타일의 예로 사용되었다.그 프로젝트는 이후 공공 개발 우편물 목록과 익명의 CVS 접속을 채택했다.개발은 2008년까지 하나의 CVS 트렁크에서 이루어졌으며, 오늘날에는 Git[14] DVCS를 사용한다.

리차드 스톨만은 GNU Emacs의 주요 유지자로 남아 있었지만, 때때로 그 역할에서 한 발 물러섰다.스테판 몬니에와 정이동은 2008년부터 정비를 감독해왔다.[15]2015년 9월 21일, Monnier는 Emacs 25의 기능 동결로 효과적인 유지자 자리에서 물러날 것이라고 발표했다.[16]오랜 기간 동안 기고했던 존 위글리가 2015년 11월 5일 새로운 관리자로 발표되었다.[17]

라이센싱

GNU General Public License(GPL)의 조항은 C와 Emacs Lisp 구성 요소를 모두 포함한 Emacs 소스 코드를 자유롭게 검사, 수정 및 재배포할 수 있다고 명시하고 있다.

GNU Emacs 문서의 이전 버전은 수정된 사본에 특정 텍스트를 포함하도록 요구하는 임시 라이센스에 따라 나타났다.예를 들어 GNU Emacs 사용자 매뉴얼에서는 GNU Emacs와 Richard Stallman의 에세이 The GNU Manifesto를 얻기 위한 지침이 포함되었다.포크가 발생했을 때 구형 GNU Emacs 매뉴얼에서 이어받은 XEmacs 매뉴얼도 같은 라이선스를 갖고 있다.최신 버전의 설명서는 동일한 문서를 포함해야 하며 설명서가 GNU 매뉴얼이라고 스스로 선언하는 "불변 섹션"과 함께 GNU 무료 설명서 라이센스를 사용한다.

GNU Emacs의 경우, 다른 GNU 패키지와 마찬가지로, 저작권 소유자가 적절한 거부권을 행사하거나 자유 소프트웨어 재단에 저작권 지분을 할당하는 경우에만 유의미한 코드 기여를 수용하는 정책을 유지하고 있다.버그 수정 및 10개 라인 미만의 마이너 코드 기여는 면제된다.이 정책은 FSF가 복사기 면허를 위반할 경우 법정에서 소프트웨어를 방어할 수 있도록 시행되고 있다.

2011년 GNU Emacs가 GPL의 의도된 정신과는 반대로 2년 동안 해당 소스 코드 없이 일부 바이너리를 실수로 방출하고 있다는 사실이 알려졌다.[18][19][20]리처드 스톨먼은 이 사건을 "매우 나쁜 실수"라고 설명했고,[21] 이는 즉시 해결되었다.FSF는 이러한 바이너리를 유통함으로써 자신도 모르게 GPL을 위반한 다운스트림 재분배자들을 고소하지 않았다.

GNU Emacs 사용

GNU Emacs에서 여러 디레드 버퍼 편집
GNU Emacs에서 Csource 코드 편집
GNU Emacs에서 C++ 코드 편집 및 컴파일

명령

일반 편집 모드에서 GNU Emacs는 다른 텍스트 편집기처럼 동작하며 사용자가 해당 키로 문자를 삽입하고 화살표 키로 편집 지점을 이동할 수 있도록 한다. 시퀀스를 이스케이프하거나 제어 키 및/또는 메타 키, Alt 키 또는 슈퍼 키일반 키와 함께 누르면 Emacs Lisp 환경에서 기능을 호출하는 수정된 키 입력이 생성된다.다음과 같은 명령save-buffer그리고save-buffers-kill-emacs여러 개의 수정된 키 입력을 결합하다

일부 GNU Emacs 명령은 철자 검사를 위한 ispell 또는 프로그램 컴파일을 위한 GNU 컴파일러 컬렉션(gcc)과 같은 외부 프로그램을 호출하여 프로그램의 출력을 구문 분석하여 결과를 GNU Emacs에 표시하는 방식으로 작동한다.Emacs는 또한 Emacs 버퍼와 상호 작용하는 장수 프로세스인 "inferior process"를 지원한다.이것은 구현에 사용된다.열등한 프로세스로 Unix 셸을 실행하는 모드와 다양한 프로그래밍 언어에 대한 읽기-평가-프린트 루프(REPL) 모드.Emacs의 외부 프로세스에 대한 지원은 인터리스프스몰토크 계열의 인터랙티브 프로그래밍을 위한 매력적인 환경을 만든다.[22]

IBM Common User Access 스타일 키를 선호하는 사용자는 원래 타사 추가 기능이었지만 버전 22 이후 GNU Emacs에 포함된 패키지인 cua-Mode를 사용할 수 있다.

미니부퍼

Emacs는 대부분의 GUI에서 대화 상자에서 일반적으로 수행되는 기능인 상태를 표시하고 정보를 요청하기 위해 보통 bottommost 라인인 "minibuffer"를 사용한다.미니버퍼는 검색에서 대상으로 지정할 텍스트나 읽거나 저장할 파일의 이름과 같은 정보를 보관한다.해당되는 경우 탭과 스페이스 키를 사용하여 명령줄 완료를 사용할 수 있다.

파일 관리 및 표시

Emacs는 버퍼로 알려진 데이터 구조에 텍스트를 보관한다.버퍼는 화면에 표시될 수도 있고 표시되지 않을 수도 있으며, 모든 버퍼 기능은 Emacs Lisp 프로그램과 사용자 인터페이스에 모두 액세스할 수 있다.[23]사용자는 새로운 버퍼를 만들고 원하지 않는 버퍼를 해제할 수 있으며 동시에 많은 버퍼가 존재할 수 있다.하드웨어 메모리 제한 외에 Emacs가 허용하는 버퍼 수에는 상한선이 없다.고급 사용자는 현재 작업과 관련하여 다양한 유형의 개방 버퍼 수백 개를 축적할 수 있다.[24]Emacs는 종료 시 열린 버퍼 목록을 저장하도록 구성할 수 있으며, 다시 시작할 때 이 목록을 다시 열 수 있다.[25]

일부 버퍼에는 텍스트 파일에서 로드된 텍스트가 포함되어 있으며, 사용자는 이를 편집하여 영구 저장소에 다시 저장할 수 있다.이 버퍼들은 파일들을 "방문"하고 있다고 한다.버퍼는 또한 Emacs 명령의 출력, 디리딩된 디렉토리 목록, "도움말" 라이브러리에 의해 표시되는 문서 문자열, 대화상자에 표시되는 다른 편집기의 통지 메시지와 같은 다른 데이터도 표시하는 역할을 한다.이러한 알림 중 일부는 미니버퍼에 간략하게 표시되며, GNU Emacs는 이러한 유형의 최신 알림 기록을 유지하는 *Messages* 버퍼를 제공한다.미니버퍼를 Emacs의 출력에 사용할 때, 「에코 영역」이라고 한다.[26]더 긴 알림은 자체 버퍼로 표시된다.물론 미니버퍼에 표시될 메시지의 최대 길이는 구성할 수 있다.

버퍼는 이나 REF와 같은 외부 프로세스의 입력 및 출력 영역 역할을 할 수도 있다.Emacs가 자체적으로 생성하는 버퍼는 일반적으로 사용자 버퍼와 구별하기 위해 각 끝에 별표로 명명된다.열린 버퍼 목록은 이러한 유형의 버퍼에 표시된다.

대부분의 Emacs 키 시퀀스는 어떤 버퍼에서도 작동 가능한 상태를 유지한다.예를 들어 표준 Ctrl-sisearch함수를 사용하여 dired 버퍼에서 파일 이름을 검색할 수 있으며, 파일 목록은 다른 버퍼와 마찬가지로 텍스트 파일에 저장할 수 있다. dired 버퍼는 쓰기 가능한 모드로 전환할 수 있다. 이 모드에서 파일 이름과 속성을 텍스트로 편집할 수 있다. 버퍼를 저장할 때 변경 내용이 파일 시스템에 기록된다.이를 통해 Emacs의 검색 및 대체 기능을 사용하여 여러 파일의 이름을 바꿀 수 있다.이렇게 장착된 Emacs는 이미지 파일을 버퍼로 표시한다.Emacs는 바이너리 안전하며 8비트 클린이다.[27]

Emacs는 편집 영역을 "window"라고 불리는 별도의 비 겹치지 않는 섹션으로 나눌 수 있는데, 이 기능은 1975년부터 사용되어 왔으며, 일반적으로 그래픽 사용자 인터페이스보다 앞서 있다.Emacs 용어에서, "창"은 독립적으로 업데이트되고 상호 작용할 수 있는 프로그램 디스플레이의 직사각형 부분인 다른 시스템들이 "프레임" 또는 "패널"이라고 부르는 것과 유사하다.각 Emacs 창에는 기본적으로 창의 하단 가장자리에 "모드 라인"이라는 상태 표시줄이 표시된다.이맥스 창은 텍스트 단말기와 그래픽 모드 모두에서 사용할 수 있으며, 한 번에 둘 이상의 버퍼 또는 버퍼의 여러 부분을 표시할 수 있다.일반적인 애플리케이션은 디지버거를 현재 디렉토리의 파일 내용과 함께 표시(파일 버퍼가 디지드로 강조된 파일을 따르도록 하는 특수 모드가 있음), 프로그램의 소스 코드를 한 창에 표시하는 반면, 다른 애플리케이션은 프로그램을 컴파일한 결과와 함께 버퍼를 표시하여 디버거를 실행하는 것이다.프로그램을 실행하는 셸 버퍼와 함께, 맨 페이지나 다른 문서(Emacs의 내장 웹 브라우저 중 하나를 사용하여 월드 와이드 웹을 통해 로드됨)를 표시하는 동안 코드 작업을 하거나, 단순히 C 기반 언어에 대한 구현 파일과 함께 헤더와 같은 편집을 위한 여러 파일을 한 번에 표시한다.또한, 윈도우를 연결하여 버퍼의 오버랩되지 않는 부분을 표시하는 마이너 모드인 추종 모드가 있다.팔로우 모드를 사용하면 스크롤할 때 적절하게 업데이트되는 여러 측면 창에 하나의 파일을 표시할 수 있다.또한 Emacs는 파일의 일부분만 표시하도록 버퍼의 "축소"를 지원하는데, 버퍼 네비게이션 기능의 상/하단 및 버퍼 크기 계산은 선택된 범위만 반영한다.

Emacs 창문은 타일로 장식되어 있고 그들의 동료들 위에 "위" 또는 "아래"로 나타날 수 없다.이맥스는 그래픽 환경에서 개별 으로 표시되는 여러 개의 "프레임"을 실행할 수 있다.텍스트 단자에는 전체 단자를 채우는 여러 프레임이 겹겹이 표시되며, 표준 Emacs 명령을 사용하여 전환할 수 있다.[28]

주요 모드

GNU Emacs는 다양한 종류의 텍스트를 표시하거나 편집할 수 있으며 "주요 모드"라고 불리는 추가 모드를 입력하여 동작을 조절한다.일반 텍스트 파일 편집, 많은 마크업 프로그래밍 언어의 소스 코드, 웹 페이지, 디렉토리 목록 및 기타 시스템 정보 표시 등 다양한 목적을 위한 주요 모드가 있다.각 주요 모드는 지정된 유형의 텍스트에 대해 보다 편리하게 행동하도록 편집기를 확장하는 Emacs Lisp 프로그램을 포함한다.주요 모드는 일반적으로 다음과 같은 공통 기능의 일부 또는 전부를 제공한다.

  • 구문 강조 표시("font lock"): 키워드주석과 같은 문서 요소를 구분하는 "faces"[29]라고 불리는 글꼴과 색상의 조합.
  • 파일 내에서 일관된 형식을 유지하기 위한 자동 들여쓰기.
  • 공백, 새 줄, 괄호 등 문서 구조에 필요한 요소의 자동 삽입.
  • XML과 같은 마크업 언어로 작업하는 동안 프로그래밍 파일이나 문서의 유효성을 검사하거나 닫는 태그를 삽입하는 동안 함수의 시작 또는 끝으로 건너뛰는 명령과 같은 특수 편집 명령.

마이너 모드

미니 모드(minor mode)를 사용하면 추가 맞춤화가 가능하다.GNU Emacs 편집 버퍼는 한 번에 하나의 주 모드만 사용할 수 있지만 여러 개의 보조 모드가 동시에 작동할 수 있다.이것들은 C 프로그래밍 언어의 주요 모드가 각각의 인기 있는 들여쓰기 스타일에 대해 별도의 부 모드를 정의하는 방식처럼 문서에서 직접 작동하거나 편집 환경을 변경할 수 있다.후자의 예로는 창 구성에 변경 사항을 실행 취소할 수 있는 기능과 즉석 구문 검사를 수행하는 모드가 있다.다중 프로그래밍 언어가 내장된 문서를 편집할 때 편의를 위해 다중 주요 모드를 하나의 파일에 사용할 수 있는 마이너 모드도 있다.

"Batch 모드"

GNU Emacs는 텍스트 편집기 사용자 인터페이스를 표시하지 않고 Emacs Lisp 언어의 번역기로 사용할 수 있는 기능을 지원한다.배치 모드에서는 사용자 구성이 로드되지 않으며 터미널 인터럽트 문자 C-c와 C-z는 Emacs 키 바인딩을 호출하는 대신 프로그램을 종료하거나 실행을 일시 중단하는 일반적인 효과를 갖는다.GNU Emacs에는 로드 및 실행할 파일을 지정하는 명령줄 옵션이 있으며, 그렇지 않으면 명령줄에서 Emacs Lisp 함수를 전달할 수 있다.Emacs가 시작되고 전달된 파일 또는 기능을 실행한 후 결과를 인쇄한 후 종료한다.[30]셰방 라인#!/usr/bin/emacs --scriptEmacs Lisp에서 독립 실행형 스크립트 생성 허용.[31]배치 모드는 Emacs per se 당 Emacs 모드는 아니지만 Emacs 프로그램에 대한 대체 실행 모드를 설명한다.

설명서

GNU Emacs Manual(표지 아트: Etienne Suvasa, 커버 디자인: Matt Lee)

기본 제공 문서와 별도로 GNU Emacs에는 상세한 설명서가 있다.[32]리처드 스톨먼이 작성한 GNU Emacs Manual의 전자 사본은 GNU Emacs와 함께 번들로 제공되며 내장된 정보 브라우저로 볼 수 있다.빌 루이스의 Emacs Lisp Reference Manual, Richard Stallman의 Emacs Lisp Reference Man, 그리고 Robert ChassellEmacs Lisp의 Programming과 An Introvision to Programming in Emprogramming in Eming in Eming in Eming in Emarks in Robert Chassel이 두 개의 추가 설명서에 포함되어 있다. 가지 설명서 모두 자유소프트웨어재단이 책 형태로 출판하기도 한다.XEmacs Manual은 GNU Emacs Manual과 유사하며, 이 매뉴얼에서 XEmacs 소프트웨어가 GNU Emacs에서 포킹된 것과 동시에 포킹되었다.

국제화

GNU Emacs는 많은 알파벳, 스크립트, 쓰기 시스템, 문화 규약을 지원하고 ispell과 같은 외부 프로그램에 전화하여 많은 언어에 대한 철자 검사를 제공한다.버전 24는 아랍어, 페르시아어, 히브리어와 같은 언어에 대해 양방향 텍스트와 좌우방향 쓰기 방향을 추가했다.

UTF-8을 포함한 많은 문자 인코딩 시스템이 지원된다.GNU Emacs는 GNU 23을 기준으로 인코딩에 UTF-8을 사용하는 반면, 이전 버전은 자체 인코딩을 내부적으로 사용하고 로드 및 저장 시 변환을 수행했다.XEmacs가 사용하는 내부 인코딩은 GNU Emacs의 인코딩과 유사하지만 세부적인 내용이 다르다.

GNU Emacs 사용자 인터페이스는 영어로 시작되었으며, 초보자의 자습서를 제외하고는 다른 언어로 번역되지 않았다.

Emacspeak이라는 서브시스템은 시각장애인과 시각장애인이 오디오 피드백을 통해 편집기를 제어할 수 있게 해준다.

확장성

TeXLaTeX 문서를 편집하기 위한 도구 집합인 AKRETeX가 있는 GNU Emacs

GNU Emacs의 동작은 새로운 명령, 새로운 버퍼 모드, 새로운 키맵, 명령줄 옵션 추가 [33]등을 정의하는 Emacs Lisp 프로그램을 통합하여 거의 제한 없이 수정하고 확장할 수 있다.사용자 대면 기능을 제공하는 많은 확장자는 (새로운 파일 형식의 경우 또는 텍스트 편집이 아닌 사용자 인터페이스를 구축하기 위해) 주 모드를 정의하며, 다른 확장자는 명령 또는 부 모드만 정의하거나 다른 확장자를 강화하는 기능을 제공한다.

많은 확장자가 GNU Emacs 설치와 함께 번들로 제공되며, 다른 확장자는 느슨한 파일(Usenet 뉴스그룹 gnu.emacs)로 다운로드되었다.소스는 전통적인 유통 수단이었지만, 버전 24 이후 중앙 관리 패키지 및 패키지 다운로드 사이트의 개발이 있었고, 이를 다운로드, 설치 및 최신 상태로 유지할 수 있는 패키지 관리자(확장 확장자 포함)가 내장되어 있었다.사용 가능한 패키지 목록은 Emacs 버퍼 세트에서 패키지 모드 주 모드로 표시된다.

주목할 만한 예는 다음과 같다.

퍼포먼스

Lisp 기반 코드의 로딩과 해석은 성능 오버헤드를 유발하기 때문에 GNU Emacs가 처음 구현된 시스템에서 경쟁 텍스트 편집기보다 눈에 띄게 느리게 실행되는 경우가 많았다.현대의 컴퓨터는 GNU Emacs를 속도 저하 없이 실행할 수 있을 정도로 강력하지만, 19.29 이전 버전(1995년 발매)은 8MB 이상의 파일을 편집할 수 없었다.파일 크기 제한은 연속 버전에서 상향 조정되었으며, GNU Emacs 23.2 이후 32비트 버전은 최대 512MB까지 파일을 편집할 수 있다.64비트 컴퓨터에 컴파일된 이맥스는 훨씬 더 큰 버퍼들을 처리할 수 있다.[39]

플랫폼

GNU Emacs는 가장 많이 사용되는 비독점 컴퓨터 프로그램 중 하나로 DOS, Windows[40][41][42], OpenVMS 등 다양한 운영 체제에서 실행되며 VMS 및 대부분의 상용 Unix 모델과 같은 일부 "Emacs 23.1에서 콘솔 플랫폼이 제거됨"에 대한 지원이 제공된다.[4]리눅스, 다양한 BSD, Solaris, AIX, HP-UXMacOS와 같은 대부분의 유닉스 유사 운영 체제에서 사용할 수 있으며,[43][44][45] 시스템 설치 패키지에 포함되는 경우가 많다.GNU Emacs의 토착 포트는 안드로이드[46][better source needed] 노키아 메모를 위해 존재한다.[47][better source needed]

GNU Emacs는 텍스트 단자그래픽 사용자 인터페이스(GUI) 환경에서 모두 실행된다.유닉스 유사 운영 체제에서 GNU Emacs는 X 윈도 시스템을 사용하여 아테나 위젯을 직접 사용하거나 모티브, LessTif 또는 GTK+와 같은 "위젯 툴킷"을 사용하여 GUI를 생성할 수 있다.또한 GNU Emacs는 macOS와 Windows에 기본이 되는 그래픽 시스템을 사용하여 각 플랫폼의 모양과 느낌에 보다 가깝게 적합한 메뉴, 도구 모음, 스크롤 막대 및 상황맞는 메뉴를 제공할 수 있다.

포크

XEmacs

GNU/리눅스의 XEmacs 21.5

루시드 이맥스는 GNU 이맥스 19의 초기 버전에 기초하여 1991년 제이미 자윈스키와 다른 회사들에 의해 개발되었다.무료 소프트웨어 개발에서 가장 잘 알려진 포크 중 하나는 두 Emacs 버전의 코드베이스를 분리하고 별도의 개발팀이 그것들을 다시 단일 프로그램으로 병합하려는 노력을 중단했을 때 일어났다.[48]루시디스가 파산 신청을 한 후 루시드 에맥스는 XEmacs로 개칭되어 GNU 에맥스에 이어 두 번째로 인기 있는 에맥스로 남아있다.[citation needed]XEmacs의 발전은 둔화되어 2009년 1월에 가장 최근의 안정적 버전 21.4.22가 출시되었으며, GNU Emacs는 이전의 XEmacs 전용 기능을 많이 구현했다.이것은 일부 사용자들로 하여금 XEmacs의 죽음을 선언하게 만들었다.[49]

GNU Emacs의 기타 포크

XEmacs보다 덜 알려진 다른 포크는 다음을 포함한다.

  • Meado – Microsoft Windows용[50] 일본어 버전
  • SXEmacs – Steve Youngs의 XEmacs[51] 포크
  • Aquamacs – Apple Macintosh 사용자 인터페이스와 통합하는 데 초점을 맞춘 버전
  • 리맥스 – 러스트 프로그래밍 언어의 GNU Emacs 포트.[52]

발매이력

각 Emacs 릴리스의 변경사항은 Emacs와 함께 배포된 NEWS 파일에 나열되어 있다.[53]이전 릴리스로 다운그레이드함으로써 야기된 변경사항은 "Antinews" 파일에 나열되어 있는데, 종종 이것이 왜 바람직한지에 대한 일부 가소로운 논평과 함께 나열된다.[54]

GNU Emacs 버전 이력
버전 출시일자 중대한 변화[55]
27.2 2021년 3월 25일 주로 버그픽스 릴리즈.[56]
27.1 2020년 8월 10일 임의 크기의 정수에 대한 내장 지원.HarfBuzz를 사용한 텍스트 쉐이핑.JSON 파싱에 대한 기본 지원.카이로 그림 그리기에 대한 더 나은 지원.비실비실 대신 사용한 휴대용 덤핑.초기화 파일에 대한 XDG 규칙 지원.추가 초기 초기화 파일.어휘 바인딩은 기본적으로 사용된다.탭 모음 및 탭 라인에 대한 내장 지원ImageMagick 없이 이미지의 크기 조정 및 회전 지원
26.3 2019년 8월 28일 GNU Emacs Lisp Package Archive(ELPA) 패키지 시그니처 검사를 위한 새 GPG 키.
26.2 2019년 4월 12일 Emacs 모듈은 이제 Emacs 트리 소스 외부에 구축될 수 있다.유니코드 버전 11.0 준수.
26.1 2018년 5월 28일 제한된 형태의 Lisp 스레드 동시성.버퍼의 라인 번호 선택적 표시 지원.Emacs는 이제 X 윈도우 시스템의 깜박임을 줄이기 위해 이중 버퍼링을 사용한다.플라이메이크는 완전히 새롭게 디자인되었다.TRAMP는 구글 드라이브를 위한 새로운 연결 방법을 가지고 있다.새 단일 라인 수평 스크롤 모드.systemd 사용자 단위 파일이 제공된다.지원 가능한 텍스트 단자에서 24비트 색상 지원.[57]
25.1 2016년 9월 17일 공유/동적 라이브러리(모듈) 로드 지원TLS/SSL 인증서의 유효성 검사.곡선 따옴표를 사용하기 위한 새로운 마이너 모드 '전기 인용 모드'isearch.el의 문자 폴딩 지지대.Emacs 버퍼에 네이티브 위젯을 내장할 수 있는 지원유니코드 문자를 삽입하기 위한 새롭고 향상된 기능.[58]
24.5 2015년 4월 10일 주로 버그픽스 릴리즈.[59][60]
24.4 2014년 10월 20일 Emacs Lisp 패키지의 ACL(액세스 제어 목록) 및 디지털 서명 지원.전체 화면 및 다중 모니터 지원 향상프레임 및 창 상태 저장 및 복원 지원텍스트 터미널의 향상된 메뉴 지원다른 기본 제공 웹 브라우저(M-x eww. 새로운 직사각형 표시 모드(C-x SPC) 파일 알림 지원.[61]
24.3 2013년 3월 10일 일반화 변수는 이제 Core Emacs Lisp, Common Lispulation 라이브러리의 업데이트 및 Python의 새로운 주요 모드에 있다.[62]
24.2 2012년 8월 27일 버그픽스 릴리스[63]
24.1 2012년 6월 10일 ELPA, 네이티브 컬러 테마 지원, GTK+3 옵션, 양방향 입력 지원, Emacs Lisp에서[64] 어휘 범위 지정 지원
23.4 2012년 1월 29일 보안 결함을 수정한다.[65]
23.3 2011년 3월 10일 버전 제어 시스템과 함께 Emacs를 사용하기 위한 기능 개선.
23.2 2010년 5월 8일 프로젝트 탐색 및 자동 Makefile 생성을 포함하여 Emacs를 IDE로 사용하기 위한 새로운 도구.JavaScript 소스를 편집하기 위한 새로운 주 모드.GUI에서는 사용자가 입력하는 동안 커서가 숨겨진다.
23.1 2009년 7월 29일 X에서 Xft를 통한 안티앨리어싱 글꼴 지원,[66] 더 나은 유니코드 지원, Doc-view 모드 및 PDFPostScript 파일을 보기 위한 새로운 패키지, D-Bus(dbus), GNU Privacy Guard(EasyPG), XML 문서 편집을 위한 nXML 모드, Ruby 프로그램 편집을 위한 Ruby 모드 등.Mac OS XCarbon GUI 라이브러리 사용은 보다 현대적인 코코아 GUI 라이브러리의 사용으로 대체되었다.
22.3 2008년 9월 5일 GTK+ 툴킷 지원, 향상된 마우스 지원, 새로운 키보드 매크로 시스템, 향상된 유니코드 지원, X에서의 드래그 앤 드롭 작업.GDB, Python 모드, 수학 도구 Calc 및 원격 파일 편집 시스템 Tramp("투명 원격(파일) 액세스, 다중 프로토콜")[67]에 대한 그래픽 사용자 인터페이스를 포함한 많은 새로운 모드와 패키지.
22.2 2008년 3월 26일 바자, 머큐리알, 모노톤, Git 버전 제어 시스템에 대한 새로운 지원.CSS, Vera, Verilog 및 BibTeX 스타일 파일을 편집하기 위한 새로운 주요 모드.이미지 모드에서 향상된 스크롤 지원.
22.1 2007년 6월 2일 GTK+ 그래픽 툴킷 지원, X에서 드래그 앤 드롭 지원, Mac OS X Carbon UI 지원, 조직 모드 버전 4.67d 포함[68]
21.1 2001년 10월 20일 단자에 색상 및 기타 특성 표시 지원, 내장 수평 스크롤, 사운드 지원, 휠 마우스 지원, 향상된 메뉴 막대 레이아웃, 이미지, 도구 모음 및 툴팁 지원, 유니코드 지원
20.1 1997년 9월 17일 다국어 지원
19.34 1996년 8월 22일 사용자가 변경하지[69] 않은 버그 수정 릴리스
19.31 1996년[70] 5월 25일 Emacs는 기본적으로 X11 프레임을 열고, Windows 95NT의 스크롤 막대, Windows 95의 하위 프로세스,recover-session충돌 후 여러 파일을 복구하는 방법(일부)[[doctor.el]]미국 통신 품위법[69] 준수하기 위해 삭제된 기능
19.30 1995년 11월 24일 MS Windows에서 다중 프레임 지원, 텍스트 터미널에서 메뉴 모음 사용 가능,pc-select일반적인 Windows 및 Macintosh 키 바인딩을 에뮬레이트하는 패키지.[69]
19.29 1995년[71] 6월 19일
19.28 1994년 11월 1일 첫 공식 v19 발매.X Windowing System을 사용한 다중 프레임 지원; VC, 버전 제어 시스템용 새로운 인터페이스, 글꼴 잠금 모드, 16진수 편집용 16진수 모드.
19.7 1993년 5월 22일
18.59 1992년 10월 31일
18.53 1989년 2월 23일
18.52 1988년 8월 17일 spook.el보내는 모든 메시지에 일부 "NSA 불신" 키워드(UNCPCJ Emergency management JITEM PEM bullion MSCJ Airline SLIP gott 암모늄 질산염 밀매 대사관 Emergency TELINT)를 추가하기 위한 라이브러리.[72]
18.24 1986년 10월 2일 서버 모드,[73] M-x disassemble, Emacs는 TCP 연결을 열 수 있다.emacs -nwEmacs를 콘솔 모드에서 xterms로 여십시오.
17.36 1985년 12월 20일 백업 파일 버전 번호
16.56 1985년 7월 15일 첫 번째 Emacs 16 출시.Lisp-mode와 구별되는 Emacs-lisp-mode, [74]저작권 문제로[75] 인해 Gosling Emacs에서 모든 코드를 제거
15.10 1985년 4월 11일
13.8? 1985년 3월 20일 첫 공개.그러나, VAXSIG VAX85b DECUS 테이프는 1985년 3월 31일 RCS 파일이 있는 1985년 6월 19일의 파일 날짜를 가진 버전 13.8을 가지고 있다.그것은 심하게 훼손된 사본이다.버전 13.9는 뉴스 파일에서 참조되기 때문에 13.8은 다른 13.x 릴리스가 없기 때문에 첫 번째 릴리스일 수 있다.[74]

참조

  1. ^ "Emacs 27.2 릴리스"; 작성자 이름 문자열:Eli Zarettski; 출판일: 2021년 3월 25일; 회수: 2021년 3월 25일.
  2. ^ "Emacs pretest 28.0.92 is out". 13 March 2022.
  3. ^ "GNU Emacs", Analysis Summary, Open Hub
  4. ^ a b "Emacs machines list".
  5. ^ ""Learning GNU Emacs, Third Edition": A Guide to the World's Most Extensible, Customizable Editor".
  6. ^ "Alphabet Soup: The Internationalization of Linux, Part 1 Linux Journal March 1999". With the availability of fonts and, where necessary, internationalized terminal emulators, Emacs can simultaneously handle most of the world's languages.
  7. ^ Fusco, John (2007-03-06). The Linux Programmer's Toolbox. ISBN 9780132703048.
  8. ^ Cameron, Debra; Elliott, James; Loy, Marc; Raymond, Eric; Rosenblatt, Bill (2005). Learning GNU Emacs. ISBN 9780596006488.
  9. ^ "GNUMACS".
  10. ^ "Debian - details of package Emacs in wheezy".
  11. ^ "NEWS.1-17". There is a new version numbering scheme. What used to be the first version number, which was 1, has been discarded since it does not seem that I need three levels of version number. However, a new third version number has been added to represent changes by user sites. This number will always be zero in Emacs when I distribute it; it will be incremented each time Emacs is built at another site.
  12. ^ "GNU Emacs FAQ". A version number with two components (e.g., ‘22.1’) indicates a released version; three components indicate a development version (e.g., ‘23.0.50’ is what will eventually become ‘23.1’).
  13. ^ Stoll, Clifford (1988). "Stalking the wily hacker". Communications of the ACM. 31 (5): 484–497. doi:10.1145/42411.42412. S2CID 6956966.
  14. ^ "Re: GNU EMACS". GNU. Retrieved 2014-11-16.]
  15. ^ "Re: Looking for a new Emacs maintainer or team". gnu.org Mailing List. Retrieved 2008-02-23.; 또한 "GNU Emacs, 그것의 미래, 그리고 명명법의 중요성에 대한 Stallman"을 참조하십시오.
  16. ^ "Feature freeze". lists.gnu.org.
  17. ^ "Emacs gets new maintainer as Richard Stallman signs off".
  18. ^ Brockmeier, Joe (Jul 29, 2011). "Say what? GNU Emacs violates the GPL". Network World. Retrieved 2016-01-19.
  19. ^ 면허취소: GPL의 섹션 4 적용 및 Edward J. Naughton의 웨이백 머신에서 Google의 Android Archived 2016-01-27에 대한 Best Buy의 교훈(2011년 8월 8일)
  20. ^ "Emacs Has Been Violating the GPL Since 2009 - Slashdot". developers.slashdot.org. Retrieved 2022-01-10.
  21. ^ "Re: Compiled files without sources????". lists.gnu.org. Retrieved 2022-01-10.
  22. ^ Halme, Heikki; Heinänen, Juha (1988). "GNU Emacs as a dynamically extensible programming environment". Software: Practice and Experience. 18 (10): 999–1009. doi:10.1002/spe.4380181006. S2CID 8629911.
  23. ^ Spinellis, Diomidis; Gousios, Georgios (2009-01-15). Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design. ISBN 9780596554392.
  24. ^ Heiberger, Richard M.; Holland, Burt (2015-12-23). Statistical Analysis and Data Display: An Intermediate Course with Examples in R. ISBN 9781493921225.
  25. ^ "Saving Emacs Sessions".
  26. ^ "Echo Area".
  27. ^ "A Tutorial Introduction to GNU Emacs".
  28. ^ "Frames - GNU Emacs Manual". However, it is still possible to create multiple “frames” on text terminals; such frames are displayed one at a time, filling the entire terminal screen
  29. ^ Cameron, Debra; Rosenblatt, Bill; Raymond, Eric S. (1996). Learning GNU Emacs. In a Nutshell Series (2 ed.). O'Reilly Media, Inc. p. 533. ISBN 978-1-56592-152-8. Retrieved 2010-11-02. A face is a font and colour combination.
  30. ^ "Initial Options". In batch mode, Emacs does not display the text being edited, and the standard terminal interrupt characters such as C-z and C-c have their usual effect. Emacs functions that normally print a message in the echo area will print to either the standard output stream (stdout) or the standard error stream (stderr) instead. (To be precise, functions like prin1, princ and print print to stdout, while message and error print to stderr.) Functions that normally read keyboard input from the minibuffer take their input from the terminal’s standard input stream (stdin) instead.
  31. ^ "BatchMode".
  32. ^ Stallman, Richard; et al. GNU Emacs Manual (PDF) (19 ed.). Boston, MA, USA: Free Software Foundation. Retrieved 8 January 2022.
  33. ^ "Command Line Arguments".
  34. ^ a b Stallman, Richard (2007-06-03). "Emacs 22.1 released". info-gnu-emacs (Mailing list). Retrieved 2011-07-31.
  35. ^ Feng, Chris (27 November 2017). "exwm: Emacs X Window Manager" – via GitHub.
  36. ^ Jonas Bernoulli. "It's Magit! A Git Porcelain inside Emacs". Retrieved Feb 8, 2017.
  37. ^ Petersen, Mickey. "An introduction to Magit, an Emacs mode for Git". Mastering Emacs. Retrieved Feb 8, 2017.
  38. ^ "Babel: Introduction".
  39. ^ "6.1 Does Emacs have problems with files larger than 8 megabytes?".
  40. ^ B, Ramprasad (2005-06-24). "GNU Emacs FAQ For Windows 95/98/ME/NT/XP and 2000". Retrieved 2006-09-27.
  41. ^ Borgman, Lennart (2006). "EmacsW32 Home Page". Archived from the original on 2007-03-06. Retrieved 2006-09-27.
  42. ^ "GNU Emacs on Windows". Franz Inc. 2006. Retrieved 2006-09-27.
  43. ^ "Emacs For Mac OS X". Retrieved 2022-02-09.
  44. ^ "Carbon Emacs Package". Retrieved 2012-06-10.
  45. ^ "Aquamacs is an easy-to-use, Mac-style Emacs for Mac OS X". Retrieved 2006-09-27.
  46. ^ "Emacs on Android". EmacsWiki.
  47. ^ "CategoryPorts". EmacsWiki.
  48. ^ Stephen J., Turnbull. "XEmacs vs. GNU Emacs". Retrieved 2012-10-02.
  49. ^ "XEmacs is Dead. Long Live XEmacs!".
  50. ^ "FrontPage - Meadow Wiki". Feb 16, 2012. Archived from the original on 2012-02-16.
  51. ^ "SXEmacs Website". Sxemacs.org. 2009-10-11. Retrieved 2009-11-08.
  52. ^ "Remacs". The Remacs github repository. Retrieved Feb 22, 2017.
  53. ^ "NEWS.24.5". GNU Emacs NEWS -- history of user-visible changes.
  54. ^ "Antinews". For those users who live backwards in time, here is information about downgrading to Emacs version 24.5. We hope you will enjoy the greater simplicity that results from the absence of many Emacs 25.2 features.
  55. ^ "Emacs Timeline". www.jwz.org. Retrieved 2022-01-10.
  56. ^ "Changes in Emacs 27.2".{{cite web}}: CS1 maint : url-status (링크)
  57. ^ "Emacs 26.1 released". lists.gnu.org. Retrieved 2018-05-29.
  58. ^ "Emacs 25.1 released". lists.gnu.org. Retrieved 2016-09-17.
  59. ^ "GNU Emacs NEWS -- history of user-visible changes". 2015-04-10. Retrieved 2015-04-11.
  60. ^ Petton, Nicolas (2015-04-10). "Emacs 24.5 released". Archived from the original on 2015-04-11. Retrieved 2015-04-11.
  61. ^ Morris, Glenn (2014-10-20). "Emacs 24.4 released". Retrieved 2014-10-22.
  62. ^ Morris, Glenn (2013-03-10). "Emacs 24.3 released". Retrieved 2013-03-16.
  63. ^ Yidong, Chong (2012-08-27). "Emacs release candidate 24.2". Retrieved 2012-11-11.
  64. ^ Yidong, Chong (2012-06-01). "Emacs release candidate 24.1". Retrieved 2012-06-01.
  65. ^ Yidong, Chong (2012-01-09). "Security flaw in EDE; new release plans". Retrieved 2012-02-23.
  66. ^ "emacs-fu: emacs 23 has been released!". Emacs-fu.blogspot.com. 2009-07-28. Retrieved 2009-11-08.
  67. ^ Zawodny, Jeremy (2003-12-15). "Emacs Remote Editing with Tramp". Linux Magazine. Retrieved 2010-02-01. Tramp [...] stands for "Transparent Remote (file) Access, Multiple Protocol."
  68. ^ Free Software Foundation Inc (2007). "Emacs News version 22.1". Retrieved 2013-12-29.
  69. ^ a b c "NEWS.19".
  70. ^ "Emacs Timeline".
  71. ^ "GNUs Flashes".
  72. ^ "NEWS.18".
  73. ^ "NEWS.18". Programs such as mailers that invoke "the editor" as an inferior to edit some text can now be told to use an existing Emacs process instead of creating a new editor.
  74. ^ a b "NEWS.1-17".
  75. ^ "Xemacs Internals".

추가 읽기

외부 링크