I've set the mapping keys as follows:
" Easy indent for code blocks
nmap <tab> v>
nmap <s-tab> v<
vmap <tab> >gv
vmap <s-tab> <gv
That works good. But, when I installed UltiSnips
by vundle, the Tab key does't work as indent action, it will remove multi-line codes which I selected. I know this is because the default setting of UltiSnips
. I would like to remain the Tab mapping for UltiSnips
to trigger its functions, How do I solve the problem of using the TAB key to indent code blocks? Thanks!
Looking at UltiSnips documentation via :h UltiSnips-triggers
says this:
You can define the keys used to trigger UltiSnips actions by setting global
variables. Variables define the keys used to expand a snippet, jump forward
and jump backwards within a snippet, and list all available snippets in the
current expand context. The variables with their default values are: >
g:UltiSnipsExpandTrigger <tab>
g:UltiSnipsListSnippets <c-tab>
g:UltiSnipsJumpForwardTrigger <c-j>
g:UltiSnipsJumpBackwardTrigger <c-k>
So set something like this in your ~/.vimrc` file:
let g:UltiSnipsExpandTrigger = '<f5>'
However you may want to reconsider your <tab>
mappings. I suggest you remove them and use >>
or <<
in normal mode and >
or <
in visual mode to do the initial indent/un-indent then repeat the action via .
, the redo command. If you ever indent/un-indent too far then just undo it via u
.
For more help see:
:h >>
:h .
:h u