Text editor

From 太極
Revision as of 11:06, 21 April 2019 by Brb (talk | contribs) (→‎vi editor)
Jump to navigation Jump to search
Platforms Pros Cons
Atom Cross built-in markdown file preview
Bluefish Cross remote file, project support crash when I try Print->Preview
Brackets Cross good for web designer
Emacs Cross split the buffers
Gedit Cross print preview (incorrect when landscape but pdf is right) no code folding
Geany Cross print preview; Terminal; split window
IntelliJ IDEA Cross
Notepad++ Win print line numbers, Right-click menu R syntax highlight not work with most themes
Qt Creator Cross split a window (even same file)
RStudio Cross folding, best IDE for R coding not support drag and drop a file but SendTo works
Sublime Cross menu -> Goto -> Bookmarks -> Toggle bookmarks (Ctrl + F2)
Typora Cross Markdown editor (Preview, TOC, LaTex)
vi Cross
Visual Studio Code Cross Integrated Terminal,

Markdown preview. Github markdown extension.

CMD+K and V to open the preview panel side by side.

"minimap" can be removed from menu -> View.


HTML editors: see here.

Atom

  • Markdown preview feature is OK but it cannot export to pdf or HTML.
  • pandoc conversion to html/PDF is not good; scripts part has no rectangle, tables have no separate lines.

Packages

To install a new package, go to Preferences -> Install -> type the package name and hit ENTER.

To remove a package, just delete the related folder.

rm -rf ~/.atom/packages/markdown-toc
  • Markdown Preview Enhanced. It allows to view in browser (html) or export to PDF. Use r instead of R for R language syntax highlight. Another nice feature is the scrollings of the markdown file and preview are together.
  • Markdown TOC. It messes up the # sign in script blocks :( So I switch to RStudio which has a good support to create the TOC (YAML header).

Emacs

