Vim - отступ нескольких строк с вкладкой - PullRequest
12 голосов
/ 17 сентября 2011

Я хочу иметь возможность выделять строки, которые я хочу сделать отступ / обратный отступ и отступ с вкладками и 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 в качестве основного редактора.

Ответы [ 3 ]

23 голосов
/ 17 сентября 2011

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

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

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

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

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

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

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

imap <Tab> <

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

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

5 голосов
/ 17 сентября 2011

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

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

imap <Tab> <

с

imap <Tab> <c-d>

и

imap <Tab> >

с

imap <Tab> <c-t>

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

1 голос
/ 02 мая 2014

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

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

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

...