4

Я пытаюсь настроить базовую конфигурацию для vim, чтобы сделать ее более полезной для себя. Одна из вещей, которые я пытаюсь сделать, это преобразовать карту shift+tab в буквальный символ табуляции, так как моя конфигурация vim по умолчанию устанавливает табуляцию с пробелами. Я попытался сопоставить символ табуляции с помощью этой ссылки, но без кубиков.

Когда я пытаюсь нажать Shift + Tab, когда режим вставки активен, vim выводит заглавную Z примерно на одну секунду, затем удаляет ее и выходит из режима вставки с системным звуковым сигналом ошибки. Я уже проверял нажатие клавиши shift + tab с помощью ^ V, и он выводил ^ [[Z в vim, как описано в справочнике, так что это не моя ОС, перехватывающая нажатие клавиши. Не совсем уверен, что вызывает это; вход будет оценен.

Мой .vimrc:

" Few basic settings first; I like syntax highlighting & line numbers
syntax on
set number

" Some settings with the list option
" I like to see non-printing characters like Tab & CR
set listchars=tab:▸\ ,eol:¬
set list

" Set tab behaviours: 4 spaces wide, expand <Tab> and >> with spaces
set expandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4
" This line maps shift+tab to a literal tab character
" Because I sometimes need a literal tab
set <s-tab>=    

Самая последняя строка показывает символ in в vim, когда включен set list

1 ответ1

2

Попробуй это:

:set t_kB=^[[Z

Вы не вводите символы ^[ буквально; чтобы получить фактическую последовательность выхода, нажмите control - v, затем нажмите клавишу выхода. Обратите внимание, что параметр t_kB параметром <S-Tab> .

Однако это не отображает <S-Tab> на <Tab> , оно только сообщает Vim, какую управляющую последовательность посылает ваш терминал, когда вы нажимаете эти две клавиши. Но в этот момент вы можете сопоставить <S-Tab> с <Tab>:

:noremap <S-Tab> <Tab>

Чтобы заставить Vim вставлять буквенный символ табуляции, когда установлена опция, подобная 'expandtab' :

:inoremap <S-Tab> <C-V><Tab>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .