我有以下nagios配置代码段。我无法用tabularize命令来表达仅由制表符/空格分隔的参数值。
define service{
use local-service,srv-pnp
name http
service_description http
check_command check_http!-w 5 -c 10 -H www.kpoint.com -u /
register 0
}
编辑:
预期输出
define service{
use local-service,srv-pnp
name http
service_description http
check_command check_http!-w 5 -c 10 -H www.kpoint.com -u /
register 0
}
有任何替代表格吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
非常肮脏且快速的方式:
function! GetOffsetSpacesAndReplace()
let [line1,col1] = getpos("'<")[1:2]
let [line2,col2] = getpos("'>")[1:2]
let max_len = 0
for i in range(line1, line2)
let my_line = getline(i)
let matching_str = matchstr(my_line, '^\s*\w*\s*')
if len(matching_str) > max_len
let max_len = len(matching_str)
endif
endfor
for i in range(line1, line2)
let my_line = getline(i)
let matching_str = matchstr(my_line, '^\s*\w*\s*')
let col_pos = len(matching_str)
call setpos('.', [0, i, col_pos, 0])
let @s=' '
if max_len - col_pos > 0
execute 'normal! "s'.(max_len - col_pos).'p'
endif
endfor
return 1
endfunction
vmap <silent> <buffer> <F3> :call GetOffsetSpacesAndReplace()<CR>
此功能允许您直观地选择内部块,然后根据需要运行缩进功能。
这很脏,主要是因为它只回答了你的要求。
为了使用更灵活的工具进行缩进,您应该检查优秀的插件vim-easy-align。
我每天都在使用它而没有任何问题。