GitHub - tmux-plugins/vim-tmux-focus-events: Make terminal vim and tmux work bet...
source link: https://github.com/tmux-plugins/vim-tmux-focus-events
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.
tmux-focus-events.vim
Update: this plugin is now obsolete and no longer needed as both neovim and
vim (since version 8.2.2345
) have native support for this functionality.
FocusGained
and FocusLost
autocommand events are not working
in terminal vim. This plugin restores them when using vim inside Tmux.
Here's where that matters:
- vim-fugitive plugin uses
FocusGained
for refreshing git branch in status line - vim-gitgutter uses
FocusGained
for refreshing ... (wait for it) git gutter - vim-tmux-clipboard uses
FocusGained
andFocusLost
for refreshing clipboard. - (get in touch if you know other popular plugins that get improved)
Also, vim-tmux-focus-events
makes the
autoread
option work properly for terminal vim. So far, this was only working in a GUI
version.
The autoread
feature comes handy when files are changed outside vim, for
example when resolving merge conflicts. When you come back to vim and try saving
a changed file you'll likely be interrupted with
E813:
Improved autoread
prevents this by automatically reading a file from disk
if it was changed. Works only if autoread
option is set (enable it with
set autoread
in .vimrc
).
Installation & Configuration
Vim plugin installation
-
Vundle
Plugin 'tmux-plugins/vim-tmux-focus-events'
-
vim-plug
Plug 'tmux-plugins/vim-tmux-focus-events'
-
Pathogen
git clone git://github.com/tmux-plugins/vim-tmux-focus-events.git ~/.vim/bundle/vim-tmux-focus-events
Tmux configuration
In order for Tmux to do its magic focus-events
option has to be set to on
.
Enable that by installing
tmux-sensible plugin, or
by setting this line in tmux.conf
:
set -g focus-events on
Testing
Tested and working on:
-
- Terminal.app
- iTerm2
-
Linux
- GNOME Terminal
- Terminator
- XTerm
- Konsole
Usage
Once installed, the plugin should "just work".
It will have no effect when running GUI vim or inside plain terminal (without Tmux).
Other goodies
- vim-tmux - vim plugin for
tmux.conf
- tmux-resurrect - restore tmux environment after system restart
Credits
Big chunk of code was taken and adapted from vitality.vim.
Other
In April 2013 a patch was submitted to vim_dev mailing list that enables this functionality natively in vim. Once merged, the functionality from the patch will make this plugin obsolete. I hope that day comes soon.
Licence
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK