diff --git a/README.md b/README.md index a8eb0b5f..e02c4c9e 100644 --- a/README.md +++ b/README.md @@ -61,26 +61,6 @@ We need contributors. Please visit the [ToDo list](https://github.com/jarun/nnn/ - [Help](#help) - [Quickstart](#quickstart) - [How to](#how-to) - - [add bookmarks](#add-bookmarks) - - [copy file paths](#copy-file-paths) - - [to clipboard](#to-clipboard) - - [get selection manually](#get-selection-manually) - - [cd on quit](#cd-on-quit) - - [(neo)vim plugin](#neovim-plugin) - - [file picker](#file-picker) - - [run custom scripts](#run-custom-scripts) - - [sample scripts](#sample-scripts) - - [launch applications](#launch-applications) - - [change dir color](#change-dir-color) - - [integrate patool](#integrate-patool) - - [remote transfers](#remote-transfers) - - [prompt shortcuts](#prompt-shortcuts) - - [set idle timeout](#set-idle-timeout) - - [hot-plugged drives](#hot-plugged-drives) - - [tmux configuration](#tmux-configuration) - - [BSD terminal issue](#bsd-terminal-issue) - - [restrict file open](#restrict-file-open) - - [restrict 0-byte files](#restrict-0-byte-files) - [Why fork?](#why-fork) - [Mentions](#mentions) - [Developers](#developers) @@ -405,157 +385,7 @@ To lookup keyboard shortcuts at runtime, press ?. #### HOW TO -#### add bookmarks - -Set environment variable `NNN_BMS` as a string of `key_char:location` pairs (max 10) separated by semicolons (`;`): - - export NNN_BMS='d:~/Documents;u:/home/user/Cam Uploads;D:~/Downloads/' - -NOTE: Bookmark keys should be single-character to use them in combination with the Leader key. - -#### copy file paths - -##### to clipboard - -Along with default copy, `nnn` can pipe the absolute path of the current file or multiple files to a copier script. For example, you can use `xsel` on Linux or `pbcopy` on macOS. Here's a sample [copier script](https://github.com/jarun/nnn/blob/master/scripts/user-scripts/copier.sh). - -To inform `nnn` of the executable copier script location: - - export NNN_COPIER="/path/to/copier.sh" - -##### get selection manually - -NOTE: In the following examples we assume the copy file is at `/home/user/.nnncp`. - -The file paths are `NUL`-terminated, so additional processing is required to make them usable. - -To get a space-separated list of the file paths in selection: - - cat /home/user/.nnncp | xargs -0 echo - -To get a newline-separated list of the file paths in selection: - - # bash/zsh - ls -ltr `cat /home/user/.nnncp | tr '\0' '\n'` - ls -ltr $(cat /home/user/.nnncp | tr '\0' '\n') - - # fish - ls -ltr (cat /home/user/.nnncp | tr '\0' '\n') - -An alias may be handy, e.g. when you want to copy selection at the _run a command_ prompt: - - alias ncp="cat /home/user/.nnncp | tr '\0' '\n'" - -so you can easily handle files together: - - # bash/zsh - ls -ltr `ncp` - ls -ltr $(ncp) - - # fish - ls -ltr (ncp) - -To get the list in a file: - - ncp > out.txt - -#### cd on quit - -To quit `nnn` and switch to the directory last opened follow the instructions below. - -Pick the appropriate file for your shell from [`scripts/quitcd`](scripts/quitcd) and add the contents to your shell's rc file. You'll need to spawn a new shell for the change to take effect. You should start `nnn` as `n` (or modify the function name to something else). To change directory on quit press `^G` while exiting. - -As you might notice, `nnn` uses the environment variable `NNN_TMPFILE` to write the last visited directory path. You can change it. - -#### (neo)vim plugin - -`nnn` can be used as a file picker/chooser within vim or neovim. Find the plugin [here](https://github.com/mcchrish/nnn.vim). - -#### file picker - -To use `nnn` as a file picker and redirect the output to other programs, use [picker.sh](https://github.com/jarun/nnn/blob/master/scripts/user-scripts/picker.sh). - -Ways to pick files: - -- use selection and press q to quit -- press Enter to pick any earlier selection and the current entry (to avoid selecting the last file in the selection twice, press q instead). - -Notes: - -- pressing Enter on a directory enters it; when trying to pick a directory, e.g. to pipe to `cd`, use single file selection and press q -- to discard selection and quit, press ^G - -#### run custom scripts - -`nnn` can invoke custom scripts in the current directory with the currently selected file name as argument 1. - -Export the absolute path to the directory with your scripts or a single script: - - export NNN_SCRIPT=/home/user/scripts - OR - export NNN_SCRIPT=/usr/local/bin/nscript.sh - -Press R to run the script in the current directory. You can also use this key to cancel choosing a script from the script directory and get back to the original directory. - -##### sample scripts - -Sample scripts for use cases like sxiv or fzy integration are under [user-scripts](https://github.com/jarun/nnn/tree/master/scripts/user-scripts). Feel free to contribute yours! - -#### launch applications - -Applications can be launched from the _run a command_ prompt. Use `&` to launch GUI applications in the background. - -#### change dir color - -The default color for directories is blue. Option `-c` accepts color codes from 0 to 7 to use a different color: - - 0-black, 1-red, 2-green, 3-yellow, 4-blue, 5-magenta, 6-cyan, 7-white - -Any other value disables colored directories. - -#### integrate patool - -On systems where `atool` is not available but `patool` is, drop two copies of the Python3 script [natool](https://github.com/jarun/nnn/tree/master/scripts/natool) as `atool` and `apack` somewhere in `$PATH`. - -#### remote transfers - -lftp can be used with `nnn` for automated remote transfers or copying a selection to a server. Visit the [wiki page](https://github.com/jarun/nnn/wiki/simplify-remote-transfers-with-lftp) for more details on the integration. - -#### prompt shortcuts - -The prompts (expect filter prompt) support some bash-like command-line shortcuts - ^A, ^E, ^U. - -Key ^L clears and Esc exits _any_ prompt. - -#### set idle timeout - -The terminal locker is disabled by default. To set the wait time in seconds, use environment variable `NNN_IDLE_TIMEOUT`. - -#### hot-plugged drives - -Enable volume management in your DE file manager and set removable drives or media to be auto-mounted when inserted. Then visit the usual mount point location (`/mnt` or `/media/user`) in `nnn`. - -#### tmux configuration - -`nnn` might not handle keypresses correctly when used with tmux (see issue #104 for more details). Set `TERM=xterm-256color` to address it. - -#### BSD terminal issue - -By default in OpenBSD & FreeBSD, `stty` maps ^Y to `DSUSP`. This means that typing ^Y will suspend `nnn` as if you typed ^Z (you can bring `nnn` back to the foreground by issuing `fg`) instead of entering multi-copy mode. You can check this with `stty -a`. If it includes the text `dsusp = ^Y`, issuing `stty dsusp undef` will disable this `DSUSP` and let `nnn` receive the ^Y instead. - -#### restrict file open - -In order to disable opening files on accidental navigation key ( or l) press: - - export NNN_RESTRICT_NAV_OPEN=1 - -Use Enter to open files. - -#### restrict 0-byte files - -Restrict opening 0-byte files due to [unexpected behaviour](https://github.com/jarun/nnn/issues/187); use _edit_ or _open with_ to open the file. - - export NNN_RESTRICT_0B=1 +Please visit the [How to](https://github.com/jarun/nnn/wiki/How-to) wiki page. #### WHY FORK?