mirror of
https://github.com/junegunn/goyo.vim.git
synced 2025-11-08 11:23:51 -05:00
9e04ccdb9d79333d718c13e2e9ede76cd5af73a7
This does not break backward compatibility, g:goyo_callbacks is still allowed.
goyo.vim (고요)
Distraction-free writing in Vim.
(Color scheme: seoul256)
Best served with limelight.vim.
Installation
Use your favorite plugin manager.
- vim-plug
- Add
Plug 'junegunn/goyo.vim'to .vimrc - Run
:PlugInstall
- Add
Usage
:Goyo- Toggle Goyo
:Goyo [width]- Turn on or resize Goyo
:Goyo!- Turn Goyo off
You might want to define a map for toggling it:
nnoremap <Leader>G :Goyo<CR>
Configuration
g:goyo_width(default: 80)g:goyo_margin_top(default: 4)g:goyo_margin_bottom(default: 4)g:goyo_linenr(default: 0)
Callbacks
By default, vim-airline, vim-powerline, powerline, lightline.vim, vim-signify, and vim-gitgutter 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
set noshowmode
set noshowcmd
set scrolloff=999
Limelight
" ...
endfunction
function! s:goyo_leave()
silent !tmux set status on
set showmode
set showcmd
set scrolloff=5
Limelight!
" ...
endfunction
autocmd! User GoyoEnter
autocmd! User GoyoLeave
autocmd User GoyoEnter call <SID>goyo_enter()
autocmd User GoyoLeave call <SID>goyo_leave()
More examples can be found here: Customization
Inspiration
Pros.
- Works well with splits. Doesn't mess up with the current window arrangement
- Works well with popular statusline plugins
- Prevents accessing the empty windows around the central buffer
- Can be closed with any of
:q[uit],:clo[se],:tabc[lose],:bd[elete], or:Goyo - Can dynamically change the width of the window
- Adjusts its colors when color scheme is changed
- Realigns the window when the terminal (or window) is resized or when the size of the font is changed
- Correctly hides colorcolumns and Emojis in statusline
- Highly customizable with callbacks
License
MIT
Languages
Vim Script
100%
