5 changed files with 148 additions and 0 deletions
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
MIT License |
||||
|
||||
Copyright (c) 2017 Dylan Araps |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
of this software and associated documentation files (the "Software"), to deal |
||||
in the Software without restriction, including without limitation the rights |
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
copies of the Software, and to permit persons to whom the Software is |
||||
furnished to do so, subject to the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be included in all |
||||
copies or substantial portions of the Software. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
SOFTWARE. |
@ -0,0 +1,66 @@
@@ -0,0 +1,66 @@
|
||||
# fff.vim |
||||
|
||||
A plugin for vim/neovim which allows you to use [**`fff`**](https://github.com/dylanaraps/fff) as a file opener. |
||||
|
||||
## Table of Contents |
||||
|
||||
<!-- vim-markdown-toc GFM --> |
||||
|
||||
* [Installation](#installation) |
||||
* [Usage](#usage) |
||||
* [Command](#command) |
||||
* [Easy hotkey](#easy-hotkey) |
||||
* [Customization](#customization) |
||||
* [Split Size](#split-size) |
||||
* [Split Direction](#split-direction) |
||||
|
||||
<!-- vim-markdown-toc --> |
||||
|
||||
## Installation |
||||
|
||||
Using [vim-plug](https://github.com/junegunn/vim-plug): |
||||
|
||||
```vim |
||||
Plug 'dylanaraps/fff.vim' |
||||
``` |
||||
|
||||
Then run `:PlugUpdate` |
||||
|
||||
## Usage |
||||
|
||||
### Command |
||||
|
||||
```vim |
||||
" Open in current directory. |
||||
:F |
||||
|
||||
" Open in ~/dotfiles (or other path) |
||||
:F ~/dotfiles |
||||
``` |
||||
|
||||
### Easy hotkey |
||||
|
||||
```vim |
||||
" Open fff on press of 'f' |
||||
nnoremap f :F<CR> |
||||
``` |
||||
|
||||
## Customization |
||||
|
||||
### Split Size |
||||
|
||||
Default: `let g:fff#split = "10new"` |
||||
|
||||
```vim |
||||
# Vertical split (NERDtree style). |
||||
let g:fff#split = "30vnew" |
||||
``` |
||||
|
||||
### Split Direction |
||||
|
||||
Default: `let g:fff#split_direction = "splitbelow splitright"` |
||||
|
||||
```vim |
||||
# Open split on the left side (NERDtree style). |
||||
let g:fff#split_direction = "nosplitbelow nosplitright" |
||||
``` |
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
" fff.vim |
||||
|
||||
let g:fff#split = get(g:, 'fff#split', '10new') |
||||
let g:fff#split_direction = get(g:, 'fff#split_direction', |
||||
\ 'splitbelow splitright') |
||||
|
||||
function! fff#open_file(...) |
||||
let tmp_file = $XDG_CACHE_HOME |
||||
|
||||
if !isdirectory(tmp_file) |
||||
let tmp_file = $HOME . "/.cache" |
||||
endif |
||||
|
||||
let tmp_file .= "/fff/opened_file" |
||||
let tmp_file = fnameescape(tmp_file) |
||||
bd! |
||||
|
||||
if filereadable(tmp_file) |
||||
let file_data = readfile(tmp_file) |
||||
execute delete(tmp_file) |
||||
else |
||||
return |
||||
endif |
||||
|
||||
if filereadable(file_data[0]) |
||||
execute "e " . file_data[0] |
||||
endif |
||||
endfunction |
||||
|
||||
function! fff#Run(command) |
||||
execute 'setlocal' . ' ' . g:fff#split_direction |
||||
execute g:fff#split |
||||
execute 'setlocal nonumber' |
||||
execute 'setlocal norelativenumber' |
||||
|
||||
if has('nvim') |
||||
call termopen('fff -p ' . a:command, |
||||
\ {'on_exit': function('fff#open_file') }) |
||||
startinsert |
||||
else |
||||
let buffer = term_start([&shell, &shellcmdflag, 'fff -p ' . a:command], |
||||
\ {'curwin': 1, 'exit_cb': function('fff#open_file')}) |
||||
|
||||
if !has('patch-8.0.1261') |
||||
call term_wait(buffer, 20) |
||||
endif |
||||
endif |
||||
endfunction |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
" fff.vim |
||||
|
||||
if exists('g:loaded_fff') |
||||
finish |
||||
endif |
||||
let g:loaded_fff = 1 |
||||
|
||||
command! -nargs=* -complete=dir F call fff#Run(<q-args>) |
Loading…
Reference in new issue