VIM - 制表css

时间:2016-11-19 12:50:30

标签: vim vi

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

我怎么能要求Vim在特定列上设置所有冒号 - 让我们说20个 th 列?

我的想法是格式化此代码:

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 }
像这样:

enter image description here

1 个答案:

答案 0 :(得分:1)

由于您实际上正在运行Vim(您已在问题的评论中回复),我建议您安装https://www.example.com。使用此插件,您可以将其Align函数应用于一系列行,例如:

:'<,'>Align [:;]

将当前选定的可视区域与冒号和分号对齐。例如,此代码:

.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 ; 
}

注意,您不必手动输入'<,'>个字符。只需选择 Shift - v 的一系列行(进入可视线模式),按 k j 选择更多或更多的行,然后输入命令::Align [:;]并按 Enter

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

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

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

:let mapleader = ","

然后用 - s - s 触发上述映射(选择一系列行,然后按快捷键)。