Vim - 使用制表符缩进多行

dea*_*ost 13 mapping vim tabs indentation

我希望能够分别用tab和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> >
Run Code Online (Sandbox Code Playgroud)

在我愿意使用vim作为我的主编辑之前,这是我需要的最后一件事.

Joh*_*web 24

要选择和突出你的文字,你需要开始使用可视化模式,(我通常打做到这一点v),并使用标准的选择文本的动作(如h,j,kl).

要创建用于可视模式的映射,您需要:vmap......

:vmap <Tab> >
:vmap <S-Tab> <
Run Code Online (Sandbox Code Playgroud)

但为什么你需要为此创建一个映射?

可视模式下,<将向左和>向右移动选定的线条.

有时最好只学习Vim(甚至是Vi)键,然后你可以使用任何安装,而不仅仅是你的安装.vimrc.

例如,你已经把:

imap <Tab> <
Run Code Online (Sandbox Code Playgroud)

这个坏主意.这将使您更难以在文本中插入制表符(即使ctrl+ i不会像我期望的那样工作),并且每次键入tab时都会插入一个<.

快乐编辑!

  • @ user894091:很乐意提供帮助.我使用标准键绑定进行绝大多数编辑操作. (2认同)
  • @Tapefreak:在点击“&gt;”之前输入数字。例如 `3&gt;` 缩进三个 `'shiftwidth'` (2认同)
  • @Tapefreak:或点击'.' 重复缩进,参见[`:he single-repeat`](http://vimdoc.sourceforge.net/htmldoc/repeat.html#single-repeat). (2认同)

Mat*_*elk 5

在插入模式下,您可以使用control- dcontrol- t分别删除/添加缩进.

所以,替换

imap <Tab> <
Run Code Online (Sandbox Code Playgroud)

imap <Tab> <c-d>
Run Code Online (Sandbox Code Playgroud)

imap <Tab> >
Run Code Online (Sandbox Code Playgroud)

imap <Tab> <c-t>
Run Code Online (Sandbox Code Playgroud)

在视觉模式中,您可以突出显示一个块,然后点击<>,但是如果您希望它tabshift- tab,您可以vmap像为其他人一样设置它.

  • 这仍然是一个坏主意.如何插入制表符? (3认同)