我正在尝试以一种整齐的方式将所有斜线对齐到这些行的末尾(大约还有800行)。最好我想在第80列使用所有斜线(我正在使用vim)。有人有解决方案吗?这是一个示例:
const a = [
{
"productName": "My Product",
"p_id": "1"
},
{
"productName": "My Other Product",
"p_id": "2"
}
]
const availableItems = [
{
"i_items": "[{\"act\":\"new\",\"app\":\"nexus\",\"type\":\"package\",\"cost\":\"0.00\",\"tax\":null,\"quantity\":1,\"itemName\":\"My Product\",\"itemID\":1,\"physical\":false,\"methods\":\"*\",\"cfields\":[],\"extra\":null,\"renew_term\":1,\"renew_units\":\"m\",\"renew_cost\":\"100.00\",\"grace_period\":86400}]"
},
];
const path = k => x => x[k];
const parseAvailable = item => JSON.parse(item['i_items']);
const stringify = x => `${x}`;
const getItemIdAsString = x => stringify(path('itemID')(x))
const availabilityChecker = available => product => parseAvailable(available)
.map(getItemIdAsString)
.indexOf(product['p_id']) > -1;
const isProductAvailable = availabilityChecker(availableItems[0]);
const result = isProductAvailable(a[0])
const resultTwo = isProductAvailable(a[1])
console.dir(result)
console.dir(resultTwo)
答案 0 :(得分:2)
如果您的代码/文本是此命令,将会有所帮助:
spaces
代替Tab
, \s*\\$
前的文本长度<80
%s/\v(.{-})\s*\\$/\=submatch(1).repeat(' ',79-len(submatch(1))).'\'
答案 1 :(得分:0)
如果您的文字宽度设置为80:
set textwidth=80
您可以将以下功能用作基础:
function! RightAlign(char)
if strlen(a:char) > 1
return
endif
let l:linelength = strlen(getline('.'))
right
let l:spaces = strlen(getline('.')) - l:linelength
execute "normal 0|d" . l:spaces . "l"
execute "normal f" . a:char
normal P
end
funccommand -range -nargs=1 RightAlign <line1>,<line2>call RightAlign(<args>)
在要对齐的行上按以下步骤使用它:
:RightAlign('/')
该参数是您要在右侧对齐的第一个字符。
可以在范围内调用它:
:'<,'>RightAlign '/'
:%RightAlign '/'
如果您传递的参数大于1个字符,则该函数将返回。
此外,如果您使用空格而不是制表符,则效果更好(它也需要进行一些修改)。