ㅤ ㅤ ㅤ ㅤㅤ 텍스트 에디터 (문서 편집기) | ||
{{{#!wiki style="margin:0 -10px -5px; min-width:300px; min-height:calc(1.5em + 5px); word-break:keep-all" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin:-6px -1px -11px" | <colbgcolor=#887b7e>Windows용 | 메모장 · 워드패드 · EmEditor · Notepad++ · EditPlus |
크로스 플랫폼 | Visual Studio Code · Sublime Text · Atom · Brackets | |
기타 운영체제용 | vi · vim · Neovim · BBEdit · Emacs | |
이 외 에디터는 문서 편집기 문서 참고 | }}}}}}}}} |
1. 개요
웹사이트프랑스의 Don Ho라는 사람이 개발한 Microsoft Windows용 문서 편집기로, GNU GPL 하에 배포되는 자유 소프트웨어이며 프리웨어다. Scintilla를 기반으로 C++ 및 순수 Win32 API로 개발되었다. 덕분에 기능이 많음에도 상당히 빠르고 가볍다.
Notepad++라는 이름은 Windows 내장 문서 편집기 메모장(Notepad)을 강화(++)했다는 의미에서 붙여진 이름이다. 단순 텍스트뿐만이 아니라 C++, Java 등 프로그래밍 언어로 작성하는 프로그램의 소스코드를 편집하는 것도 지원한다. 따라서 메모장을 선호하고 IDE를 기피하는 날코딩 유저가 선호하는 편집기 중 하나이다. 더욱이 무료 프로그램임에도 불구하고 상용 코딩용 에디터인 울트라에디트, 에디트플러스 등에 밀리지 않는 기능을 제공하기 때문에 인기가 상당히 많다.
이 프로그램의 리눅스 버전으로 Notepadqq가 있다.
마스코트는 카멜레온이다.
2. 기능
아래의 기능들은 Notepad++ 공식 홈페이지에서 소개하는 기능이다.2.1. 문법 하이라이팅
프로그래밍 언어에 맞춰 각 단어에 자동으로 색을 입혀준다. 지원하는 언어가 상당히 많다.이하 지원하는 언어 목록. Go도 없지만, 언어에 따른 신텍스를 추가하여 사용할 수 있다. 이런 경우 테마를 사용하면 색이 엉망이 되기때문에 제대로 지원하는 언어보다는 불편함이 있다. 예를 들면 Go의 경우 #
- ActionScript
- Ada
- ASN.1
- ASP
- 어셈블리
- AutoIt
- AviSynth
- Batch
- Blitz Basic
- C
- C#
- C++
- Caml
- CMake
- COBOL
- CoffeeScript
- Csound
- CSS
- D
- Diff
- Erlang
- escript
- Forth
- Fortran (고정 형식[1], 자유 형식)
- FreeBASIC
- Gui4Cli
- Haskell
- HTML
- Inno Setup
- Java
- JavaScript
- JSON
- JSP
- KIXtart
- LaTeX
- LISP
- Lua
- Makefile
- MATLAB
- MMIX
- INI 파일
- MS-DOS 스타일: 아스키 아트 및 ANSI 형태의 .nfo 파일을 보여주기 위한 형식이다. 인코딩이 OEM-US로 변경되며, 글꼴은 Courier New로 고정된다.
- 일반 텍스트
- Nimrod
- nnCron
- NSIS
- Objective-C
- OScript
- Pascal
- Perl
- PHP
- Postscript
- PowerShell
- Properties(파일): 마인크래프트 서버를 여는 데 사용되는 파일과 같은 것이다.
- PureBasic
- Python
- R
- Rebol
- registry
- 리소스 파일
- Ruby
- Rust
- Shell
- Scheme
- Smalltalk
- SPICE
- SQL
- Swift
- tcl
- TeX
- txt2tags
- Visual Basic
- VHDL
- Verilog
- XML
- YAML
2.2. 고스트 타이핑
자동으로 글자를 또박또박 입력한다. 매크로랑 비슷한 기능인데 별 유용성은 없고 뭔가 재밌는 연출을 보고 싶을 때notepad++.exe -qn(이스터에그_이름)
- 이스터 에그 이름의 공백은
%20
으로 입력해야 한다. 예:-qndarth vader
→-qndarth%20vader
또는 다음처럼 쌍따옴표 사이에 입력해도 된다.notepad++.exe -qn="EasterEggName"
이스터 에그 이름을random
이라고 쓰면 무작위 이스터 에그가 적용된다.
이스터 에그 종류는 원본 소스 코드의static const QuoteParams quotes[]
부분을 참고. notepad++.exe -qt(텍스트)
- 프로그램이 실행되면 해당 텍스트를 자동으로 타이핑한다. 공백은
%20
으로 입력해야 한다. notepad++.exe -qf(파일_경로_및_이름)
- 해당 경로에 있는 파일의 내용을 따라서 타이핑한다. 공백은
%20
으로 입력해야 한다. 예:-qfmyfile.txt
,-qfC:\test\myfile.txt
2.3. 그 외 기능
아래 기능 중 좀 더 자세하게 설명하고 싶다면 위의 고스트 타이핑처럼 따로 빼내주기 바란다.- 사용자 정의 문법 하이라이팅: 지원하지 않는 언어는 사용자가 직접 문법 하이라이팅을 만들 수 있다.
- PCRE 검색/교체: Perl Compatible Regular Expression 검색 및 교체를 지원한다.
- GUI 커스터마이징: 환경설정을 통하여 GUI 커스터마이징을 세세하게 지원한다.
- 문서 지도: 참고
- 자동 완성: 단어 및 함수, 함수의 파라메터 등의 자동 완성을 지원한다.
- 탭 기능: 탭을 통하여 여러 문서를 동시에 취급할 수 있다. 요즘에는 당연한 기능이지만 이 프로그램 처음 나올 당시에는 상당한 세일즈 포인트였다.
- 멀티 뷰: 여러 문서를 동시에 볼 수 있다.
- 인쇄 WYSIWYG.
- 확대 및 축소.
- 다중 언어 환경 지원: Notepad++의 가장 강력한 기능이라고 할 수 있는 온갖 나라의 인코딩을 세세하게 지원하는 기능. 인코딩 자동 선택을 지원해서 중국어나 일본어 등으로 적힌 텍스트 파일도 인코딩 변경 없이 제대로 열 수 있으며, 한글로 적힌 텍스트 파일도 외국 윈도우에서 제대로 열 수 있다.
- 북마크 기능.
- 매크로 기능.
- 옵션을 넣어서 프로그램을 실행할 수 있다. 어떤 옵션이 있는지는 참고.
- 함수 목록: 참고
- 동시 편집: 커서를 여러개 만들어서 여러 줄을 동시에 편집할 수 있다. 참고.
- 영역 편집: 마우스로 하나의 영역을 지정하여 그 영역 안을 동시에 편집하는 기능. 참고.
- 줄바꿈 방식 선택: Windows(CR+LF)[2], Macintosh(CR)[3], Unix(LF)[4] 중에서 선택할 수 있으며, 자동으로 줄바꿈 방식을 판단해준다. 윈도우에서 작성된 파일을 유닉스에서 실행하면 파싱 오류가 나는 경우가 있고, 반대로 유닉스에서 작성된 파일을 윈도우에서 열면 줄바꿈을 인식하지 못하는 경우가 있는데[5], 이를 해결하려면 줄바꿈 방식을 변경해야 한다.
3. 기본 플러그인
- MIME Tools
주로 사용하는 BASE64, HTML 엔티티 코드로 변환이 가능하다.
예시: https://namu.wiki/w/Notepad++ → https://namu.wiki/w/Notepad%2B%2B - Converter
ASCII와 HEX 간 상호 변환을 할 수 있는 플러그인이다. - NppExport
입력한 정보를 RTF나 HTML로 저장해주거나 클립보드로 복사해준다. Plugin Manager
Notepad++의 플러그인들을 보고, 설치할 수 있는 플러그인이며 플러그인의 설명, 안정성, 버전 등을 볼 수 있다. 다른 플러그인은 몰라도 이 플러그인은 가능하면 깔아두자. 오랫동안 기본 플러그인이었는데, 개발자가 광고가 들어가있는 게 맘에 안든다는 이유로 뺐다. 덕분에 최신버전을 설치한 유저들이 혼란을 겪었다.NppFTP
말 그대로 FTP에 있는 파일에 접근하고, 수정이 가능하게 만들어주는 플러그인이다.
현재는 기본 플러그인에서 빠졌다.- Plugins Admin
상술한 Plugin Manager를 대체하는 새로운 플러그인.
4. 사건사고
개발자의 정치성향(리버럴, 반중)이 굉장히 뚜렷한데, 문제는 이걸 소프트웨어에까지 적극적으로 반영시키다 보니 반대론자들로부터 해당 프로그램까지 같이 얻어맞고 있다.[6] 그 덕분에 Band in China의 화이트리스트에 등재되기까지 했다. 그 외 인종차별 문제에 예민한지 그와 관련된 발언도 나온 바 있었으나 정치적 사상 때문에 타인의 생각을 비판한다는 점에서 많은 지적을 받았는지 결국 관련 포스팅은 대부분 내려갔다. 그런데도 중국 관련 비판은 꾸준히 나오고 이에 관한 압박에는 따로 대응이 없는 것으로 보아 딱히 남의 눈치를 봤다기보단, 본인의 소신은 강하지만 자신을 향한 지적이 온당하다 생각한다면 존중해주는 스타일이라 봐야겠다.- 소스포지 광역 차단 원흉설
중국 정부가 소스포지를 광역차단한 적이 있었는데 당시 그 사태의 원흉으로 지목된 것이 Notepad++이 걸어뒀던 베이징 올림픽 보이콧 배너였다. #[7] 물론 진짜 차단 이유는 누구도 모른다.
이것과 관련이 있는지는 모르겠지만, 공식 홈페이지의 중국어 번역을 보면 간체자가 아닌 번체자이며, 국기 아이콘도 대만의 청천백일만지홍기이다.(...)타이완 넘버원
7.7 버전에서는 아예 카멜레온 ♡ 대만 지도까지 넣어 놓았다. Notepad++ 정보에서 볼 수 있다. # 무지개 배색인 건 대만의 동성혼 법제화를 축하하는 의미.
- 도호쿠 대지진 때 지구촌 비판
일본에서 대지진으로 5천여 명이 사망할 때 아프리카에서는 매일매일 1만 6천여 명의 아이들이 굶어죽는다는 글귀를 보여주며 인간의 목숨 가치는 동등하다면서세계인들이 일본 재난에만 관심 가지는 걸 이제 그만 하고 아프리카에 관심 좀 주면 안 되겠냐고 공지사항에다 올렸다.-- 생각해 볼 말은 맞지만 당시 일본 재난이 현재진행형에다 인류 최악의 원전 사태까지 벌어진 상황이라 관심을 끌 수가 없었던 걸 생각하면 적절치 못한 발언이다. 이후 관련글은 모두 내려갔다.
- 버전 6.8.9 제거
버전 6.8.9가 크게 불안정하여 결국 개발자가 해당 릴리즈를 제거 및 철회했다. Notepad++에서 어떤 문서를 불러내고, 그 문서를 다른 프로그램에서 편집한 후 다시 Notepad++로 돌아가면 문서를 새로 읽겠냐고 질문하는데 이때 Yes를 택하면 프로그램이 죽는 문제가 있었다. 아무래도 프로그래머 사용자들이 많고, 이들이 Notepad++을 사용할 때는 외부에서 문서 수정하는 경우가 많은데[8] 그런 오류는 특히나 치명적일 수 밖에 없다. 6.8.10에서 이 문제를 해결할 것이라고 밝혔다. 7.6.5 버전도 비슷한 버그로 인해 제거되었는데, 그냥 개발자가 버전 삭제를 별로 중요하게 생각하지 않는 듯 하다.
- 공식 홈페이지 해킹 사건
이슬람주의자로부터 공식 홈페이지를 해킹 당한 적이 있다. 이유는 Notepad++ Je suis Charlie 에디션 때문이라는 듯.# (샤를리 엡도 총격 테러와 관련된 버전이다.)
- 보이콧 사태
개발자가 트윗으로 프랑스 국민연합에 투표했다면Notepad++을 지워주세요라고 발언한 것이 문제가 됐다. 물론개발자가 변론한 것처럼프로그램 못 쓰게 강제할 방법도 없기 때문에 그냥 뻘소리일 뿐이다. 이후 관련글은 모두 내려갔다.
- 위구르 독립 지지
버전 7.8.1의 코드네임을 Free Uyghur(위구르 독립)으로 하여 다운로드 서버가 접속되지 않는 문제가 발생하였다.
- 홍콩 민주화 집회 지지
버전 7.8.9의 코드네임을 Free Hong Kong으로 하여 한달 후 홈페이지 일부와 다운로드 서버가 접속되지 않는 문제가 발생하였고, 중국 업체 브라우저(UC브라우저 등)에서 모두 차단되었다. 이에 그치지 않고 버전 7.9의 코드네임을 Free Hong Kong으로 유지하면서 이번에는 한 술 더 떠서 상단의 국민연합 사건과 동일하게 홍콩의 민주화를 지지하지 않는다면 버전 7.8.8을 사용하거나 Notepad++의 사용을 중지하면 된다고 써놓았다.#
- Windows XP 지원 중단
버전 7.9.3부터 XP에서 설치할 수 없다며 설치를 거부한다(...). 따라서 7.9.2가 Notepad++가 Windows XP에서 설치되는 마지막 버전이다.
- 2022 베이징 동계올림픽 보이콧 지지
버전 8.3의 코드네임을 Boycott Beijing 2022으로 했으며, 아예 "2022 베이징 동계올림픽이 개최되는 사실을 우리가 직접 뜯어고칠 수 없겠지만, 우리는 동계 올림픽을 시청하지 않거나 무시할 수 있다."라고 써 놓았다. 참고(8.3) 이후 버전 8.3.1의 코드네임 역시 'Boycott Beijing 2022'로 유지되었으며, "이번 버전에서도 2022 베이징 동계올림픽 보이콧은 계속된다."라고 써 놓았다. 참고(8.3.1)
- 행복하지 않은 사용자 버전
8.4.3의 코드네임 unhappy user's edition으로 바꾸었는데 Notepad++은 원하는대로 색상을 조정할 수 있음에도 프로그램과 용어에 대한 이해도 부족으로 초보적인 불만을 제기한 것을 두고 불만족스러움에 미안하다며 양식을 작성해주면 즉시 환불을 해주겠다며 비꼬았다. 물론 Notepad++은 무료이므로 환불 비용 또한 0달러로 써놨다. 이후 버전 8.4.4의 코드네임을 Happy User's Edition으로 바꾸고 Notepad++을 좋아하는 분들이 많다는 것을 알았다며 은혜를 모르는 사용자는 환불을 받을 수 있는 반면, 충성스럽고 충실한 사용자는 환불을 받을 수 없다는 것은 불공평하다고 역시나 비슷한 양식으로 환불 양식을 함께 올려놨다.
- Notepad++ 20주년 기념
버전 8.6이 올라온 2023년 11월 23일이 1.0버전을 소스포지에 올렸던 2003년 11월 23일로부터 딱 20년이 되어 기여자들에게 감사하는 내용의 글이 올라왔다. 1.x ~ 2.0 버전 동안에는 홀로 "Notepad++은 대단해!" 라는 스팸글을 온갖 사이트에 올려왔고 더 이상 이런 글을 돌리지 않아도 되어 기쁘다고. 오픈소스 개발은 무인도에 갇힌 것과 같다며 모든 걸 혼자 했어야 했다고 심경을 토로했다.
- 가짜 Notepad+ 사이트
Notepadplus라는 Notepad++의 사이트를 따라 만든 가짜 사이트가 등장했는데 해당 사이트는 Notepad++의 팬 사이트라고 주장하나 실제로는 멜웨어성 광고들로 득실한 사이트라 이를 내릴 수 있게 구글에 신고해달라는 내용의 글이 올라왔다.
- 대만의 주권 지지
버전 8.6.8의 코드네임을 Support Taiwan's Sovereignty로 쓰고 팔레스타인이 국가로 인정받을 수 있다면, 대만은 왜 안 되겠는가며 장문의 글로 대만의 상황과 독립이 우리에게 주는 영향을 함께 써놓았다. 그런데 며칠 후 중국이 대만 독립 지지자에 대한 처벌 조항을 발표해 사형 내지 종신형을 받게 될 수 있게 되어 공황 상태가 왔다면서 중국의 블랙리스트에 오르지 않기 위해 이전 버전 제공을 중단하고 버전 8.6.9의 코드네임을 Support Taiwan's Independence로 변경하였다. 이후 버전 8.7의 코드네임을 Support Taiwan's return to the UN로 바꾸고 호주와 네덜란드가 대만의 UN 재가입을 지지하는 결의안을 통과시킨 것에 칭찬했다.
[1] 칸 구분이 엄격하다.[2] MS-DOS도 동일하다. 초창기 버전에서는 Windows/DOS로 표기했으나 현 시대에 MS-DOS를 쓰는 사람이 거의 없어저인지 지금의 Windows로 표기가 바뀌었다.[3] 지금의 매킨토시(macOS)가 아닌 클래식 매킨토시(Mac OS 9)를 의미한다.[4] 리눅스, 안드로이드, macOS도 여기에 속한다.[5] 윈도우에서는 CR과 LF가 붙어있지 않으면 줄바꿈으로 인식하지 못해서 줄바꿈이 전부 무시된다.[6] 개발자가 프로그램에 정치적 성향을 반영하는 것을 싫어하지만 소프트웨어 자체가 유용해서 개발자의 이런 태도를 무시하고 계속 사용하는 사람이 있는 반면, 개발자의 지속적인 정치 발언에 못참고 다른 대체 프로그램으로 갈아타는 사람도 많다. 일단 모든 버전에서 유저가 강제로 개발자의 성향을 동의해야만 프로그램을 사용할 수 있는 제한이 없지만, 이런 공과 사를 구별하지 못한 사람의 오픈소스 프로그램을 사용하는 건 꺼림직하다는 유저가 많다.[7] 당시에는 Notepad++이 소스포지에 운영되고 있었다. 참고로 해당 배너의 내용은 중국공산당의 검열과 통제를 까는 내용이었다.[8] 프로그램 실행 로그를 파일로 뱉도록 하고 그걸 Notepad++로 읽어서 보는 식이 많다.