在 vim 中映射 s-tab

在 vim 中映射 s-tab

我正在尝试为 vim 设置一些基本配置,以使其对我更有用。我尝试做的一件事是将 shift+tab 映射到文字制表符,因为我的 vim 配置默认将制表符设置为用空格扩展。我尝试使用以下方法映射到制表符字符此引用但没有骰子。

当我尝试在插入模式处于活动状态时按下 shift+tab 键时,vim 会输出一个大写字母 Z 大约一秒钟,然后将其删除并退出插入模式,同时发出系统错误蜂鸣声。我已经用 ^V 测试了 shift+tab 键,它会按照参考中所述将 ^[[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>=    

最后一行在 vim 中显示 ▸set list字符

答案1

尝试这个:

:set t_kB=^[[Z

您无需逐字输入^[字符;要获取实际的转义序列,请按control-v然后按转义键。请注意,t_kB选项与选项相同<S-Tab>

但是,这不会映射<S-Tab><Tab>,它只会告诉 Vim 当您按下这两个键时,您的终端会发送什么转义序列。但此时您可以映射<S-Tab><Tab>

:noremap <S-Tab> <Tab>

'expandtab'当设置如下选项时,让 Vim 插入文字制表符:

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

相关内容