Vim - Несколько отступов с вкладкой

Я хочу, чтобы иметь возможность выделить строки, которые я хочу отступать/отступать отступ и отступать с вкладками и shift-tab соответственно.

" for command mode reverse tab
nmap <S-Tab> <<
" for insert mode reverse tab
imap <S-Tab> <Esc><<i
" for command mode multiple line reverse tab(doesn't work)
nmap <Tab> i<
" for insert mode multiple line reverse tab(doesn't work)
imap <Tab> <

" for command mode tab
nmap <Tab> >>
" for command mode multiple line tab(doesn't work)
nmap <Tab> i>
" for insert mode multiple line tab(doesn't work)
imap <Tab> >

Это последнее, что мне нужно, прежде чем я захочу использовать vim в качестве основного редактора.

Ответ 1

Чтобы выделить и выделить текст, вам нужно начать использовать визуальный режим (обычно я делаю это, нажимая v) и выбираю ваш текст, используя стандартные движения (например, h, j, k и l).

Чтобы создать сопоставления для использования в визуальном режиме, вам нужно :vmap...

:vmap <Tab> >
:vmap <S-Tab> <

Но для чего вам нужно создать сопоставление для этого?

В визуальный режим, < сдвинется выбранные строки влево и > вправо.

Иногда лучше просто изучить Vim (или даже Vi) ключи, а затем вы можете использовать любую установку, а не только одну с вашим .vimrc.

Например, вы поставили:

imap <Tab> <

Это плохая идея. Это затруднит вам вставить символ табуляции в ваш текст (даже ctrl + i не будет работать так, как я ожидал), и каждый раз, когда вы вводите tab, вы вставляете <.

Счастливое редактирование!

Ответ 2

В режиме вставки вы можете использовать control - d и control - t для удаления/добавления отступа (соответственно).

Итак, замените

imap <Tab> <

с

imap <Tab> <c-d>

и

imap <Tab> >

с

imap <Tab> <c-t>

В визуальном режиме вы можете выделить блок, а затем нажать < или >, но если вы хотите, чтобы он был tab и shift - tab, вы можете установить его с помощью vmap как вы сделали для других.

Ответ 3

поместите это в свой .vimrc это то, что вы хотите

:map <Tab> >
:imap <Tab> <Esc> >
:vmap <Tab> >gv
:map <S-Tab> <
:imap <S-Tab> <Esc> <
:vmap <S-Tab> <gv

gv после того, как vmaps сохранит ваши блики. карта и imaps позволят вам вставлять другие режимы. Это не совсем похоже на textmate, но он попадает туда:)