VIM - 制表 css

VIM - tabulating css

我有一个 CSS,有点疯狂。我喜欢把我的冒号放在同一列上(我知道,并不是每个人都同意这一点...)。

我如何要求 Vim 设置特定列上的所有冒号 - 假设第 20th 列?

我的想法是格式化这段代码:

body {
  3     font-family: sans-serif;
  4     background-color: #315481;
  5     background-image: linear-gradient(to bottom, #315481, #918e82 100%);
  6     background-attachment: fixed;
  7
  8     position: absolute;
  9     top: 0;
 10     bottom: 0;
 11     left: 0;
 12     right: 0;
 13
 14     padding: 0;
 15     margin: 0;
 16
 17     font-size: 14px;
 18 }
 19
 20 .container {
 21     max-width: 600px;
 22     margin: 0 auto;
 23     min-height: 100%;
 24     background: white;
 25 }

像这样:

由于你其实是运行Vim(你在问题的评论里已经回复了),建议安装Align plugin。使用此插件,您可以将其 Align 功能应用于一系列行,例如:

:'<,'>Align [:;]

当前 selected 视觉区域与冒号和分号对齐。例如,这段代码:

.container {
  max-width: 10px;
  margin: 0 auto;
  background: url('/path/to/image.png') top left no-repeat;
}

将转换为:

.container {
  max-width  : 10px                                         ; 
  margin     : 0 auto                                       ; 
  background : url('/path/to/image.png') top left no-repeat ; 
}

请注意,您不必手动输入 '<,'> 个字符。简单地 select 一系列行与 Shift - v (进入视觉行模式),按 k,或者j到select更多行,或者往下,然后输入命令::Align [:;]然后按回车.

你可以在vim配置文件中为此创建一个快捷方式,例如:

map <silent> <unique> <leader>ss :Align [;:]<cr>

有了这个映射,你可以用<leader>调用:Align [;:]函数 - s - s 组合,其中 <leader> 是用 mapleader 命令指定的特殊键。例如,您可以使用以下命令将 键定义为您的 <leader> 键:

:let mapleader = ","

那么上面的映射就会被触发, - s - s (select 一系列行,然后按快捷键)。