假设我的vim缓冲区中有以下文本:
~/my_repo
假设我有一个位于:'<,'>Commit ~/my_repo
的git仓库。
目标:创建一个vim脚本,以便我可以突出显示上面的文本,并将其作为git commit消息发送到function! GitLocations()
return find $HOME -name '.git' -printf '%h\n' "generates a list of all folders which contain a .git dir
endfunction
中。它看起来像
function! CommitTextGitRepo(l1, l2, loc)
let s:msg = ??? " how do I make this the highlighted text from line l1 to line l2?
execute '!cd ' . a:loc . '&& git commit --allow-empty -m \"' . s:msg '\"'
endfunction
它的repo参数也会自动完成。
首先,自动完成功能(AFAIK我认为这样可以吗?):
CommitTextGitRepo()
接下来,实际的git commit函数,它是不完整的:
command! -nargs=* -complete=custom,GitLocations -range Commit call CommitToGitRepo(<line1>, <line2>, <q-args>)
假设我可以弄清楚如何让$CI =& get_instance();
$CI->load->model('form_validation_callback_library');
$config['client_details'] = array(
array(
'field' => 'client_abn',
'label' => 'Client ABN',
'rules' => array('trim', 'required', array('abn_callable', array($CI->form_validation_callback_library, 'abn_check'))),
'errors' => array('abn_callable' => 'Invalid ABN has been entered %s.')
)
在上面工作,我最不需要的就是这个(我认为):
sudo apt-get install xilinx
我太近了。我该如何完成? :)
答案 0 :(得分:1)
join(getline(a:l1, a:l2),"\n")
应该做的伎俩 我宁愿使用一个局部变量,你可能想要使该函数接近这个
的消息function! CommitTextGitRepo(l1, l2, loc)
let l:msg = join(getline(a:l1,a:l2), "\n")
execute '!cd ' . a:loc . '&& git commit --allow-empty -m ' . shellescape(l:msg)
endfunction