Text 에디터
카테고리: Linux
nano 에디터
터미널에서 에디터를 사용해야 하는 이유
AWS(Amazon Web Service)와 같은 원격 서버 환경에서 원격으로 텍스트 파일을 편집해야 하는 경우가 있습니다. 원격 컴퓨터에 있는 파일은, 원격의 텍스트 에디터를 사용해서 열 수 있습니다. 따라서 현재까지도 CLI는 여전히 유용하고, 앞으로도 계속 유용할 겁니다.
nano 실행방법
그냥 파일을 열지 않고, 빈 화면을 열어 새 파일을 만들 수도 있습니다. 터미널을 열어, nano를 실행합니다.
1
2
$ nano hello.js # hello.js 를 nano에서 엽니다.
$ nano # 그냥 실행할 수도 있습니다.
파일 열기
파일을 열기 위해서는 단축키 화면에 표시된 것처럼 ^R
, 즉 Ctrl + R 키 조합을 의미합니다.
기본적으로 파일이름을 입력하도록 화면이 안내되어 있지만, 즉시 ^T
Ctrl + T를 누른 후 화살표키를 이용해 파일 및 디렉토리를 탐색한 후 불러올 수도 있습니다.
하지만, 역시 가장 쉬운 방법은 터미널에서 애초에 파일을 지정해서 여는 것입니다.
1
$ nano 파일이름
파일 편집 후 종료
파일 저장에 앞서 파일 편집 후 종료를 먼저 알려드리는 이유는, 파일에 변경사항이 존재하면, 종료 시에 저장할지를 물어보기 때문입니다.
파일 내용을 편집하고 난 후, 아래와 같이 ^X
Ctrl + X를 누르면 다음과 같은 프롬프트가 등장합니다.
1
Save modified buffer (ANSWERIG "No" WILL DESTROY CHANGES) ?
아래의 단축키 안내에 따라 키보드의 Y와 N를 눌러서 저장 여부를 결정할 수 있습니다.
파일 저장
nano를 종료하지 않고, 파일을 저장할 수도 있습니다. 단축키 모음에 Save
가 안 보이지만, ^O WriteOut
을 이용하면 됩니다. 해당 내용이 파일을 저장하는 단축키입니다.
vim
Vim 편집기는 다양한 명령어를 통해 텍스트 편집을 보다 효율적으로 수행할 수 있게 해주는 도구입니다.
-
Vim 시작하기: Vim을 시작하려면, 콘솔에
vim
을 입력하면 됩니다. 만약 특정 파일을 열고 싶다면,vim [파일이름]
을 입력하면 됩니다. -
Vim 모드: Vim은 여러 가지 모드를 가지고 있습니다.
- 일반 모드(Normal mode): Vim을 시작하면 기본적으로 이 모드에서 시작합니다. 이 모드에서는 텍스트를 편집하거나 다른 모드로 전환하는 명령을 내릴 수 있습니다.
- 삽입 모드(Insert mode): 이 모드에서는 텍스트를 삽입할 수 있습니다. 일반 모드에서 ‘i’를 눌러 이 모드로 진입할 수 있습니다.
- 명령행 모드(Command-line mode): 이 모드에서는 파일 저장, 불러오기 등의 명령을 내릴 수 있습니다. 일반 모드에서 ‘:’를 눌러 이 모드로 진입할 수 있습니다.
- 비주얼 모드(Visual mode): 이 모드에서는 텍스트를 하이라이트하고 복사, 붙여넣기 등의 작업을 수행할 수 있습니다. 일반 모드에서 ‘v’를 눌러 이 모드로 진입할 수 있습니다.
-
이동: Vim에서는 다양한 방법으로 커서를 이동시킬 수 있습니다.
- 화살표 키를 사용하거나, ‘h’(왼쪽), ‘j’(아래), ‘k’(위), ‘l’(오른쪽)을 눌러 커서를 이동시킬 수 있습니다.
- ‘w’를 누르면 다음 단어의 시작으로, ‘e’를 누르면 다음 단어의 끝으로, ‘b’를 누르면 이전 단어의 시작으로 이동합니다.
- ‘0’을 누르면 줄의 시작으로, ‘$’을 누르면 줄의 끝으로 이동합니다.
- ‘gg’를 누르면 파일의 첫 줄로, ‘G’를 누르면 파일의 마지막 줄로 이동합니다.
-
검색과 치환: Vim에서는 다음과 같이 텍스트를 검색하고 치환할 수 있습니다.
-
’/’를 누른 후 검색하려는 단어나 문구를 입력하면, 해당 단어나 문구를 검색하고자 하는 단어나 문구를 입력하면, 해당 단어나 문구를 검색할 수 있습니다. ‘n’을 눌러 검색 결과 중 다음 항목으로 이동하고, ‘N’을 눌러 이전 항목으로 이동할 수 있습니다.
-
’:%s/old/new/g’를 사용하면, 파일 내에서 ‘old’라는 단어를 ‘new’라는 단어로 모두 바꿀 수 있습니다. 이 때, ‘g’는 ‘global’의 약자로, 줄 내에서 여러 번 나타나는 경우 모두 바꾼다는 의미입니다.
-
- 텍스트 수정: 텍스트를 수정하려면 일반 모드에서 다음 명령어를 사용할 수 있습니다.
- ‘x’: 커서가 위치한 곳의 문자를 삭제합니다.
- ‘dd’: 현재 줄을 삭제합니다.
- ‘yy’: 현재 줄을 복사합니다.
- ‘p’: 커서가 위치한 곳에 복사한 텍스트를 붙여넣습니다.
- ‘u’: 최근의 변경을 취소합니다.
- ‘Ctrl + r’: 취소한 변경을 다시 실행합니다.
- 파일 저장 및 종료: Vim에서는 다음과 같은 명령어를 통해 파일을 저장하거나 Vim을 종료할 수 있습니다.
- ‘:w’: 현재 파일을 저장합니다.
- ‘:q’: Vim을 종료합니다. 만약 변경사항이 저장되지 않았다면, ‘:q!’를 입력하여 강제로 종료할 수 있습니다.
- ‘:wq’ 또는 ‘ZZ’: 파일을 저장하고 Vim을 종료합니다.
- ‘:e [파일이름]’: 새 파일을 엽니다.
Vim에는 이 외에도 많은 명령어와 기능이 있습니다. Vim 편집기를 효과적으로 사용하려면, 이 명령어들을 익숙해지는 것이 중요합니다. Vim은 초기에 배우기 어려울 수 있지만, 한번 익숙해지면 매우 강력한 텍스트 편집 도구가 될 수 있습니다.
Emacs
Emacs는 강력하고 확장 가능한 텍스트 편집기입니다. 1970년대에 개발되어 지금까지도 널리 사용되고 있습니다. Emacs의 주요 특징은 그 확장성과 사용자 정의 가능성입니다. 사용자는 Emacs Lisp라는 프로그래밍 언어를 사용하여 편집기의 동작을 변경하거나 새로운 기능을 추가할 수 있습니다.
Emacs에는 다음과 같은 주요 기능들이 있습니다:
- 다중 버퍼와 창: Emacs에서는 여러 개의 텍스트 버퍼를 동시에 열 수 있습니다. 각 버퍼는 다른 파일, 명령의 출력, 또는 Emacs의 내부 상태와 같은 정보를 포함할 수 있습니다. 또한, 여러 개의 창을 열어서 동시에 여러 버퍼를 볼 수 있습니다.
- 프로그래밍 언어 지원: Emacs는 수많은 프로그래밍 언어를 지원합니다. 각 언어에 대한 구문 강조, 자동 완성, 코드 포매팅 등의 기능을 제공합니다.
- 셸과 터미널 에뮬레이션: Emacs에서는 셸 명령을 직접 실행할 수 있습니다. 또한, 터미널 에뮬레이터를 통해 셸 세션을 직접 Emacs 내에서 실행할 수 있습니다.
- 확장 가능성: Emacs는 매우 확장 가능하며, 사용자 정의가 가능합니다. Emacs Lisp라는 언어를 통해 Emacs의 동작을 변경하거나 새로운 기능을 추가할 수 있습니다. 또한, 수많은 패키지와 확장 기능을 설치하여 Emacs를 원하는 방식으로 설정할 수 있습니다.
기본 사용법
- Emacs 시작하기: 터미널에서
emacs
를 입력하면 Emacs를 실행할 수 있습니다. 특정 파일을 열려면emacs [파일이름]
을 입력합니다. - 파일 열기와 저장:
C-x C-f
: 새 파일을 열거나 기존 파일을 엽니다. 여기서 ‘C-x’는 ‘Ctrl + x’를 의미합니다.C-x C-s
: 현재 파일을 저장합니다.C-x C-w
: 다른 이름으로 파일을 저장합니다.
- 이동: Emacs에서는 다양한 방법으로 커서를 이동시킬 수 있습니다.
C-f
(forward),C-b
(backward),C-n
(next),C-p
(previous)를 사용하여 앞, 뒤, 아래, 위로 이동합니다.M-<
: 문서의 처음으로 이동합니다.M->
: 문서의 끝으로 이동합니다.- 여기서 ‘M-‘는 ‘Alt + ‘를 의미합니다.
- 텍스트 수정:
C-d
: 현재 커서 위치의 문자를 삭제합니다.M-d
: 현재 커서 위치의 단어를 삭제합니다.C-k
: 현재 커서 위치에서 그 줄의 끝까지 삭제합니다.C-y
: 가장 최근에 삭제한 텍스트를 현재 위치에 붙여넣습니다.
- 검색 및 치환:
C-s
: 텍스트를 앞쪽으로 검색합니다.C-r
: 텍스트를 뒤쪽으로 검색합니다.M-%
: 텍스트를 치환합니다. 이 명령을 실행한 후, 찾을 단어와 바꿀 단어를 차례로 입력하고, 각 단어를 치환할지 묻는 프롬프트에 ‘y’ 또는 ‘n’을 입력합니다.
- 버퍼와 창:
C-x b
: 다른 버퍼로 이동합니다.C-x 2
: 창을 수평으로 분할합니다.C-x 3
: 창을 수직으로 분할합니다.C-x 1
: 다른 창을 모두 닫고 현재 창만 남깁니다.C-x 0
: 현재 창을 닫습니다.
- Emacs 종료:
C-x C-c
: Emacs를 종료합니다.
Emacs는 매우 많은 기능과 옵션을 가지고 있으므로, 이외에도 많은 명령어와 기능을 제공합니다. 이러한 명령어들을 잘 익히면 Emacs를 더욱 효율적으로 사용할 수 있습니다. Emacs는 사용법이 복잡하다는 인상을 줄 수 있지만, 그만큼 강력한 기능을 가지고 있으며, 사용자의 요구에 맞게 매우 높은 수준으로 사용자 정의할 수 있다는 점에서 많은 사랑을 받고 있는 텍스트 편집기입니다. 이 기본적인 명령어를 익히고 나면, Emacs Lisp를 이용하여 Emacs의 기능을 확장하거나, 여러가지 패키지를 설치하여 다양한 작업을 보다 편리하게 수행할 수 있게 됩니다.
댓글남기기