171 lines
5.5 KiB
Text
171 lines
5.5 KiB
Text
|
goyo.txt goyo Last change: April 2 2017
|
|||
|
GOYO - TABLE OF CONTENTS *goyo* *goyo-toc*
|
|||
|
==============================================================================
|
|||
|
|
|||
|
goyo.vim (고요)
|
|||
|
Installation
|
|||
|
Usage
|
|||
|
Dimension expression
|
|||
|
Configuration
|
|||
|
Callbacks
|
|||
|
Inspiration
|
|||
|
Pros.
|
|||
|
License
|
|||
|
|
|||
|
GOYO.VIM (고요) *goyo-vim*
|
|||
|
==============================================================================
|
|||
|
|
|||
|
Distraction-free writing in Vim.
|
|||
|
|
|||
|
https://raw.github.com/junegunn/i/master/goyo.png
|
|||
|
|
|||
|
(Color scheme: {seoul256}{1})
|
|||
|
|
|||
|
Best served with {limelight.vim}{2}.
|
|||
|
|
|||
|
{1} https://github.com/junegunn/seoul256.vim
|
|||
|
{2} https://github.com/junegunn/limelight.vim
|
|||
|
|
|||
|
|
|||
|
INSTALLATION *goyo-installation*
|
|||
|
==============================================================================
|
|||
|
|
|||
|
Use your favorite plugin manager.
|
|||
|
|
|||
|
*:PlugInstall*
|
|||
|
|
|||
|
- {vim-plug}{3}
|
|||
|
1. Add `Plug 'junegunn/goyo.vim'` to .vimrc
|
|||
|
2. Run `:PlugInstall`
|
|||
|
|
|||
|
{3} https://github.com/junegunn/vim-plug
|
|||
|
|
|||
|
|
|||
|
USAGE *goyo-usage*
|
|||
|
==============================================================================
|
|||
|
|
|||
|
*:Goyo*
|
|||
|
|
|||
|
- `:Goyo`
|
|||
|
- Toggle Goyo
|
|||
|
- `:Goyo [dimension]`
|
|||
|
- Turn on or resize Goyo
|
|||
|
- `:Goyo!`
|
|||
|
- Turn Goyo off
|
|||
|
|
|||
|
The window can be resized with the usual count]<CTRL-W + `>`, `<`, `+`, `-`
|
|||
|
keys.
|
|||
|
|
|||
|
|
|||
|
< Dimension expression >______________________________________________________~
|
|||
|
*goyo-dimension-expression*
|
|||
|
|
|||
|
The expected format of a dimension expression is
|
|||
|
`[WIDTH][XOFFSET][x[HEIGHT][YOFFSET]]`. `XOFFSET` and `YOFFSET` should be
|
|||
|
prefixed by `+` or `-`. Each component can be given in percentage.
|
|||
|
>
|
|||
|
" Width
|
|||
|
Goyo 120
|
|||
|
|
|||
|
" Height
|
|||
|
Goyo x30
|
|||
|
|
|||
|
" Both
|
|||
|
Goyo 120x30
|
|||
|
|
|||
|
" In percentage
|
|||
|
Goyo 120x50%
|
|||
|
|
|||
|
" With offsets
|
|||
|
Goyo 50%+25%x50%-25%
|
|||
|
<
|
|||
|
|
|||
|
CONFIGURATION *goyo-configuration*
|
|||
|
==============================================================================
|
|||
|
|
|||
|
*g:goyo_width* *g:goyo_height* *g:goyo_linenr*
|
|||
|
|
|||
|
- `g:goyo_width` (default: 80)
|
|||
|
- `g:goyo_height` (default: 85%)
|
|||
|
- `g:goyo_linenr` (default: 0)
|
|||
|
|
|||
|
|
|||
|
< Callbacks >_________________________________________________________________~
|
|||
|
*goyo-callbacks*
|
|||
|
|
|||
|
By default, {vim-airline}{4}, {vim-powerline}{5}, {powerline}{6},
|
|||
|
{lightline.vim}{7}, {vim-signify}{8}, and {vim-gitgutter}{9} are temporarily
|
|||
|
disabled while in Goyo mode.
|
|||
|
|
|||
|
If you have other plugins that you want to disable/enable, or if you want to
|
|||
|
change the default settings of Goyo window, you can set up custom routines to
|
|||
|
be triggered on `GoyoEnter` and `GoyoLeave` events.
|
|||
|
>
|
|||
|
function! s:goyo_enter()
|
|||
|
silent !tmux set status off
|
|||
|
silent !tmux list-panes -F '\#F' | grep -q Z || tmux resize-pane -Z
|
|||
|
set noshowmode
|
|||
|
set noshowcmd
|
|||
|
set scrolloff=999
|
|||
|
Limelight
|
|||
|
" ...
|
|||
|
endfunction
|
|||
|
|
|||
|
function! s:goyo_leave()
|
|||
|
silent !tmux set status on
|
|||
|
silent !tmux list-panes -F '\#F' | grep -q Z && tmux resize-pane -Z
|
|||
|
set showmode
|
|||
|
set showcmd
|
|||
|
set scrolloff=5
|
|||
|
Limelight!
|
|||
|
" ...
|
|||
|
endfunction
|
|||
|
|
|||
|
autocmd! User GoyoEnter nested call <SID>goyo_enter()
|
|||
|
autocmd! User GoyoLeave nested call <SID>goyo_leave()
|
|||
|
<
|
|||
|
More examples can be found here: {Customization}{10}
|
|||
|
|
|||
|
{4} https://github.com/bling/vim-airline
|
|||
|
{5} https://github.com/Lokaltog/vim-powerline
|
|||
|
{6} https://github.com/Lokaltog/powerline
|
|||
|
{7} https://github.com/itchyny/lightline.vim
|
|||
|
{8} https://github.com/mhinz/vim-signify
|
|||
|
{9} https://github.com/airblade/vim-gitgutter
|
|||
|
{10} https://github.com/junegunn/goyo.vim/wiki/Customization
|
|||
|
|
|||
|
|
|||
|
INSPIRATION *goyo-inspiration*
|
|||
|
==============================================================================
|
|||
|
|
|||
|
- {LiteDFM}{11}
|
|||
|
- {VimRoom}{12}
|
|||
|
|
|||
|
{11} https://github.com/bilalq/lite-dfm
|
|||
|
{12} http://projects.mikewest.org/vimroom/
|
|||
|
|
|||
|
|
|||
|
PROS. *goyo-pros*
|
|||
|
==============================================================================
|
|||
|
|
|||
|
1. Works well with splits. Doesn't mess up with the current window arrangement
|
|||
|
2. Works well with popular statusline plugins
|
|||
|
3. Prevents accessing the empty windows around the central buffer
|
|||
|
4. Can be closed with any of `:q[uit]`, `:clo[se]`, `:tabc[lose]`, or `:Goyo`
|
|||
|
5. Can dynamically change the width of the window
|
|||
|
6. Adjusts its colors when color scheme is changed
|
|||
|
7. Realigns the window when the terminal (or window) is resized or when the size
|
|||
|
of the font is changed
|
|||
|
8. Correctly hides colorcolumns and Emojis in statusline
|
|||
|
9. Highly customizable with callbacks
|
|||
|
|
|||
|
|
|||
|
LICENSE *goyo-license*
|
|||
|
==============================================================================
|
|||
|
|
|||
|
MIT
|
|||
|
|
|||
|
|
|||
|
==============================================================================
|
|||
|
vim:tw=78:sw=2:ts=2:ft=help:norl:nowrap:
|