Как сделать ярлык для: tabnew,: tabn,: tabp? - PullRequest
15 голосов
/ 10 июля 2011

В vim я хотел бы сократить :tabnew до :tn, :tabp до :th, :tabn до :tl где-нибудь в моем .vimrc. Есть идеи, как мне переназначить такие команды?

Ответы [ 5 ]

23 голосов
/ 10 июля 2011

Использование cabbrev :

ca tn tabnew
ca th tabp
ca tl tabn
6 голосов
/ 24 июня 2013

Вы можете добавить следующий код в файл ~ / .vimrc и легко перемещаться по вкладкам.

nnoremap th  :tabfirst<CR>
nnoremap tj  :tabnext<CR>
nnoremap tk  :tabprev<CR>
nnoremap tl  :tablast<CR>
nnoremap tt  :tabedit<Space>
nnoremap tn  :tabnext<Space>
nnoremap tm  :tabm<Space>
nnoremap td  :tabclose<CR>
5 голосов
/ 02 июня 2015

Даниэль Куллманн указывает, что в настоящее время принятый ответ опасен.

Если вы используете ca tn tabnew, каждый раз, когда вы набираете строку th, она может неожиданно развернуться.

Например, :!ls /tmp/tn/ расширится до :!ls /tmp/tabnew/

Подход, указанный в этого ответа , не страдает той же проблемой. Используя это выглядело бы так:

cnoreabbrev <expr> tn getcmdtype() == ":" && getcmdline() == 'tn' ? 'tabnew' : 'tn'
cnoreabbrev <expr> th getcmdtype() == ":" && getcmdline() == 'th' ? 'tabp' : 'th'
cnoreabbrev <expr> tl getcmdtype() == ":" && getcmdline() == 'tl' ? 'tabn' : 'tl'
cnoreabbrev <expr> te getcmdtype() == ":" && getcmdline() == 'te' ? 'tabedit' : 'te'

Эти настройки гарантируют, что расширение выполняется только по командам и больше нигде.

4 голосов
/ 19 марта 2015
"To create a new tab
nnoremap <C-t> :tabnew<Space>
inoremap <C-t> <Esc>:tabnew<Space>

"Tab Navigation
nnoremap <S-h> gT
nnoremap <S-l> gt
4 голосов
/ 14 июля 2011

Есть лучший способ навигации по вкладкам.Просто попробуйте (C для контроля):

nmap <silent> <C-n> :tabnext<CR>
nmap <silent> <C-p> :tabprev<CR>
imap <silent> <C-n> <esc><C-n>
imap <silent> <C-p> <esc><C-p>
...