例如,我有一个可用的代码,但速度不够快,所以我想记录下这个版本的代码并继续优化它,也许会得到更好的版本,然后再次记录这个版本,如此往复。
如果最终我无法得到一个快速的代码,我想回滚到原始的可用代码。
我猜这可以通过使用撤销分支来实现,但我没有找到如何做到这一点。
如果最终我无法得到一个快速的代码,我想回滚到原始的可用代码。
我猜这可以通过使用撤销分支来实现,但我没有找到如何做到这一点。
使用版本控制系统对任何你所工作的项目来说都是一个好主意,即使它们非常小。即便如此,HaskellElephant提出了一个好点子——偶尔,你可能会尝试调整一些小脚本。在这种情况下,能够创建保存点可能是相当酷的事情,所以我尝试运用vim的undotree()
函数,并编写了以下脚本:
command! -nargs=1 StoreUndo call s:StoreUndo(<f-args>)
function! s:StoreUndo(label)
if !exists('b:stored_undo_state')
let b:stored_undo_state = {}
endif
let b:stored_undo_state[a:label] = undotree()['seq_cur']
endfunction
command! -nargs=1 -complete=custom,s:CompleteUndoStates RestoreUndo call s:RestoreUndo(<f-args>)
function! s:RestoreUndo(label)
if !exists('b:stored_undo_state')
let b:stored_undo_state = {}
endif
if !has_key(b:stored_undo_state, a:label)
echoerr a:label.' not found in stored undo states.'
endif
exe 'undo '.b:stored_undo_state[a:label]
endfunction
function! s:CompleteUndoStates(A, L, P)
if !exists('b:stored_undo_state')
let b:stored_undo_state = {}
endif
return join(keys(b:stored_undo_state), "\n")
endfunction
~/.vim/plugin
下。执行命令:StoreUndo foo
将创建一个名为“foo”的保存点。您可以进行任何更改。当您执行:RestoreUndo foo
时,缓冲区将恢复保存的状态。所有现有保存点都可以通过RestoreUndo
命令进行选项卡完成。我对vim并不是很熟练(事实上,我几乎不会用它),但我想到的解决方案有:
/*
放进了 Git 仓库吗?我不建议这样做。 - kiltek