将Ruby的hashrocket符号更改为vim中的name: 'value' 符号的最有效方法是什么?
一些例子:
{
:id => site.id,
:primary_domain => site.name,
:wp_admin_url => site.wp_admin_url
}
{
id: site.id,
primary_domain: site.name,
wp_admin_url: site.wp_admin_url
}
{ :id => site.id, :primary_domain => site.name }
{ id: site.id, primary_domain: site.name }
Site.find_by(:access_token => params[:access_token], :primary_domain => params[:primary_domain])
Site.find_by(access_token: params[:access_token], primary_domain:params[:primary_domain])
Run Code Online (Sandbox Code Playgroud)
你有一个宏吗?我的一些更有效的序列呢?使用搜索替换?我能提出的最有效率,非常手动,需要一些重复:
ft:xpldf>
转到第一个:,删除它并将其粘贴到单词后面,然后向前移动一个字符并删除该=>部分.需要对:name => value哈希中的每个部分重复这一过程.并且不能简单地运行N次,因为很可能:symbols需要保留一些,就像在上一个例子中一样.
你如何从Hashrocket表示法中快速改变?
这种替换似乎可以解决所有三个样本:
:%s/:\(\w\+\)\s*=>\s*/\1: /g
Run Code Online (Sandbox Code Playgroud)
您可以从中创建一个简单的自定义命令:
command! Notation %s/:\(\w\+\)\s*=>\s*/\1: /g
Run Code Online (Sandbox Code Playgroud)
还是稍微聪明的一个:
command! -range=% Notation silent execute <line1>.','.<line2>.'s/:\(\w\+\)\s*=>\s*/\1: /g'
Run Code Online (Sandbox Code Playgroud)