[[분류:문서 편집기]][[분류:Band in China/화이트리스트]] ||<table align=right><table width=222><#eee>{{{#!wiki style="margin: -5px -10px" [[파일:Notepad++Logo.png|width=100%]]}}}|| [목차] == 개요 == [[https://notepad-plus-plus.org/|웹사이트]] [[프랑스]]의 Don Ho라는 사람이 개발한 [[Microsoft Windows]]용 [[문서 편집기]]로, [[GNU 일반 공중 사용 허가서|GNU GPL]] 하에 배포되는 [[자유 소프트웨어]]이며 [[프리웨어]]다. Scintilla를 기반으로 C++ 및 순수 Win32 API로 개발되었다. 덕분에 기능이 많음에도 상당히 빠르고 가볍다. Notepad++라는 이름은 Windows 내장 문서 편집기 [[메모장#s-2|메모장]](Notepad)을 강화(++)했다는 의미에서 붙여진 이름이다. 단순 텍스트뿐만이 아니라 [[C++]], [[Java]] 등 [[프로그래밍 언어]]로 작성하는 프로그램의 [[소스코드]]를 편집하는 것도 지원한다. 따라서 메모장을 선호하고 IDE를 기피하는 [[날코딩]] 유저가 선호하는 편집기 중 하나이다. 더욱이 무료 프로그램임에도 불구하고 상용 코딩용 에디터인 울트라에디트, [[에디트플러스]] 등에 밀리지 않는 기능을 제공하기 때문에 인기가 상당히 많다. 이 프로그램의 [[리눅스]] 버전으로 Notepadqq가 있다. 64비트 버전이 있긴 한데, 정작 Notepad++의 진수인 플러그인들이 64비트를 지원하는게 거의 없다. 자신이 쓰려는 플러그인이 64비트용이 있는지 반드시 확인하고, 없으면 그냥 32비트 버전을 까는 게 낫다. 다만 Plugin Manager는 2017년부터 64비트를 지원해서 지금은 많이 좋아졌다. 상단 메뉴에 Plugin Manager가 보이지 않을 경우 [[http://sooin01.tistory.com/entry/Notepad-Plugin-Manager-%EC%84%A4%EC%B9%98|참고]]. 마스코트는 [[카멜레온]]이다. == 기능 == 아래의 기능들은 Notepad++ 공식 홈페이지에서 소개하는 기능이다. === 문법 하이라이팅 === 프로그래밍 언어에 맞춰 각 단어에 자동으로 색을 입혀준다. 지원하는 언어가 상당히 많다. 이하 지원하는 언어 목록. [[Go(프로그래밍 언어)|Go]]도 없지만, 언어에 따른 신텍스를 추가하여 사용할 수 있다. 이런 경우 테마를 사용하면 색이 엉망이 되기때문에 제대로 지원하는 언어보다는 불편함이 있다. 예를 들면 [[Go(프로그래밍 언어)|Go]]의 경우 [[https://github.com/tlowry/npp-golang|#]] * [[액션스크립트|ActionScript]] * [[에이다#s-2|Ada]] * ASN.1 * [[ASP]] * [[어셈블리어|어셈블리]] * AutoIt * AviSynth * [[배치 파일|Batch]] * Blitz Basic * [[C(프로그래밍 언어)|C]] * [[C\#]] * [[C++]] * Caml * Cmake * [[코볼|COBOL]] * [[CoffeeScript]] * Csound * [[CSS]] * [[D(프로그래밍 언어)|D]] * Diff * [[Erlang]] * escript * Forth * [[포트란|Fortran]] (고정 형식[* 칸 구분이 엄격하다.], 자유 형식) * 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]] * [[포스트스크립트#s-2.3.1|Postscript]] * PowerShell * [[server.properties|Properties]](파일): [[마인크래프트]] 서버를 여는 데 사용되는 파일과 같은 것이다. * PureBasic * [[Python]] * [[R(프로그래밍 언어)|R]] * Rebol * registry * 리소스 파일 * [[Ruby]] * [[Rust]] * [[셸|Shell]] * [[Scheme]] * [[Smalltalk]] * SPICE * [[SQL#s-2|SQL]] * [[Swift(프로그래밍 언어)|Swift]] * TCL * [[TeX]] * txt2tags * [[비주얼 베이직|Visual Basic]] * [[VHDL]] * [[Verilog]] * [[XML]] * YAML * [[Skript]] === 고스트 타이핑 === 자동으로 글자를 또박또박 입력한다. 매크로랑 비슷한 기능인데 별 유용성은 없고 뭔가 재밌는 연출을 보고 싶을 때 --친구 깜놀 시킬 때-- 사용하는 기능. Notepad++을 실행할 때 추가 옵션을 입력하거나 에디터화면에서 이스터에그이름을 입력하여 드래그한 후 F1 키를 누르면 된다. * {{{notepad++.exe -qn(이스터에그_이름)}}} * 이스터 에그 이름의 공백은 {{{%20}}}으로 입력해야 한다. 예: {{{-qndarth vader}}} → {{{-qndarth%20vader}}} 이스터 에그 이름을 {{{random}}}이라고 쓰면 무작위 이스터 에그가 적용된다. 이스터 에그 종류는 [[https://en.wikipedia.org/wiki/Notepad%2B%2B#Easter_egg|여기를 참고]]. * {{{notepad++.exe -qt(텍스트)}}} * 프로그램이 실행되면 해당 텍스트를 자동으로 타이핑한다. 공백은 {{{%20}}}으로 입력해야 한다. * {{{notepad++.exe -qf(파일_경로_및_이름)}}} * 해당 경로에 있는 파일의 내용을 따라서 타이핑한다. 공백은 {{{%20}}}으로 입력해야 한다. 예: {{{-qfmyfile.txt}}}, {{{-qfC:\test\myfile.txt}}} === 그 외 기능 === 아래 기능 중 좀 더 자세하게 설명하고 싶다면 위의 고스트 타이핑처럼 따로 빼내주기 바란다. * 사용자 정의 문법 하이라이팅: 지원하지 않는 언어는 사용자가 직접 문법 하이라이팅을 만들 수 있다. * PCRE 검색/교체: Perl Compatible Regular Expression 검색 및 교체를 지원한다. * GUI 커스터마이징: 환경설정을 통하여 GUI 커스터마이징을 세세하게 지원한다. * 문서 지도: [[https://notepad-plus-plus.org/features/document-map.html|참고]] * 자동 완성: 단어 및 함수, 함수의 파라메터 등의 자동 완성을 지원한다. * 탭 기능: 탭을 통하여 여러 문서를 동시에 취급할 수 있다. 요즘에는 당연한 기능이지만 이 프로그램 처음 나올 당시에는 상당한 세일즈 포인트였다. * 멀티 뷰: 여러 문서를 동시에 볼 수 있다. * 인쇄 [[WYSIWYG]]. * 확대 및 축소. * 다중 언어 환경 지원: Notepad++의 가장 강력한 기능이라고 할 수 있는 온갖 나라의 인코딩을 세세하게 지원하는 기능. 인코딩 자동 선택을 지원해서 [[중국어]]나 [[일본어]] 등으로 적힌 텍스트 파일도 인코딩 변경 없이 제대로 열 수 있으며, [[한글]]로 적힌 텍스트 파일도 외국 윈도우에서 제대로 열 수 있다. * 북마크 기능. * 매크로 기능. * 옵션을 넣어서 프로그램을 실행할 수 있다. 어떤 옵션이 있는지는 [[https://notepad-plus-plus.org/assets/images/scsh/scsh_cmdlineArguments.png|참고]]. * 함수 목록: [[https://notepad-plus-plus.org/features/function-list.html|참고]] * 동시 편집: 커서를 여러개 만들어서 여러 줄을 동시에 편집할 수 있다. [[https://notepad-plus-plus.org/features/multi-editing.html|참고]]. * 영역 편집: 마우스로 하나의 영역을 지정하여 그 영역 안을 동시에 편집하는 기능. [[https://notepad-plus-plus.org/features/column-mode-editing.html|참고]]. * 줄바꿈 방식 선택: [[Microsoft Windows|Windows]](CR+LF)[* [[MS-DOS]]도 동일하다. 초창기 버전에서는 Windows/DOS로 표기했으나 현 시대에 MS-DOS를 쓰는 사람이 거의 없어저인지 지금의 Windows로 표기가 바뀌었다.], [[Macintosh(컴퓨터)|Macintosh]](CR)[* 지금의 매킨토시([[macOS]])가 아닌 클래식 매킨토시([[Mac OS]] 9)를 의미한다.], [[유닉스|Unix]](LF)[* [[리눅스]], [[안드로이드(운영체제)|안드로이드]], [[macOS]]도 여기에 속한다.] 중에서 선택할 수 있으며, 자동으로 줄바꿈 방식을 판단해준다. 윈도우에서 작성된 파일을 유닉스에서 실행하면 파싱 오류가 나는 경우가 있고, 반대로 유닉스에서 작성된 파일을 윈도우에서 열면 줄바꿈을 인식하지 못하는 경우가 있는데[* 윈도우에서는 CR과 LF가 붙어있지 않으면 줄바꿈으로 인식하지 못해서 줄바꿈이 전부 무시된다.], 이를 해결하려면 줄바꿈 방식을 변경해야 한다. == 기본 플러그인 == 64비트 Notepad++를 설치하면 MIME Tools와 Converter만 사용가능하다. * MIME Tools 주로 사용하는 [[BASE64]], [[HTML]] 엔티티 코드로 변환이 가능하다. 예시: https://namu.wiki/w/Notepad++ → https://namu.wiki/w/Notepad%2B%2B * Converter [[ASCII]]와 [[16진법|HEX]] 간 상호 변환을 할 수 있는 플러그인이다. * NppExport 입력한 정보를 RTF나 [[HTML]]로 저장해주거나 클립보드로 복사해준다. * ~~Plugin Manager~~ Notepad++의 플러그인들을 보고, 설치할 수 있는 '''플러그인'''이며 플러그인의 설명, 안정성, 버전 등을 볼 수 있다. 다른 플러그인은 몰라도 이 플러그인은 가능하면 깔아두자. 오랫동안 기본 플러그인이었는데, 개발자가 광고가 들어가있는 게 맘에 안든다는 이유로 뺐다. 덕분에 최신버전을 설치한 유저들이 혼란을 겪었다. * ~~NppFTP~~ 말 그대로 [[FTP]]에 있는 파일에 접근하고, 수정이 가능하게 만들어주는 플러그인이다. 현재는 기본 플러그인에서 빠졌다. * Plugins Admin 상술한 Plugin Manager를 대체하는 새로운 플러그인. == 사건사고 == [[반중|개발자의]] [[리버럴|정치성향]]이 굉장히 뚜렷한데, 문제는 이걸 소프트웨어에까지 적극적으로 반영시키다 보니 반대론자들로부터 해당 프로그램까지 같이 얻어맞고 있다. 그 덕분에 [[Band in China]]의 '''화이트리스트'''에 등재되기까지 했다. * 소스포지 광역 차단 원흉설 중국 정부가 소스포지를 광역차단한 적이 있었는데 당시 그 사태의 원흉으로 지목된 것이 Notepad++이 걸어뒀던 베이징 올림픽 보이콧 배너였다.[[https://web.archive.org/web/20080326203742/http://notepad-plus.sourceforge.net/uk/site.htm|#]][* 당시에는 Notepad++이 소스포지에 운영되고 있었다. 참고로 해당 배너의 내용은 [[중국 공산당]]의 검열과 통제를 까는 내용이었다.] 물론 진짜 차단 이유는 누구도 모른다. 이것과 관련이 있는지는 모르겠지만, 공식 홈페이지의 [[중국어]] 번역을 보면 [[간체자]]가 아닌 [[번체자]]이며, [[국기]] [[아이콘]]도 [[대만]]의 [[청천백일만지홍기]]이다.(...) ~~[[타이완 넘버원]]~~ 7.7 버전에서는 아예 카멜레온 ♡ 대만 지도까지 넣어 놓았다. Notepad++ 정보에서 볼 수 있다. [[https://notepad-plus-plus.org/news/v77-released/|#]] 무지개 배색인 건 대만의 동성혼 법제화를 축하하는 의미. * [[도호쿠 대지진]] 때 지구촌 비판 일본에서 대지진으로 5천여 명이 사망할 때 아프리카에서는 매일매일 1만 6천여 명의 아이들이 굶어죽는다는 글귀를 보여주며 인간의 목숨 가치는 동등하다면서 [[https://notepad-plus-plus.org/news/thing-more-important-than-japans-diaster.html|세계인들이 일본 재난에만 관심 가지는 걸 이제 그만 하고 아프리카에 관심 좀 주면 안 되겠냐고 공지사항에다 올렸다.]] 생각해 볼 말은 맞지만 당시 일본 재난이 현재진행형에다 [[후쿠시마 원자력 발전소 사고|인류 최악의 원전 사태]]까지 벌어진 상황이라 관심을 끌 수가 없었던 걸 생각하면 적절치 못한 발언이다. * 버전 6.8.9 제거 버전 6.8.9가 크게 불안정하여 결국 개발자가 해당 릴리즈를 제거 및 철회했다. Notepad++에서 어떤 문서를 불러내고, 그 문서를 다른 프로그램에서 편집한 후 다시 Notepad++로 돌아가면 문서를 새로 읽겠냐고 질문하는데 이때 Yes를 택하면 프로그램이 죽는 문제가 있었다. 아무래도 프로그래머 사용자들이 많고, 이들이 Notepad++을 사용할 때는 외부에서 문서 수정하는 경우가 많은데[* 프로그램 실행 로그를 파일로 뱉도록 하고 그걸 Notepad++로 읽어서 보는 식이 많다.] 그런 오류는 특히나 치명적일 수 밖에 없다. 6.8.10에서 이 문제를 해결할 것이라고 밝혔다. 7.6.5 버전도 비슷한 버그로 인해 제거되었는데, 그냥 개발자가 버전 삭제를 별로 중요하게 생각하지 않는 듯 하다. * 공식 홈페이지 해킹 사건 이슬람주의자로부터 공식 홈페이지를 해킹 당한 적이 있다. 이유는 Notepad++ Je suis Charlie 에디션 때문이라는 듯.[[http://www.securityweek.com/notepad-site-hacked-response-%E2%80%9Cje-suis-charlie%E2%80%9D-edition|#]] ([[샤를리 엡도 총격 테러]]와 관련된 버전이다.) * 보이콧 사태 개발자가 트윗으로 '''프랑스 [[국민연합(프랑스)|국민연합]]에 투표했다면 [[https://twitter.com/Notepad_plus/status/673818785674080256/photo/1|Notepad++을 지워주세요]]'''라고 발언한 것이 문제가 됐다. 물론 [[https://notepad-plus-plus.org/news/a-propos-du-tweet-contre-fn.html|개발자가 변론한 것처럼]] 프로그램 못 쓰게 강제할 방법도 없기 때문에 그냥 뻘소리일 뿐이다. * CIA 패치 [[위키리크스]]에서 ?년 ?월 7일에 공개한 자료에서 CIA 해킹툴이 Notepad++ 취약점을 [[https://wikileaks.org/ciav7p1/cms/page_26968090.html|공개]]해버려서, 이 [[보안 취약점]]을 개선해야 했다(...) * 위구르 독립 지지 버전 7.8.1의 코드네임을 Free Uyghur(위구르 독립)으로 하여 다운로드 서버가 접속되지 않는 문제가 발생하였다. * 홍콩 민주화 집회 지지 버전 7.8.9의 코드네임을 Free Hong Kong으로 하여 한달 후 홈페이지 일부와 다운로드 서버가 접속되지 않는 문제가 발생하였고, 중국 업체 브라우저(UC브라우저 등)에서 모두 차단되었다. 이에 그치지 않고 버전 7.9의 코드네임을 Free Hong Kong으로 유지하면서 이번에는 한 술 더 떠서 상단의 국민연합 사건과 동일하게 홍콩의 민주화를 지지하지 않는다면 버전 7.8.8을 사용하거나 Notepad++의 사용을 중지하면 된다고 써놓았다.[[https://notepad-plus-plus.org/news/v79-stand-with-hong-kong/|#]] * Windows XP 지원 중단 버전 7.9.3부터 XP에서 설치할 수 없다며 설치를 거부한다(...). 7.9.2가 설치되는 마지막 버전이다.