GitHub - mcchrish/nnn.vim: nnn vim plugin
source link: https://github.com/mcchrish/nnn.vim
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
nnn.vim
nnn and vim/neovim integration.
Requirements
- nnn (minimum version 2.2)
- Neovim or Vim 8.1 with terminal support
Install
You must install nnn itself. Instructions here.
Then install using your favorite plugin manager:
" using vim-plug Plug 'mcchrish/nnn.vim'
Usage
To open nnn as a file picker in vim/neovim, use the command :NnnPicker
or
:Np
or the key-binding <leader>n
. You can pass a directory to :NnnPicker
command and opens nnn from there e.g. :NnnPicker path/to/somewhere
.
Once you select one or more files and press enter, vim quits the nnn window and opens the first selected file and add the remaining files to the arg list/buffer list.
Pressing enter on a file in nnn will pick any earlier selection, pick the file and exit nnn.
To discard selection and exit, press ^G.
Please visit the complete documentation by running :help nnn
.
Configurations
Custom mappings
" Disable default mappings let g:nnn#set_default_mappings = 0 " Then set your own nnoremap <silent> <leader>nn :NnnPicker<CR> " Or override " Start nnn in the current file's directory nnoremap <leader>n :NnnPicker '%:p:h'<CR>
Layout
" Opens the nnn window in a split let g:nnn#layout = 'split' " or vertical split, tabedit etc. " Or pass a dictionary with window size let g:nnn#layout = { 'left': '~20%' } " or right, up, down
Action
You can set extra key-bindings for opening files in different ways. Nothing is set by default to not override nnn's own key-bindings.
let g:nnn#action = { \ '<c-t>': 'tab split', \ '<c-x>': 'split', \ '<c-v>': 'vsplit' }
For example, when inside an nnn window, pressing ctrl-t will open the selected file in a tab, instead of the current window. ctrl-x will open in a split an so on. Meanwhile for multi selected files will be loaded in the buffer list.
Command override
When you want to override the default nnn command and add some extra flags. Example you want to start nnn in light mode.
let g:nnn#command = 'nnn -l' " or pass some env variables let g:nnn#command = 'DISABLE_FILE_OPEN_ON_NAV=1 nnn -l'
nnn#pick()
The nnn#pick([<dir>][,<opts>])
function can be called with custom directory
and additional options such as opening file in splits or tabs. Basically a more
configurable version of :NnnPicker
command.
call nnn#pick('~/some-files', { 'edit': 'vertical split' }) " Then you can do all kinds of mappings if you want
opts
can be:
edit
- type of window the select file will be open.layout
- same asg:nnn#layout
and overrides it if specified.
Environment variables
You can define env variables in vimrc
and nnn will detect it.
let $DISABLE_FILE_OPEN_ON_NAV=1
Credits
Main nnn program: https://github.com/jarun/nnn
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK