GitHub - wellle/tmux-complete.vim: Vim plugin for insert mode completion of word...
source link: https://github.com/wellle/tmux-complete.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
tmux-complete.vim
Vim plugin for insert mode completion of words in adjacent tmux panes
Motivation
If you're using Vim in tandem with Tmux you might be familiar with this pesky situation:
You're happily editing your lovely files in Vim, when you notice you need to type a word that you can see in a different Tmux pane right next to Vim. This might be some secret key found in your REPL or the name of a failing test.
Usually the interesting text is too short to warrant switching panes and going into Tmux' copy mode, so you end typing it out again.
But fear no longer!
This plugin adds a completion function that puts all words visible in your Tmux
panes right under your fingertips. Just enter insert mode, start typing any
word you see and press <C-X><C-U>
to the trigger user defined insert mode
completion.
It also completes words that are scrolled off, hidden in background tmux windows and even different tmux sessions. And it even works from gvim or MacVim!
Third party integration
Tmux complete is automatically integrated with the following plugins:
-
To see tmux completions in your asyncomplete pop-up you will need the async plugin as well:
Plug 'prabirshrestha/async.vim' Plug 'prabirshrestha/asyncomplete.vim' Plug 'wellle/tmux-complete.vim'
This integration comes with sensible defaults, but you have some options to fine tune it. To start put a block like this into your vimrc:
let g:tmuxcomplete#asyncomplete_source_options = { \ 'name': 'tmuxcomplete', \ 'whitelist': ['*'], \ 'config': { \ 'splitmode': 'words', \ 'filter_prefix': 1, \ 'show_incomplete': 1, \ 'sort_candidates': 0, \ 'scrollback': 0, \ 'truncate': 0 \ } \ }
With
name
you can change how it appears in the pop-up.whitelist
makes it possible to enable this integration only for certain filetypes.The
splitmode
can bewords
,lines
,ilines
, orlinies,words
.ilines
stands for "inner line", starting with a word character (ignoring special chararcters in front) andilines,words
completes both lines and words.If
filter_prefix
is enabled, we will filter candidates based on the entered text, this usually gives faster results. For fuzzy matching this should be disabled.If there you are using many tmux windows with a lot of text in it, completion can be slow. That's why we start showing candidates as soon as they come in. If you prefer to only see candidates once the list is complete, you can disable this by setting
show_incomplete
.sort_candidates
controls whether we sort candidates from tmux externally. If it's enabled we can't get early incomplete results. If you haveshow_incomplete
disabled, this might get slightly quicker results and potentially better sorted completions.If
scrollback
is positive we will consider that many lines in each tmux pane's history for completion.If 'truncate' is positive, then only prefixes of the matches up to this length are shown in the completion pop-up. Upon selection the full match is completed of course.
-
You can see tmux completions right in your neocomplete pop-up.
-
You can see tmux completions right in your neocomplcache pop-up.
-
You can see tmux completions right in your deoplete pop-up.
-
You can use tmux complete as a unite source:
Unite tmuxcomplete " opens a menu containing words from adjacent tmux windows Unite tmuxcomplete/lines " opens a menu containing words from adjacent tmux windows and lines where they were found
Installation
Use your favorite plugin manager.
-
Plug 'wellle/tmux-complete.vim'
-
NeoBundle 'wellle/tmux-complete.vim'
-
Bundle 'wellle/tmux-complete.vim'
-
git clone git://github.com/wellle/tmux-complete.vim.git ~/.vim/bundle/tmux-complete.vim
Settings
Use the #trigger
option to tune the way you interact with
tmux-complete by putting one of these lines into your .vimrc
:
-
By default, tmux-complete sets Vim's
completefunc
, that can be invoked with<C-X><C-U>
.let g:tmuxcomplete#trigger = 'completefunc'
-
Alternatively, you can use Vim's
omnifunc
, that can be invoked with<C-X><C-O>
. This setting also integrates with YouCompleteMe so you can see Tmux completions when hitting<C-Space>
.let g:tmuxcomplete#trigger = 'omnifunc'
-
If you're using the neocomplete, neocomplcache or deoplete integration, you probably don't need the additional trigger.
let g:tmuxcomplete#trigger = ''
The trigger function itself is named tmuxcomplete#complete
(in case you want
to call it manually).
Recommend
-
264
Unicode plugin A Vim plugin for handling unicode and digraphs characters This plugin aims to make the handling of unicode and digraphs chars in Vim easier. It serves 3 purposes: Complete Cha...
-
165
Introduction Targets.vim is a Vim plugin that adds various text objects to give you more targets to
-
37
vim-clang Use of clang to parse and complete C/C++ source files.
-
148
tmux.vim Vim plugin for .tmux.conf. Features When you edit .tmux.conf you get: proper syntax highlighting commentstring - so that plugins like
-
53
Lets kick this off with a bit of trivia: This is the biggest internal update/PR of targets.vim ever (ignoring test files). I've worked on this on and off for over a year. More than 50% of the code (excluding tests) has been changed.The main moti...
-
11
Re: xen: Can't insert balloon page into VM userspace (WAS Re: [Xen-devel] [linux-linus bisection] complete test-arm64-arm64-xl-xsm)Linux-mm Archive on lore.kernel.org help /...
-
336
nvim-compe Auto completion plugin for nvim. Table Of Contents Concept Lua source & Vim source Better matching algorithm Support LSP completion features (trigger character, isIncomp...
-
2
Solve Error insert “Dimensions” to complete ReferenceType in Java We usually get this error in java when we are trying to pass primitive data type in the generic type declaration. The reason we get this error...
-
1593
nvim-cmp A completion plugin for neovim coded by Lua. Status can be used. feedbacks are wanted. Concept Support pairs-wise plugin automatically Fully customizable via Lua functions
-
4
Make TMUX Look Amazing in 3 Minutes! - complete tutorial
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK