Notepad++

 


1. 개요
2. 기능
2.1. 문법 하이라이팅
2.2. 고스트 타이핑
2.3. 그 외 기능
3. 기본 플러그인
4. 사건사고


1. 개요


웹사이트
프랑스의 Don Ho라는 사람이 개발한 Microsoft Windows문서 편집기로, GNU GPL 하에 배포되는 자유 소프트웨어이며 프리웨어다. Scintilla를 기반으로 C++ 및 순수 Win32 API로 개발되었다. 덕분에 기능이 많음에도 상당히 빠르고 가볍다.
Notepad++라는 이름은 Windows 내장 문서 편집기 메모장(Notepad)을 강화(++)했다는 의미에서 붙여진 이름이다. 단순 텍스트뿐만이 아니라 C++, Java프로그래밍 언어로 작성하는 프로그램의 소스코드를 편집하는 것도 지원한다. 따라서 메모장을 선호하고 IDE를 기피하는 날코딩 유저가 선호하는 편집기 중 하나이다. 더욱이 무료 프로그램임에도 불구하고 상용 코딩용 에디터인 울트라에디트, 에디트플러스 등에 밀리지 않는 기능을 제공하기 때문에 인기가 상당히 많다.
이 프로그램의 리눅스 버전으로 Notepadqq가 있다.
64비트 버전이 있긴 한데, 정작 Notepad++의 진수인 플러그인들이 64비트를 지원하는게 거의 없다. 자신이 쓰려는 플러그인이 64비트용이 있는지 반드시 확인하고, 없으면 그냥 32비트 버전을 까는 게 낫다. 다만 Plugin Manager는 2017년부터 64비트를 지원해서 지금은 많이 좋아졌다.
상단 메뉴에 Plugin Manager가 보이지 않을 경우 참고.
마스코트는 카멜레온이다.

2. 기능


아래의 기능들은 Notepad++ 공식 홈페이지에서 소개하는 기능이다.

2.1. 문법 하이라이팅


프로그래밍 언어에 맞춰 각 단어에 자동으로 색을 입혀준다. 지원하는 언어가 상당히 많다.
이하 지원하는 언어 목록. Go도 없지만, 언어에 따른 신텍스를 추가하여 사용할 수 있다. 이런 경우 테마를 사용하면 색이 엉망이 되기때문에 제대로 지원하는 언어보다는 불편함이 있다. 예를 들면 Go의 경우 #

2.2. 고스트 타이핑


자동으로 글자를 또박또박 입력한다. 매크로랑 비슷한 기능인데 별 유용성은 없고 뭔가 재밌는 연출을 보고 싶을 때 사용하는 기능. Notepad++을 실행할 때 추가 옵션을 입력하거나 에디터화면에서 이스터에그이름을 입력하여 드래그한 후 F1 키를 누르면 된다.
  • notepad++.exe -qn(이스터에그_이름)
    • 이스터 에그 이름의 공백은
      %20
      으로 입력해야 한다. 예:
      -qndarth vader
      -qndarth%20vader
이스터 에그 이름을
random
이라고 쓰면 무작위 이스터 에그가 적용된다.
이스터 에그 종류는 여기를 참고.
  • 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. 기본 플러그인


64비트 Notepad++를 설치하면 MIME Tools와 Converter만 사용가능하다.
  • MIME Tools
주로 사용하는 BASE64, HTML 엔티티 코드로 변환이 가능하다.
예시: https://namu.wiki/w/Notepad++ → https://namu.wiki/w/Notepad%2B%2B
  • Converter
ASCIIHEX 간 상호 변환을 할 수 있는 플러그인이다.
  • NppExport
입력한 정보를 RTF나 HTML로 저장해주거나 클립보드로 복사해준다.
Notepad++의 플러그인들을 보고, 설치할 수 있는 플러그인이며 플러그인의 설명, 안정성, 버전 등을 볼 수 있다. 다른 플러그인은 몰라도 이 플러그인은 가능하면 깔아두자. 오랫동안 기본 플러그인이었는데, 개발자가 광고가 들어가있는 게 맘에 안든다는 이유로 뺐다. 덕분에 최신버전을 설치한 유저들이 혼란을 겪었다.
말 그대로 FTP에 있는 파일에 접근하고, 수정이 가능하게 만들어주는 플러그인이다.
현재는 기본 플러그인에서 빠졌다.
  • Plugins Admin
상술한 Plugin Manager를 대체하는 새로운 플러그인.