$ cat ~/.emacs
;disable backup
(setq backup-inhibited t)
;disable auto save
(setq auto-save-default nil)
(load-theme 'manoj-dark)

Gedit

  • To create a new tab, Ctrl + t.
  • Preferences
    • View: display line numbers, highlight current line
    • Font and colors: change to font size 14, color scheme = Cobalt
    • Plugins: External Tools
  • To split a screen, Do "Documents -> New Tab Group. No extra plugin is needed to download. I am using version 3.10.4 from Ubuntu 14.04.
  • Restore tabs plugin. It works on my gedit 3.4 (ubuntu 12.04). Follow the instruction there exactly.
  • Source code browser plugin. This makes gedit a good IDE for developing C++/Java code since the left panel can show symbols. Click F9 to show the side panel.
  • Darkmate theme.
cd /usr/share/gtksourceview-3.0/styles
sudo gedit darkermate.xml

gedit > Edit > preferences > font and colors > color scheme.

Launch from a command line

gksu gedit XXXX

Plugins

Geany

Geany can be used to run a bash script file line by line. See Debugging_Scripts.

Display special characters

Geany has a way to show special characters (Tabs/LF/CR). Edit > Preferences > Display > Tick, Show whitespace (tabs) & Show Line endings(CR/LF).

For DOS text file, the line ending is CR+LF.

For Unix text file, the line ending is LF.

Font size

Users can use either one of the following methods

  1. Edit -> Preferences -> Interface -> Fonts to adjust the font size.
  2. Keyboard bindings: Ctrl + Shift + '+' to increase the font size or Ctrl + '-' to decrease the font size. This does not affect the font size in Preferences.

Printing

The font size in Preferences affects the printing. The font size changed by using the keyboard bindings does not affect printing.

Remove vertical line

Edit -> Preferences -> Editor -> Display -> Uncheck Long line marker.

Visual Studio Code

10 Essential Productivity Tips for Visual Studio Code

Sublime

Install it from the Snap Store on Linux

My settings file which takes care of the scheme, font size and word wrap.

{
	"color_scheme": "Packages/Color Scheme - Default/Monokai.sublime-color-scheme",
	"font_size": 16,
	"open_files_in_new_window": false,
	"word_wrap": true,
	"theme": "Default.sublime-theme"
}

nano editor

Keyboard shortcuts

Actually there is no need to memorize them because the common shortcuts are always displayed at the bottom of the screen (ctrl+g to get more).

  • Ctrl+c: cur pos
  • Ctrl+y: prev screen
  • Ctrl+v: next screen
  • Ctrl+k: cut
  • Ctrl+u: paste
  • Ctrl+w: search
  • Alt+w: search next (macOS does not work)
  • Ctrl+r: insert another file at cur
  • Alt+r: search and replace

Permission denied and sudoedit command

When I run 'nano tmp', I got a message: Error reading /home/odroid/.nano/search_history: Permission denied. Press Enter to continue.

odroid@odroid:~$ ls -ld /home/odroid/.nano
drwxr-xr-x 2 root root 4096 Feb 12 08:01 /home/odroid/.nano
odroid@odroid:~$ ls -l /home/odroid/.nano
total 4
-rw------- 1 root root 15 Feb 12 08:01 search_history

A simple solution is

sudo chown -R odroid:odroid /home/odroid/.nano  # note '-R' has to be capital

This seems to be a bug in nano after we use 'sudo nano [file]' (eg 'sudo nano /etc/chromium-browser/default') when the 'nano' program has not been run before.

The bottom line is use something like below for editing system files

EDITOR=nano sudoedit /etc/chromium-browser/default

Enable soft line wrapping

nano -$ FILENAME
nano --softwrap FILENAME

Not that

  1. "-$" is the same as "--softwrap". The option "-s" has a different meaning; see below.
  2. "-s program" means to use this alternative spell checker command.
  3. these options are not available on the NIH/Biowulf. I need to use emacs/vi/joe. The keyboard shortcuts for joe can be found here.

show line number/cursor position

Use the -c option for cursor position.

nano -c FILENAME

This does not add line numbers on the left hand side.

Show line number on the left hand side like vi & .nanorc

Shift + Alt + 3 or Add set linenumbers to .nanorc to make it permanent. So my ~/.nanorc looks like

set linenumbers
set softwrap
include /usr/share/nano/sh.nanorc
include /usr/share/nano/c.nanorc
include ~/bin/r.nanorc

See

syntax highlight & .nanorc

Add a syntax highlight support for some languages

$ ls /usr/share/nano/
asm.nanorc    html.nanorc  mutt.nanorc    perl.nanorc    ruby.nanorc
c.nanorc      java.nanorc  nanorc.nanorc  pov.nanorc     sh.nanorc
groff.nanorc  man.nanorc   patch.nanorc   python.nanorc  tex.nanorc
$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc
include /usr/share/nano/c.nanorc
include ~/r.nanorc

R syntax highlight file r.nanorc. Note that I have to comment out line 29 starting with 'header'. A personal copy is saved in github.

To disable syntax highlight (useful if we use a terminal app on an Android ebook reader such as Boox), add -Ynone parameter.

vi editor

Keys

  • quit without saving: ":q!"
  • save and quit: ":x" or ":wq" (note that ":qw" won't work; you want to write and then quit!)
  • Page down: ctrl +f. Page up: Ctrl +b
  • ^: beginning of a line. $: end of a line.
  • command mode : this is the default when you run vi. Hit Esc key to return to the command mode. Command mode is right for moving about a file, copying or deleting a line, saving a file, etc.
  • Insert/edit mode : hit "i" (insert text before cursor position) or "a" (add text after cursor position) to enter the edit mode. The screen will show the text -- INSERT -- on the last line of the vi editor.
  • Command mode/leave edit mode: "ESC". In this mode, you can search, navigate or enter an insert model.
  • Last line mode: Press ':', vi editor will show ':' on the last line. If we continue to type 'q[Enter]' we will quit vi. If we continue to type 'wq', it will write the file and quits.
  • Moving around
    • line beginning: "0"
    • line end: "$"
    • last row: "G"
  • delete a character under the cursor: "x". Delete the remainder of line: "D". Delete entire line: "dd"
  • undo: "u"
  • search forward: "/pattern" (case sensitive). Hit "n" to repeat search.
  • Highlight search ":set hlsearch". To disable highlight ":set nohlsearch"
  • search backward: "?pattern" (case sensitive). Hit "n" to repeat search.
  • save: ":w"
  • quit: ":q"
  • Run external command ":! command"
  • Display line numbers ":set nu". Add "set number" to your .vimrc file in your home directory.
  • Ignore cases when searching ":set ic"

Some helps

color schemes

On my Mint 18.2, the color syntax is off. It does not work if I try to enable it.

The solution is install vim (sudo apt-get install vim). After that, the syntax highlight works automatically; no need to turn it on manually.

To change the color scheme on-the-fly, type :colorscheme then Space followed by TAB. The 'darkblue' looks cool.

The list can be found at /usr/share/vim/vimNN/colors.

On Raspbian OS , we should use the method described here. That is, sudo nano /etc/vim/vimrc and uncomment out the line containing syntax on.

plugin

On Mac, I need to run mkdir ~/.vim/plugin'. Then I can put the downloaded .vim file (e.g. R syntax highlight) there.

Also I may need to modify ~/.vimrc file by adding some options,

syntax on
filetype plugin on

Theme

Write or Code Faster in Your Linux Text Editor With Custom Themes

Visual Studio Code

Text editor with navigation

7 Best Note-Taking Tools for Programmers

http://www.makeuseof.com/tag/best-note-taking-tools-programmers/

RStudio

Code -> Insert Section

We can create different levels of sections.

Netbeans and navigator

On ODroid (ARM works too!) Ubuntu 16.04

# Note: OpenJDK 8 will not work
# We have to install Oracle Java
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

sudo apt-get install netbeans # version 8.1 in my case

See screenshots

Note:

  • Netbeans has a built-in support for HTML/XML files. XML has an advantage over HTML since HTML cannot have any tags you want.
  • We need to download a plugin for markdown file support. Go to Tools -> Plugins. In the 'Settings' tab make sure the 3 items are checked. Go to 'Available plugins' tab

search 'markdown'. Install 'Markdown support'. It works on Netbeans 8.0 on x64 Ubuntu 14.04 and Netbeans 8.1 on my ARM Ubuntu 16.04.

  • For Markdown or XML, the comment syntax can be found here.
  • For some reason, the order of headlines on the navigator pane is not the same as they appeared on the file. So it is better to use XML file format.
  • My hack on Netbeans options (change to use a dark color on background).
    • Profile: NetBeans
    • Syntax. Default: Foreground=White, Background=Dark Gray. Comment: Foreground=cyan. Keyword: Foreground=Orange.
    • Highlighting. Highlight Caret Row: Foreground=Dark Gray. Background=Pink.
  • For choosing colors, go to Google: rgb to hex
  • For some reason, it makes my graphical Mint desktop unstable. I have to use Ctrl + Alt + F1 and Ctrl + Alt + F8 to fix it temporarily. Deal breaker!

Netbeans.png NetbeansMarkdown.png

IntelliJ IDEA

It requires JDK. The community version is free. Download the tarball. Extract it and run bin/idea.sh. It even identifies a mismatch in my XML documentation that netbeans does not find.

  • Viewing Structure of a Source File or Alt + 7
  • Open a terminal at the bottom; Alt + F12
  • SOLARIZED color. Copy icls file to ~/.IdeaIC2016.2/config/colors directory. Restart Intellij IDEA. Go to File -> Settings -> Editor -> Colors & Fonts -> Font.
  • To deactivate spelling checking: Ctrl + Alt + s -> Editor -> Inspections -> Spelling -> Typo. Uncheck it.
  • We need to create a project for IntelliJ IDEA to automatically open the file we are working on. IDEA will create a hidden folder call .idea. For git repository, we shall create the .gitignore file contains
.idea/workspace.xml
.idea/misc.xml

Zim

  • Available in Linux, Windows & Mac.
  • The side panel contains a hierarchical view of the pages.
  • Right click on the page tab, we can create a new page or sub page.
  • On Ubuntu, the title bar is on the top of the desktop.
  • Auto save. Auto re-open the last session.
  • Handles several types of markup, like headings, bullet lists and of course bold, italic and highlighted. This markup is saved as wiki text so you can easily edit it with other editors.
  • Toggle notebook editable.
  • Insert image (cannot resize)
  • Plugins, e.g. Equation editor, R plot,
  • The default folder for storing the notes is ~/Notebook. Each page has its own file in storage.
~/Notebooks/Notes/
~/Notebooks/Notes/notebook.zim
~/Notebooks/Notes/Home.txt

If we create a 2nd page called 'Home2' with sub pages 'Subpage1' and 'subpage2' we will have

~/Notebooks/Notes/Home2.txt
~/Notebooks/Notes/Home2
~/Notebooks/Notes/Home2/subpage1.txt
~/Notebooks/Notes/Home2/subpage2.txt

Cherrytree - a hierarchical note taking application

featuring rich text and syntax highlighting, storing data in a single xml or sqlite file.

Vim

with the Tagbar plugin.

The instruction works for cpp file.

Unfortunately xml files are not supported from my testing. See its wiki for supported filetypes.

Lime

Maybe

Online IDEs

The 13 Best Browser IDEs Every Programmer Should Know About