multiple-cursors做代码对齐
multiple-cursors做代码对齐
*/-->
code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}
multiple-cursors做代码对齐
假设我们有这样一个文件:
::msgcat::mcset cn "steel" "钢"
::msgcat::mcset cn "al" "铝"
::msgcat::mcset cn "general" "焊缝参数"
::msgcat::mcset cn "FAT" "疲劳等级 *"
::msgcat::mcset cn "Weld type" "焊缝类型"
::msgcat::mcset cn "Weld width" "焊缝宽度"
我们想要让它对齐成如下:
::msgcat::mcset cn "steel" "钢"
::msgcat::mcset cn "al" "铝"
::msgcat::mcset cn "general" "焊缝参数"
::msgcat::mcset cn "FAT" "疲劳等级 *"
::msgcat::mcset cn "Weld type" "焊缝类型"
::msgcat::mcset cn "Weld width" "焊缝宽度"
当然,我们可以使用 align-regexp ,然后,使用正则表达式进行对齐,但是,那个还是比较麻烦的。
其实,multiple-cursors中有一个命令 mc/vertical-align-with-space ,可以用来进行对齐操作。
这样,我们只需要先创建一个multiple-cursors:

然后,跳到最后面:

再用 sp-backward-sexp ,跳到要对齐的位置:

再执行 mc/vertical-align-with-space ,就可以对齐了:

这样,基本上可以应对很多比较麻烦的对齐。当然,简单的,用空格或者是其他一个符合对齐的工作,可以使用另外一个函数来完成,更加方便:
(defun my-align-regexp-repeated (start stop regexp)
"Like align-regexp, but repeated for multiple columns. See
http://www.emacswiki.org/emacs/AlignCommands"
(interactive "r\nsAlign regexp: ")
(let ((regexp (if (string= regexp "") " " regexp))
(spacing 1)
(old-buffer-size (buffer-size)))
;; If our align regexp is just spaces, then we don't need any
;; extra spacing.
(when (string-match regexp " ")
(setq spacing 0))
(align-regexp start stop
;; add space at beginning of regexp
(concat "\\([[:space:]]*\\)" regexp)
1 spacing t)
;; modify stop because align-regexp will add/remove characters
(align-regexp start (+ stop (- (buffer-size) old-buffer-size))
;; add space at end of regexp
(concat regexp "\\([[:space:]]*\\)")
1 spacing t)
(indent-region start (+ stop (- (buffer-size) old-buffer-size)))))
multiple-cursors做代码对齐的更多相关文章
- 完美解决--用VS中的Git做代码管理器,与他人共享代码
1.创建代码仓库,这里说一下为什么要创建仓库,Git不能够作为源代码管理器,vs中自带的也只能够在本地进行管理,要和他们共享的话必须要有服务器端去存储代码,类似于SVN,它就有客户端和服务器端,这里推 ...
- vs code代码对齐快捷键
vscode缩进快捷键: 选中文本: Ctrl + [ 和 Ctrl + ] 实现文本的向左移动或者向右移动: vscode代码对齐快捷键: 选中文本: Shift + ...
- [资源]--完美解决--用VS中的Git做代码管理器,与他人共享代码
1.创建代码仓库,这里说一下为什么要创建仓库,Git不能够作为源代码管理器,vs中自带的也只能够在本地进行管理,要和他们共享的话必须要有服务器端去存储代码,类似于SVN,它就有客户端和服务器端,这里推 ...
- VS中代码对齐等快捷键
在VS2008中,选定代码后,按Ctrl+K+F组合键,可以自动进行代码对齐. 注意:要先按下Ctrl和K,再按下F,因为Ctrl+F是查找的快捷键. 也可以先按下Ctrl+K,再按下Ctrl+F. ...
- vs快捷键代码格式化或代码对齐名字
开发人员,换个电脑后环境要重装,vs的环境也需要重新设置. 快捷键需要重新设置,插件也需要重装,在这里备注下,换个环境就可以直接用了. 由于vs不同版本,代码对齐或者代码格式化的快捷键都不一样,所以导 ...
- idea 安装findBugs 可以做代码扫描,也可以导出扫描结果生成扫描报告
idea 安装findBugs 可以做代码扫描,也可以导出扫描结果生成扫描报告 https://my.oschina.net/viakiba/blog/1838296 https://www.cnbl ...
- Gitlab来做代码review
Gitlab来做代码review 代码review是代码质量保障的手段之一,同时开发成员之间代码review也是一种技术交流的方式,虽然会占用一些时间,但对团队而言,总体是个利大于弊的事情.如何借助现 ...
- vim中编辑了代码 但是提示can not write的解决办法和代码对齐办法
方式1: 1 :w /tmp/xxxx(如果是c文件就.c拉) 保存在/tmp下面 2 从tmp中复制到有权限的目录下面 cp /tmp xxxx ./(当前目录) 方式2::w !sudo tee ...
- Cordova Android项目如何做代码混淆
我想修改build.gradle配置 可是这个文件明确写了// GENERATED FILE! DO NOT EDIT!可是还是试了试: if (cdvReleaseSigningProperties ...
随机推荐
- JavaScript-打开新窗口(window.open)和 关闭窗口(window.close)
JavaScript-打开新窗口 open() 方法可以查找一个已经存在或者新建的浏览器窗口. 语法: window.open([URL], [窗口名称], [参数字符串]) 参数说明: URL:可选 ...
- 【Python—windows 下 virtualEnv 使用】
用pip安装virtualenv pip3 install virtualenv 在相应的文件夹中创建一个独立的Python运行环境,命名为env. 之后会自动创建一个 env 文件夹,有: Incl ...
- win8.1安装Python提示缺失api-ms-win-crt-runtime-l1-1-0.dll问题
Windows下安装python成功之后,运行python,提示缺少api-ms-win-crt-runtime-l1-1-0.dll.很显然,安装上这个dll文件不就可以了吗.于是就开始百度,找资料 ...
- git 上传本地代码
新增本地代码到远程库 http://blog.csdn.net/hanhailong726188/article/details/46738929 github配置教程 http://www.runo ...
- javascript基础7(正则及表单验证)
1.正则的概念 JS诞生的目的是什么? 就是为了做表单验证. 在JS未出现以前,表单的信息验证需要传输给后台,让后台做数据验证处理之后,再返回给前端页面处理的结果.在带宽有 ...
- rabbitmq的管理软件以及PHP7安装rabbitmq的
rabbitmq-server管理软件的安装 1.mac下载rabbitmq-server brew install rabbitmq 2.启动服务rabbitmq-server rabbitmq-s ...
- Node.js的适用场景?
1).实时应用:如在线聊天,实时通知推送等等(如socket.io) 2).分布式应用:通过高效的并行I/O使用已有的数据 3).工具类应用:海量的工具,小到前端压缩部署(如grunt),大到桌面图形 ...
- IronPython C#与Python相互调用
ironphy microsoft.scripting dll using System;using System.Collections.Generic;using System.Linq;usi ...
- OpenLayers API整理
整理的Openlayers 的知识笔记,随着运用不断加深理解,也会不断更新. 本文链接:Openlayers API整理 作者:狐狸家的鱼 GitHub:八至 一.创建地图 1.地图Map 创建地图底 ...
- Qt QSS图片样式切割,三种状态normal,hover,pressed
要切割的样式图片如下: pix_Button->setStyleSheet("QPushButton{ border-image:url(:/image/MyButtonimage/m ...