4. 사건사고


개발자의 정치성향이 굉장히 뚜렷한데, 문제는 이걸 소프트웨어에까지 적극적으로 반영시키다 보니 반대론자들로부터 해당 프로그램까지 같이 얻어맞고 있다. 그 덕분에 Band in China의 '''화이트리스트'''에 등재되기까지 했다.
  • 소스포지 광역 차단 원흉설
중국 정부가 소스포지를 광역차단한 적이 있었는데 당시 그 사태의 원흉으로 지목된 것이 Notepad++이 걸어뒀던 베이징 올림픽 보이콧 배너였다.#[6] 물론 진짜 차단 이유는 누구도 모른다.
이것과 관련이 있는지는 모르겠지만, 공식 홈페이지의 중국어 번역을 보면 간체자가 아닌 번체자이며, 국기 아이콘대만청천백일만지홍기이다.(...)
7.7 버전에서는 아예 카멜레온 ♡ 대만 지도까지 넣어 놓았다. Notepad++ 정보에서 볼 수 있다. # 무지개 배색인 건 대만의 동성혼 법제화를 축하하는 의미.
일본에서 대지진으로 5천여 명이 사망할 때 아프리카에서는 매일매일 1만 6천여 명의 아이들이 굶어죽는다는 글귀를 보여주며 인간의 목숨 가치는 동등하다면서 세계인들이 일본 재난에만 관심 가지는 걸 이제 그만 하고 아프리카에 관심 좀 주면 안 되겠냐고 공지사항에다 올렸다. 생각해 볼 말은 맞지만 당시 일본 재난이 현재진행형에다 인류 최악의 원전 사태까지 벌어진 상황이라 관심을 끌 수가 없었던 걸 생각하면 적절치 못한 발언이다.
  • 버전 6.8.9 제거
버전 6.8.9가 크게 불안정하여 결국 개발자가 해당 릴리즈를 제거 및 철회했다. Notepad++에서 어떤 문서를 불러내고, 그 문서를 다른 프로그램에서 편집한 후 다시 Notepad++로 돌아가면 문서를 새로 읽겠냐고 질문하는데 이때 Yes를 택하면 프로그램이 죽는 문제가 있었다. 아무래도 프로그래머 사용자들이 많고, 이들이 Notepad++을 사용할 때는 외부에서 문서 수정하는 경우가 많은데[7] 그런 오류는 특히나 치명적일 수 밖에 없다. 6.8.10에서 이 문제를 해결할 것이라고 밝혔다. 7.6.5 버전도 비슷한 버그로 인해 제거되었는데, 그냥 개발자가 버전 삭제를 별로 중요하게 생각하지 않는 듯 하다.
  • 공식 홈페이지 해킹 사건
이슬람주의자로부터 공식 홈페이지를 해킹 당한 적이 있다. 이유는 Notepad++ Je suis Charlie 에디션 때문이라는 듯.# (샤를리 엡도 총격 테러와 관련된 버전이다.)
  • 보이콧 사태
개발자가 트윗으로 프랑스 국민연합에 투표했다면 Notepad++을 지워주세요라고 발언한 것이 문제가 됐다. 물론 개발자가 변론한 것처럼 프로그램 못 쓰게 강제할 방법도 없기 때문에 그냥 뻘소리일 뿐이다.
  • CIA 패치
위키리크스에서 ?년 ?월 7일에 공개한 자료에서 CIA 해킹툴이 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가 설치되는 마지막 버전이다.
[1] 칸 구분이 엄격하다.[2] MS-DOS도 동일하다. 초창기 버전에서는 Windows/DOS로 표기했으나 현 시대에 MS-DOS를 쓰는 사람이 거의 없어저인지 지금의 Windows로 표기가 바뀌었다.[3] 지금의 매킨토시(macOS)가 아닌 클래식 매킨토시(Mac OS 9)를 의미한다.[4] 리눅스, 안드로이드, macOS도 여기에 속한다.[5] 윈도우에서는 CR과 LF가 붙어있지 않으면 줄바꿈으로 인식하지 못해서 줄바꿈이 전부 무시된다.[6] 당시에는 Notepad++이 소스포지에 운영되고 있었다. 참고로 해당 배너의 내용은 중국 공산당의 검열과 통제를 까는 내용이었다.[7] 프로그램 실행 로그를 파일로 뱉도록 하고 그걸 Notepad++로 읽어서 보는 식이 많다.