A few days ago, we have written about Task Warrior, a command line TODO task manager which is used to manage your tasks, daily chores effectively from command line. The task Warrior is like a reminder, so that we can note down the tasks that we need to accomplish in our day-to-day life. Today, in this guide, we will see yet another useful command line application called Terminal Velocity. It is a fast, cross-platform, CLI note-taking application. You can use it like your digital diary to take notes for your personal or professional purpose, without leaving your Terminal. You don't need to depend on any heavy, memory consumable GUI based applications. Terminal Velocity is extremely light-weight and fast. You don't even need to install any DE. It just works from Terminal itself. It is heavily inspired by and based on the OS X app Notational Velocity.
Let us go ahead and learn to install and use Terminal Velocity in Unix-like systems.
Terminal Velocity - A Command-line Note-taking Application For Linux
Installing Terminal Velocity
Terminal velocity can be installed using pip, a python package manager. If your system doesn't have pip installed, you can install as shown below.
To install PIP on Arch Linux and its derivatives, run:
$ sudo pacman -S python-pip
On RHEL, Fedora, CentOS:
$ sudo yum install epel-release
$ sudo yum install python-pip
$ sudo dnf install epel-release
$ sudo dnf install python-pip
On Debian, Ubuntu, Linux Mint:
$ sudo apt-get install python-pip
For more details about PIP, refer the following guide.
Once PIP installed, run the following command to install Terminal Velocity:
$ sudo pip install terminal_velocity
Terminal Velocity Usage
Once installed, launch Terminal Velocity using command:
This is how Terminal Velocity interface looks like.
As you see in the above output, we haven't created any notes yet.
By default, the notes will be saved as plain text files in ~/Notes directory. Of course, you can assign your own notes directory by specifying different path like below.
$ terminal_velocity <path_to_notes_directory>
To create a new note, type a title for the note and press enter. The note will be opened in your default text editor. The default editor is Vim. Just type your notes and save them as the way you do in Vim editor.
Similarly, you can add as many notes as you wanted. All notes are automatically gets sorted by modification date. The most recently modified notes will be listed at the top.
If you already have a note with same name, it will show the notes that match what you have typed on the title bar. So, you can open the related note instead of creating a new one.
If you want to create a new note whose title is a substring of an existing note’s title, then even after you’ve typed the full title for your new note the existing note will still be selected by the autocomplete. In such cases, just hit ctrl-d or escape keys to clear the autocomplete selection, and then hit ENTER key to create your note.
To find a note, just type the title or words from the note in the title bar area. It will show you the suggested list of notes that matches what you have just typed. When you see the note that you want, use the up/down arrows or page up/page down keys to select it then hit enter to open it.
When you type the beginning of a note’s title (case-insensitive), that note will be automatically selected in the note list and its title will be autocompleted in the search box as shown in the above screenshot. After selecting your desired note, just hit enter to open that note in your default editor.
All notes will be saved with extension .txt in ~/Notes directory. You can list the available notes using ls command like below.
$ ls ~/Notes
Laptop.txt Write an article about Terminal Velocity.txt
If you want to remove a note, just delete the .txt file using rm command.
$ rm ~/Notes/Laptop.txt
Create notes with different extensions
Terminal Velocity can support various extensions, including .txt, .text, .md, .markdown, .mdown, .mdwn, .mkdn, .mkd, and .rst.
To create a note with a different filename extension use the --extension or -x option like below.
$ terminal_velocity -x .md
In this case, the note will be saved with .md extension.
You can create note files with different filename extensions. You can search all the notes in your notes directory, regardless of extension.
Create notes under sub-directory
To create a note in a sub-directory, just mention the sub-directory(s) as part of the note's title like below.
Here, linux/security/ is the directory where we kept our notes. And 'how to secure your linux server' is the title of the note.
To verify if the sub-directory(s) have really been created, use tree command as shown below.
$ tree ~/Notes
/home/sk/Notes ├── linux │ └── security │ └── how to secure your linux server.txt ├── OSTechNix notes.md └── Write an article about Terminal Velocity.txt 2 directories, 3 files
Terminal Velocity is case-insensitive and the search is smart-case. Say for example, if the search word is all lower-case, then it will be matched case-insensitively. If the word contains any upper-case letters then it will be matched case-sensitively.
Also, the search words/terms don’t have to appear neither consecutively nor in the same order. A note will match a search term if it contains all of the given search words anywhere in its title or body.
Since the notes are just a directory of plain text files, it’s very easy to sync them with Google Drive, Dropbox, and git, etc. Just use a notes directory in your Dropbox or Google drive in a git repository, etc.
Terminal Velocity doesn’t support renaming or moving notes yet. However, you can move note files and edit their contents using other tools. This will not interfere with Terminal Velocity as long as you don’t do it while Terminal Velocity is running.
To quit Terminal Velocity, press CTRL+X or CTRL+C.
To display the help section of Terminal velocity, run:
$ terminal_velocity -h
And, that's all. Hope you find this useful. If you find our guides useful, please share them on your social, professional networks and support OSTechNix.
More good stuffs to come. Stay tuned!