Vim - 用制表符缩进多行

标签 vim tabs mapping indentation

我希望能够突出显示我想要缩进/反向缩进和分别使用制表符和移位制表符缩进的行。

" 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 作为我的主要编辑器之前,这是我需要的最后一件事。

最佳答案

要选择并突出显示您的文本,您需要start using visual mode ,(我通常通过点击 v 来做到这一点)并使用标准 motions 选择您的文本(例如 h、j、k 和 l)。

创建用于 visual mode 的映射您需要 :vmap ...

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

但是为什么需要为此创建映射?

visual mode , <将向左移动选定的行和 >向右。

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

例如,你已经把:
imap <Tab> <

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

祝编辑愉快!

关于Vim - 用制表符缩进多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7452301/

相关文章:

vim - 在不同的 Vim 窗口中打开目录中的所有文件

css - 在选项卡中显示站点时在 wordpress 站点上选择特定样式表

language-agnostic - 在Firefox中打开一个新标签页,并将ff保留在后台

mapping - 关于与核函数和支持向量机相关的术语的具体查询

java - 映射器未正确映射 - mapstruct

c++ - 无法使用 clang_complete 完成 qt

Vim 'earlier' 和 'later' 命令没有按预期工作

workflow - Vim:更改脚本中变量的格式

javascript - 无法显示来自 React 组件的数据

c# - 使用 Automapper (.net c#) 映射到不在 Src 中的变量以便在 linq2sql 类中使用?