Notepad++ is a popular open-source text and source code editor for Windows. First released in 2003 by programmer Don Ho, Notepad++ gained a loyal following among developers and power users over the years.
It now boasts over 28 million downloads from SourceForge.net, with over 500,000 users actively running the editor. Notepad++ has also been starred over 87,000 times on GitHub, indicating its status as a widely used coding tool.
So why is Notepad++ so well-liked by programmers?
Key Features of Notepad++
Notepad++ includes many advanced capabilities that allow developers to code faster and more efficiently:
-
Syntax Highlighting – Automatically highlights code structure, keywords, variables, and functions for over 100 programming languages like C++, Java, HTML, CSS, JavaScript, PHP and more
-
Code Folding – Toggles collapsing code blocks like functions, classes, comments, etc. to simplify large files
-
Tabbed Editing – Open multiple documents in tabs within one Notepad++ window
-
Document Map – Provides an outline of functions in the current file for quick navigation
-
Auto-Completion – Suggests and completes variables, parameters, CSS classes etc. as you type with Tab auto-complete
-
Multi-View – Displays and edits the same file in multiple panes, allowing side-by-side comparisons
-
Macro Recording & Playback – Records keystrokes into reproducible macros for automating repetitive tasks
-
Bookmarking – Bookmarks specific lines and positions for quick access later
-
Zoom In/Out – Changes text zoom level for accessibility
-
Customizable UI – Tailor the look with different themes and adjustable interface fonts/colors
These features, paired with a fast and lightweight native Windows build, make Notepad++ tremendously useful for tasks like coding, configuring web pages, editing XML files, working with office documents, and much more.
However, since Notepad++ was built exclusively for Windows, it cannot run natively on Linux systems like Ubuntu.
This guide covers methods for installing Notepad++ on Ubuntu 20.04 and 20.10 using Wine compatibility layer. You‘ll also learn how to customize Notepad++ settings and extensions for the best experience coding on Linux.
Prerequisites for Running Notepad++ on Linux
Wine is an open source implementation of the Windows API and runtime libraries on top of Linux. It provides a way to run Windows executables like Notepad++ in a Linux environment.
First, enable 32-bit architecture support which is required for the Wine install:
sudo dpkg --add-architecture i386
Next install the latest Wine 6.X release:
sudo apt install wine64
With the Wine framework now ready, you can install Notepad++ using either the graphical Software Center or command line method.
Method 1: Install Notepad++ via Software Center
The Ubuntu Software graphical utility offers an easy way to search and install apps like Notepad++ complete with Wine dependencies.
Here are the steps to follow:
-
Open the Ubuntu Software Center
-
Search for "notepad++"
-
Select "Install" for Notepad++ in the search results
-
Enter your sudo password when prompted
-
Allow some time for completion – Wine components and Notepad++ will automatically configure
-
Launch Notepad++ from the applications menu
Upon first opening Notepad++, you may notice a short delay as Wine fully sets itself up in the backend.
Once loaded, Notepad++ is ready to use for coding, writing, and editing on Ubuntu!
The Software Center offers straightforward graphical Notepad++ installation. However, command line aficionados may prefer using the snap terminal method covered next.
Method 2: Command Line Install Using Snap
The Snap system provides containerized software packages that work across many Linux distributions. Notepad++ is available as a Snap for simple install through the terminal:
sudo snap install notepad-plus-plus
This one line automatically configures Wine, downloads dependencies, sets up file associations, and links Notepad++ into your system. Much faster than manually installing all the components yourself!
After Snap finishes, feel free to launch Notepad++ from the applications menu and get to work.
The snap command makes it trivial to install Notepad++ on multiple Linux machines without messing around with graphical interfaces. You can even run it in automation scripts to bulk deploy Notepad++ alongside your other apps.
Now let‘s look at uninstalling and some recommended configurations.
Uninstalling Notepad++ from Linux Systems
To completely remove Notepad++ and associated Wine components, reverse the install process:
Via Software Center
- Open Software Center and navigate to the Installed tab
- Find Notepad++ and select Remove
Via Terminal
sudo snap remove notepad-plus-plus
All files and permissions changes made during installation will be reverted.
With Notepad++ itself installed, let‘s optimize the preferences.
Configuring Notepad++ Settings on First Run
The great part about Notepad++ is its extremely customizable interface. Take some time upon your initial launch to set up these suggested configurations for the best experience:
Fonts & Themes
Notepad++ ships with a single boring theme enabled by default. You can easily change this by navigating to Settings > Style Configurator. Consider trying out popular alternatives like Obsidian, Deep Black, or Solarized Dark which are easier on the eyes for long coding sessions.
This menu also allows tweaking fonts,margins, guidelines, caret styles and other UI elements. Monospace fonts like Consolas or Hack offer clean text alignment for coding.
Plugin Extensions
One advantage of Notepad++ is expansive plugin support – with over 300+ add-ons available. Useful development plugins include handy tools like bracket highlighting, code alignment, FTP/SFTP capability, file comparison, JSON viewer, Markdown viewer, and more.
Browse what‘s available under Plugins > Plugin Manager based on your programming needs.
Set Up Shortcuts
Like most dev tools, Notepad++ offers customizable keyboard shortcuts for power users who prefer mouseless interaction.
Consider mapping shortcuts to your most frequent actions like Build/Compile, Comment toggle, Full screen mode, Document map and Multi-edit cloning. The Shortcut Mapper under Preferences helps streamline your workflows.
Tune Auto-Complete
Auto-completion pops up context-sensitive suggestions conveniently as you code to speed up development. However, you may find the default configurations too aggressive.
Use Preferences > Auto-Completion to disable parameters hints and lower case-sensitivity where helpful. Add custom words into the replacement list for common variable spelling mistakes too.
Recommended Integrations
Programmers can connect external tools like compilers, debuggers, loaders and source control with Notepad++ to enable building, debugging and version control without ever leaving the editor through Plugins > Run Commands.
Notepad++ certainly has some learning curve from years of Windows-exclusive development. But a bit of customization helps ease the transition for leveraging this capable text editor on Linux systems.
Now let‘s dig deeper into some of the power user capabilities available.
Advanced Notepad++ Usage Tips for Linux
Beyond basic text editing and coding, experienced developers can take advantage of some lesser known Notepad++ functionality to majorly boost productivity.
Cross-Platform Portability with Notepad++ Portapps
The Notepad++ Portapps edition packages the editor together with a mini Wine environment into an isolated volume that runs entirely off a USB drive.
This portable Notepad++ setup allows you to easily use your customized configuration and plugins across any Windows, Linux or macOS machine without complex installs.
Integrating External Tools
The Run Commands plugins under Plugins > Run lets you hook external system programs, shells, compiler toolchains, debuggers, version control systems, and custom scripts into Notepad++. You can then execute these tools from right inside the editor on selected code or entire files.
For example, C developers could set up commands for make, gdb, gcc, etc. while JavaScript programmers leverage npm, gulp, git and so on. This keeps your entire dev environment centralized.
Multi-Cursor Editing
An underutilized trick is Notepad++‘s multi-cursor support for simultaneously modifying multiple parts of a document.
Hit Ctrl+Click to drop markers then start typing to editors the text across all cursor points – incredibly useful for quick variable renaming, comment insertion, formatting fixes, or code refactors.
Workspaces for Saving State
Working on different parts of a codebase? You can save editor window sessions as Workspaces under File > Save Workspace containing all open files, scroll positions, breakpoints etc. then easily restore that exact state later.
No need to juggle through tons of scattered tabs or re-navigate code. Just load up that target feature‘s workspace.
Minimap Overview
Still getting familiar with a large codebase? Enable View > Show Minimap to reveal a zoomed out visual map of the current file content down the right gutter – helping visually jump between distant functions or classes with a click.
Navigating thousand-line documents gets way easier.
Command Line Usage
Savvy Linux users will be delighted to know Notepad++ offers powerful command line arguments for editing files without opening the UI as well as piping output from tools like git diff directly into an editable Notepad++ session.
Integrate these into shell scripts for even tightercoding workflows.
With customization, expansive plugin integrations, portable packages and advanced power user features, Notepad++ offers incredible versatility beyond basic text editing into a more full-fledged, centralized development environment – without compromising its renowned performance and lightweight footprint.
Recommended Programming Usage (Python Examples)
Beyond the editor features itself, how exactly is Notepad++ helpful for actual programming work?
Let‘s walk through concrete Python coding scenarios where Notepad++ excels:
1. Syntax Checking
Notepad++ constantly syntax highlights your code, catching typos, bugs, missing imports etc. visually with squiggly underlines and error markers in the scroll bar. No need to switch contexts out to a linter.
2. Terminal Integration
Install the NppExec plugin, then bind a shortcut like Alt+T to open an integrated Linux terminal at the current file‘s directory with cd %CD% && x-terminal-emulator. Run Python scripts with a keypress!
3. Code Navigation
Notepad++‘s powerful Document Map, Function List, Tag Explorer, Minimap, Bookmarks and multi-cursor tricks make navigating across Python projects with 10,000+ lines supremely fast.
4. Virtual Environments
The Python Script plugin executes code directly in customizable Python environments, letting you test snippets, visualize data, prototype algorithms right inside the editor through a shell or Jupyter-style notebook.
5. Git Integration
Plug Notepad++ right into your Git workflow by configuring core.editor to open diffs and commit messages. Syntax highlighting applies perfectly to version control patch files too.
These examples demonstrate the excellent programming experience Notepad++ enables even on non-Windows platforms. The editor feels right at home building Python applications within Ubuntu desktop environments.
Recommended Notepad++ Plugins for Linux
With great plugin extensibility available, here are some particularly helpful add-ons for improving the Notepad++ experience specifically on Linux:
-
Wine Toolset – Tweaks Wine settings like overrides forUnavailable DLLs, native OS dialog usage, and sandboxed Wineprefixes on per-app basis for optimal Notepad++ performance through Wine
-
XTerm – Integrates terminal emulators like XTerm, Konsole, GNOME Terminal for quick command line access alongside editing
-
Explorer – Adds handy sidebar file manager, lets directly open/save files from Linux file system
-
Npp FTP – Enables editing remote files directly over SFTP/FTP thanks to backend Wine SSH extension
-
TeX Studio – Provides complete LaTeX authoring and PDF previewing capabilities through the editor
-
Diff Extensions – Sophisticated file/folder diffing comparable to Beyond Compare
-
Wine IE – Installs a mini Internet Explorer engine for rendering web pages and debugging browser issues
Many plugins port over Windows-only functionality that is otherwise inaccessible on Linux. Browse the Plugin Admin gallery as part of your Notepad++ setup.
Transitioning from Windows
For longtime Notepad++ users switching over from Windows, running the editor through Wine introduces minor platform differences to be aware of:
-
Occasional graphical glitches in UI menus, dialogs, icons
-
Slower launch times as Wine initializes
-
Certain plugin incompatibilities, especially very proprietary/old ones
-
No native filesystem notifications requiring refresh to see file changes
-
Can not fully inherit GTK/KDE theming
However, the Notepad++ feature set itself works excellently through Wine even across Linux thanks to years of great cross-platform support. Just be cognizant there will be integration gaps stemming from emulated Windows environment versus running natively.
Fortunately as Wine and backend kernels continue evolving, Linux compatibility should only improve going forward.
Summary
This guide walked through installing the popular Windows-based Notepad++ text editor on Ubuntu 20.04 and 20.10 desktop environments using Wine framework for backward compatibility.
Both graphical Software Center and fast snap terminal methods allow getting Notepad++ up and running smoothly. We also covered recommended configuration like fonts, plugins, themes alongside power user tricks leveraging the editor‘s advanced functionality – especially around programming.
While no substitute for a native port, the Wine-emulated Notepad++ experience admirably brings this mature editor‘s versatile text editing, sophisticated code navigation, expansive extensibility and lightweight performance across to Linux.
It feels right at home for tasks like coding Python, configuring JSON, authoring Markdown, building web frontends and other text-heavy workflows – which is why Notepad++ remains a favorite tool for many developers and power across Windows and Linux alike.


