2011-01-22 3 views
35

Я проделал поиск и нашел массу информации о привязке ключей в vim, но я не могу точно узнать, как сопоставить shift-tab. Или какую команду мне нужно сопоставить, чтобы он «переместил назад».Map shift-tab in vim to inverse tab в Vim

Это то, что у меня есть на данный момент:

map <S-tab> <S-,><S-,> 

Возможно Соответствующая информация: Я бегу Debian с Terminal 2.22.3. с VIM-Vi IMproved 7.1

+0

Извините, у меня были изображения выключены и не видели стрелы. – newUser

+0

Я узнал кое-что о Виме в те годы, когда я ответил на этот вопрос, поэтому я отредактировал свой ответ, чтобы включить их. – amphetamachine

ответ

71

У Vim уже есть встроенные команды клавиш для режима вставки, чтобы сдвинуть текущую линию влево или вправо &shiftwidth. Они (в режиме вставки):

Ctrl-t: сдвиг вправо ("вкладку" мнемонические)

Ctrl-d: сдвиг влево (мнемонические "де-вкладку")

Если вы все еще хотите использовать Shift- вкладка, это то, как вы это делаете:

" for command mode 
nnoremap <S-Tab> << 
" for insert mode 
inoremap <S-Tab> <C-d> 
+3

Работает как шарм. Большое вам спасибо за вашу помощь. Это действительно улучшит мою эффективность. Это действительно сделало мой день. Еще раз спасибо. :) – newUser

+1

И для тех из вас, кто (как и я) недостаточно умен, чтобы установить ширину сдвига, когда вы изменили tabstop, запустив 'set shiftwidth = ##', желательно, что бы tabstop –

+2

Также стоит упомянуть, что это можно комбинировать с Ctrl и другие управляющие клавиши, такие как '' –

-4

Ниже можно использовать с Vim закладках:

map <TAB> <ESC>gt<CR> 
map <S-TAB> <ESC>gT<CR> 
+2

'gt' в командном режиме переключает редактирование вкладок. Мы говорим об углублении здесь. – amphetamachine

+0

Это ответ на то, что я искал в Google, так что я дал ему +1. – Foggzie

+2

Для записи это нарушает существующее привязку для ctrl-I (Tab), которое в нормальном режиме переходит вперед в списке переходов (напротив ctrl-O). –