mirror of
https://github.com/scopatz/nanorc
synced 2024-11-22 08:35:39 +01:00
commit
98ad894b8a
83
Readme.rst
83
Readme.rst
@ -1,83 +0,0 @@
|
||||
***************************************
|
||||
Improved Nano Syntax Highlighting Files
|
||||
***************************************
|
||||
|
||||
This repository holds ``{lang}.nanorc`` files that have improved
|
||||
definitions of syntax highlighting for various languages.
|
||||
|
||||
|
||||
1. Copy files
|
||||
~~~~~~
|
||||
|
||||
These should be placed inside of the ``~/.nano/`` directory.
|
||||
Or for system-wide installation ``/usr/share/nano-syntax-highlighting/``.
|
||||
In other words::
|
||||
|
||||
git clone git@github.com:scopatz/nanorc.git ~/.nano
|
||||
|
||||
*Note - if you have any issues (ssh was not properly configured), alternatively use::
|
||||
|
||||
git clone https://github.com/scopatz/nanorc.git ~/.nano
|
||||
|
||||
*System wide will look like so*::
|
||||
|
||||
sudo git clone https://github.com/scopatz/nanorc.git /usr/share/nano-syntax-highlighting/
|
||||
|
||||
**NOTE**: \< and \> are regular character escapes on macOS. The bug's fixed in Nano, but this might be a problem
|
||||
if you are using an older version. If this is the case, replace them respectively with [[:<:]] and [[:>:]].
|
||||
This is reported in `issue 52 <https://github.com/scopatz/nanorc/issues/52>`_
|
||||
|
||||
2. Configure ``nano``
|
||||
~~~~~~~~~
|
||||
|
||||
Once there you should add the languages you want to your
|
||||
nano configuration file ``~/.nanorc``. For example::
|
||||
|
||||
## C/C++
|
||||
include "~/.nano/c.nanorc"
|
||||
|
||||
You can also append the contents of ``~/.nano/nanorc`` into your
|
||||
``~/.nanorc`` to include all languages::
|
||||
|
||||
cat ~/.nano/nanorc >> ~/.nanorc
|
||||
|
||||
Or to be less verbose, append content of the folder in one line with wildcard::
|
||||
|
||||
## For all users
|
||||
$ echo "include $install_path/*.nanorc" >> /etc/nanorc
|
||||
## For current user
|
||||
$ echo "include $install_path/*.nanorc" >> ~/.nanorc
|
||||
|
||||
where ``$install_path`` is ``/usr/share/nano-syntax-highlighting`` or ``~/.nano/`` or ...
|
||||
|
||||
1a. Automatic installer
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
Finally, you can run an automatic installer using the following code::
|
||||
|
||||
$ curl https://raw.githubusercontent.com/scopatz/nanorc/master/install.sh | sh
|
||||
|
||||
or alternatively::
|
||||
|
||||
$ wget https://raw.githubusercontent.com/scopatz/nanorc/master/install.sh -O- | sh
|
||||
|
||||
*Note -
|
||||
some syntax definitions which exist in Nano upstream may be preferable to the ones provided by this package.
|
||||
The install.sh script may be run with ``-l`` or ``--lite`` to insert the included syntax definitions from this package
|
||||
with lower precedence than the ones provided by the standard package.
|
||||
|
||||
|
||||
1b. Distributive specific installation via package managers
|
||||
~~~~~~~~~~
|
||||
On **Arch Linux** and other *pacman/aur* based systems it is possible to::
|
||||
|
||||
$ aurman -S nano-syntax-highlighting-git
|
||||
|
||||
or search package::
|
||||
|
||||
$ aurman -Ss nano-syntax-highlight
|
||||
|
||||
Then you need to mannually add ``.nanorc``-s to user's ``~/.nanorc`` or system ``/etc/nanorc``. See **$2**
|
||||
|
||||
Acknowledgement
|
||||
~~~~~~~~~~~~~~~
|
||||
Some of these files are derived from the original nano release [`Project <https://www.nano-editor.org/>`_] [`Repository <https://git.savannah.gnu.org/cgit/nano.git>`_]
|
39
Rnw.nanorc
Normal file
39
Rnw.nanorc
Normal file
@ -0,0 +1,39 @@
|
||||
## Here is a short example for TeX files.
|
||||
##
|
||||
syntax "Tex" "\.Rnw$" "bib" "\.bib$" "cls" "\.cls$"
|
||||
color yellow "\$(\\\$|[^$])*[^\\]\$"
|
||||
color yellow "\$\$(\\\$|[^$])*[^\\]\$\$"
|
||||
icolor green "\\.|\\[A-Z]*"
|
||||
color magenta "[{}]"
|
||||
color red start="<<" end=">>="
|
||||
color white start=">>=" end="@"
|
||||
|
||||
color brightblue "%.*"
|
||||
color brightblue "^[[:space:]]*#.*"
|
||||
color brightblue start="\\begin\{comment\}" end="\\end\{comment\}"
|
||||
|
||||
color green "(class|extends|goto) ([a-zA-Z0-9_]*)"
|
||||
color green "[^a-z0-9_-]{1}(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|endif|foreach|endforeach|@|while|public|private|protected|return|true|false|null|TRUE|FALSE|NULL|const|static|extends|as|array|require|include|require_once|include_once|define|do|continue|declare|goto|print|in|namespace|use)[^a-z0-9_-]{1}"
|
||||
|
||||
# Functions
|
||||
color blue "([a-zA-Z0-9_\-$\.]*)\("
|
||||
|
||||
# Variables
|
||||
color magenta "[a-zA-Z_0-9]* <\-"
|
||||
# Special Characters
|
||||
color yellow "[.,{}();]"
|
||||
color yellow "\["
|
||||
color yellow "\]"
|
||||
color yellow "[=][^>]"
|
||||
# Numbers
|
||||
color magenta "[+-]*([0-9]\.)*[0-9]+([eE][+-]?([0-9]\.)*[0-9])*"
|
||||
color magenta "0x[0-9a-zA-Z]*"
|
||||
# Special Variables
|
||||
color blue "(\$this|parent::|self::|\$this->)"
|
||||
# Bitwise Operations
|
||||
color magenta "(\;|\||\^){1}"
|
||||
# And/Or/SRO/etc
|
||||
color green "(\;\;|\|\||::|=>|->)"
|
||||
# STRINGS!
|
||||
color red "('[^']*')|(\"[^\"]*\")"
|
||||
|
23
gradle.nanorc
Normal file
23
gradle.nanorc
Normal file
@ -0,0 +1,23 @@
|
||||
syntax "groovy" "\.(groovy|gradle)$"
|
||||
|
||||
# Keywords
|
||||
color brightblue "\<(boolean|byte|char|double|enum|float|int|long|new|short|super|this|transient)\>"
|
||||
color brightblue "\<(as|assert|break|case|catch|continue|default|do|else|finally|for|goto|if|in|return|switch|throw|try|while)\>"
|
||||
color brightblue "\<(abstract|class|extends|implements|import|interface|native|package|private|protected|public|static|strictfp|synchronized|throws|trait|void|volatile)\>"
|
||||
color brightblue "\<(const|def|final|instanceof)\>"
|
||||
color brightblue "\<(true|false|null)\>"
|
||||
|
||||
# Strings
|
||||
color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"
|
||||
|
||||
# Interpolation
|
||||
icolor yellow "\$\{[^\}]*}"
|
||||
|
||||
# Comments
|
||||
color cyan "^//.*"
|
||||
color cyan "\s//.*"
|
||||
color cyan start="^/\*(\*)?" end="\*/"
|
||||
color cyan start="\s/\*(\*)?" end="\*/"
|
||||
|
||||
# Trailing whitespace
|
||||
color ,green "[[:space:]]+$"
|
1
nanorc
1
nanorc
@ -24,6 +24,7 @@ include "~/.nano/git.nanorc"
|
||||
include "~/.nano/gitcommit.nanorc"
|
||||
include "~/.nano/glsl.nanorc"
|
||||
include "~/.nano/go.nanorc"
|
||||
include "~/.nano/gradle.nanorc"
|
||||
include "~/.nano/groff.nanorc"
|
||||
include "~/.nano/haml.nanorc"
|
||||
include "~/.nano/haskell.nanorc"
|
||||
|
107
readme.md
Normal file
107
readme.md
Normal file
@ -0,0 +1,107 @@
|
||||
# Improved Nano Syntax Highlighting Files
|
||||
|
||||
This repository holds ``{lang}.nanorc`` files that have improved definitions of syntax highlighting for various languages.
|
||||
|
||||
## Installation
|
||||
|
||||
There are three ways to install this repo.
|
||||
|
||||
### 1. Automatic installer
|
||||
|
||||
Copy the following code to download and run the installer script:
|
||||
|
||||
```sh
|
||||
curl https://raw.githubusercontent.com/scopatz/nanorc/master/install.sh | sh
|
||||
```
|
||||
|
||||
If your machine doesn't have `curl` command, use this code:
|
||||
|
||||
```sh
|
||||
wget https://raw.githubusercontent.com/scopatz/nanorc/master/install.sh -O- | sh
|
||||
```
|
||||
|
||||
#### Note
|
||||
|
||||
Some syntax definitions which exist in Nano upstream may be preferable to the ones provided by this package.
|
||||
The ` install.sh` script may be run with `-l` or `--lite` to insert the included syntax definitions from this package with *lower* precedence than the ones provided by the standard package.
|
||||
|
||||
### 2. Package managers
|
||||
|
||||
The follow table lists all systems with this package published.
|
||||
Fell free to add your official package manager.
|
||||
> Systems that are based in others' package managers or repositories are compatible. For example: `pacman/aur` based systems are compatible with `Arch Linux`.
|
||||
|
||||
| System | Command |
|
||||
| ---------- | ---------------------------------------- |
|
||||
| Arch Linux | `aurman -Ss nano-syntax-highlight` |
|
||||
| | `aurman -S nano-syntax-highlighting-git` |
|
||||
|
||||
### 3. Clone repo (copy the files)
|
||||
|
||||
The files should be placed inside of the `~/.nano/` directory.
|
||||
|
||||
You can put the files in another directory inside the correct `.nano` folder.
|
||||
For example: `~/.nano/nanorc/`.
|
||||
For readability will use `$install_path` for the path of your choose (in *system wide* the path is always `/usr/share/nano-syntax-highlighting/`).
|
||||
|
||||
For user, only run:
|
||||
|
||||
`git clone git@github.com:scopatz/nanorc.git $install_path` or
|
||||
`git clone https://github.com/scopatz/nanorc.git $install_path`
|
||||
|
||||
For system wide, run:
|
||||
|
||||
`sudo git clone https://github.com/scopatz/nanorc.git $install_path`
|
||||
|
||||
## Configuration
|
||||
|
||||
After installation, you need to inform `nano` to used the new highlight files.
|
||||
The configuration file is located at `~/.nanorc`, for users, and at `/etc/nanorc`, for system wide.
|
||||
If this file doesn't exist, create a new one.
|
||||
|
||||
Again there are three ways:
|
||||
|
||||
### 1. Include all
|
||||
|
||||
Append the content of the folder in one line, with wildcard::
|
||||
|
||||
`echo "include $install_path/*.nanorc" >> ~/.nanorc` or
|
||||
`echo "include $install_path/*.nanorc" >> /etc/nanorc`
|
||||
|
||||
### 2. Include/append our `nanorc` file
|
||||
|
||||
Simply run:
|
||||
|
||||
`cat $install_path/nanorc >> ~/.nanorc` or
|
||||
`cat $install_path/nanorc >> /etc/nanorc`
|
||||
|
||||
### 3. One by one
|
||||
|
||||
Add your preferable languages one by onento the file. For example:
|
||||
|
||||
```
|
||||
## C/C++
|
||||
include "~/.nano/c.nanorc"
|
||||
```
|
||||
|
||||
## Tricks & Tweaks
|
||||
|
||||
### MacOS
|
||||
|
||||
`\<` and `\>` are regular character escapes on MacOS.
|
||||
The bug is fixed in Nano, but this might be a problem if you are using an older version
|
||||
If this is the case, replace them respectively with `[[:<:]]` and `[[:>:]]`.
|
||||
This is reported in [Issue 52](https://github.com/scopatz/nanorc/issues/52).
|
||||
|
||||
### Why not include the original files?
|
||||
|
||||
It is a good question, but the way that nano reads the files matters.
|
||||
In other words, the regex instructions should be in a _specific order_ (you can see that in some nanorc files).
|
||||
So, if we `include` or `extendsyntax` (yes, there is also this command) the colors or other things won't be work well.
|
||||
The best way to do is copying and editing the original files (if it is needed).
|
||||
The bug about it: https://savannah.gnu.org/bugs/index.php?5698
|
||||
But if some original nanorc file needs an update, feel free to [patch it](https://savannah.gnu.org/patch/?func=additem&group=nano)!
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
Some of these files are derived from the original [Nano](https://www.nano-editor.org) editor [repo](https://git.savannah.gnu.org/cgit/nano.git)
|
Loading…
Reference in New Issue
Block a user